Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SR-3919] SourceKit building failure on LFS #46504

Closed
swift-ci opened this issue Feb 10, 2017 · 7 comments
Closed

[SR-3919] SourceKit building failure on LFS #46504

swift-ci opened this issue Feb 10, 2017 · 7 comments
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. build-script Area → utils: The build script Linux Platform: Linux

Comments

@swift-ci
Copy link
Collaborator

Previous ID SR-3919
Radar None
Original Reporter Vladislav (JIRA User)
Type Bug
Status Resolved
Resolution Done
Environment

Linux ved-hp-lfs6 4.9.9 #1 SMP Thu Feb 9 19:33:01 MSK 2017 x86_64 GNU/Linux

Additional Detail from JIRA
Votes 1
Component/s
Labels Bug, BuildScript, Linux
Assignee None
Priority Medium

md5: 521e8e2d46bce4b2d37ff7c3f1cf1b9f

Issue Description:

I use standard command to build Swift on Linux From Scratch:

ved [ /mnt/swift/swift-source/swift ]$ utils/build-script --preset=buildbot_linux install_destdir=/mnt/swift/lfs installable_package=/mnt/swift/lfs/swift.tar.gz

And got the error:

CoreFoundation/Collections.subproj/CFBasicHash.c:14:10: fatal error: 'Block.h' file not found
#include <Block.h>

The workaround is to create the symlink from compiler-rt/lib/BlocksRuntime/Block.h to /usr/Include but it is not good.

@swift-ci
Copy link
Collaborator Author

Comment by Vladislav Dembskiy (JIRA)

Today I did fresh checkout and got the same error at another place

/mnt/swift/swift-source/swift/tools/SourceKit/lib/Support/Concurrency-libdispatch.cpp:20:10: fatal error: 'Block.h' file not found
#include <Block.h>

So I changed the issue subject to SourceKit

@swift-ci
Copy link
Collaborator Author

Comment by Vladislav Dembskiy (JIRA)

If I use the same workaround to create a symlink from compiler-rt/lib/BlocksRuntime/Block.h to /usr/Include then I this compilation set passed but later I have got another error

    • Build files have been written to: /mnt/swift/swift-source/build/buildbot_linux/swift-linux-x86_64
      • popd
        /mnt/swift/swift-source/swift
      • /usr/bin/cmake --build /mnt/swift/swift-source/build/buildbot_linux/swift-linux-x86_64 – -j4 all swift-stdlib-linux-x86_64
        [4/194] Linking CXX shared library lib/libsourcekitdInProc.so
        FAILED: lib/libsourcekitdInProc.so
        : && /usr/bin/clang++ -fPIC -fno-stack-protector -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -Werror=date-time -std=c++11 -fcolor-diagnostics -ffunction-sections ...
        ...
        ... /mnt/swift/swift-source/build/buildbot_linux/llvm-linux-x86_64/./lib/libclangBasic.a /mnt/swift/swift-source/build/buildbot_linux/libdispatch-linux-x86_64/src/.libs/libdispatch.so && :
        /usr/bin/ld: cannot find -lBlocksRuntime
        /usr/bin/ld: cannot find -lBlocksRuntime
        /usr/bin/ld: cannot find -lBlocksRuntime
        clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation)

It is strange that ld is called instead of ld.gold and why BlocksRuntime library have not been found

@swift-ci
Copy link
Collaborator Author

Comment by Vladislav Dembskiy (JIRA)

Small progress. Today after fresh checkout I have got similar error but produced by ld.gold:

[523/694] Linking CXX shared library lib/libsourcekitdInProc.so
FAILED: lib/libsourcekitdInProc.so
: && /usr/bin/clang++ -fPIC -fno-stack-protector -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -Werror=date-time -std=c++11 -fcolor-diagnostics -ffunction-sections -fdata-sections -Wdocumentation -Wimplicit-fallthrough -Wunreachable-code -Woverloaded-virtual -O3 -target x86_64-unknown-linux-gnu -lpthread -latomic -ldl -fuse-ld=gold -lBlocksRuntime -shared -Wl,-soname,libsourcekitdInProc.so -o lib/libsourcekitdInProc.so tools/SourceKit/tools/sourcekitd/bin/InProc/CMakeFiles/sourcekitdInProc.dir/sourcekitdInProc.cpp.o -L/mnt/swift/swift-source/build/buildbot_linux/llvm-linux-x86_64/./lib -Wl,-rpath,/mnt/swift/swift-source/build/buildbot_linux/llvm-linux-x86_64/./lib:/mnt/swift/swift-source/build/buildbot_linux/libdispatch-linux-x86 ...
...
... linux/llvm-linux-x86_64/lib/libLLVMSupport.a -lrt -ldl -lcurses -lpthread -lz -lm /mnt/swift/swift-source/build/buildbot_linux/llvm-linux-x86_64/lib/libLLVMDemangle.a /usr/lib/libuuid.so /mnt/swift/swift-source/build/buildbot_linux/llvm-linux-x86_64/./lib/libclangRewrite.a /mnt/swift/swift-source/build/buildbot_linux/llvm-linux-x86_64/./lib/libclangBasic.a /mnt/swift/swift-source/build/buildbot_linux/libdispatch-linux-x86_64/src/.libs/libdispatch.so && :
/usr/bin/ld.gold: error: cannot find -lBlocksRuntime
/usr/bin/ld.gold: error: cannot find -lBlocksRuntime
/usr/bin/ld.gold: error: cannot find -lBlocksRuntime
clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation)

@swift-ci
Copy link
Collaborator Author

Comment by Vladislav Dembskiy (JIRA)

Today I did fresh checkout and run standard installation script:

utils/build-script --preset=buildbot_linux install_destdir=/mnt/swift/lfs installable_package=/mnt/swift/lfs/swift-lfs.tar.gz

First error I have got during swift compilation: "Block.h" not found. I did created the issue https://bugs.swift.org/browse/SR-3919 and use the following workaround:
Make symbolic link from swift-source/compiler-rt/lib/BlocksRuntime/Block.h to /usr/include
Then I have got another error during building sourcekit:

[36/218] Linking CXX shared library lib/libsourcekitdInProc.so
FAILED: lib/libsourcekitdInProc.so
: && /usr/bin/clang++ -fPIC -fno-stack-protector -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -Werror=date-time -std=c++11 -fcolor-diagnostics -ffunction-sections -fdata-sections -Wdocumentation -Wimplicit-fallthrough -Wunreachable-code -Woverloaded-virtual -O3 -target x86_64-unknown-linux-gnu -lpthread -latomic -ldl -fuse-ld=gold -lBlocksRuntime -shared -Wl,-soname,libsourcekitdInProc.so -o lib/libsourcekitdInProc.so ....
....
... /usr/lib/libuuid.so /mnt/swift/swift-source/build/buildbot_linux/llvm-linux-x86_64/./lib/libclangRewrite.a /mnt/swift/swift-source/build/buildbot_linux/llvm-linux-x86_64/./lib/libclangBasic.a /mnt/swift/swift-source/build/buildbot_linux/libdispatch-linux-x86_64/src/.libs/libdispatch.so && :
/usr/bin/ld.gold: error: cannot find -lBlocksRuntime
/usr/bin/ld.gold: error: cannot find -lBlocksRuntime
/usr/bin/ld.gold: error: cannot find -lBlocksRuntime
clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation)
[39/218] Building CXX object stdlib/public/runtime/CMakeFiles/swiftRuntime-linux-x86_64.dir/Demangle.cpp.o
ninja: build stopped: subcommand failed.

I have no idea about workaround. I believe that libBlocksRuntime should be created during compiler-rt compilation to be used in future steps. Not every Linux distribution includes libblocksruntime-dev. Neither Gentoo nor LFS/BLFS.

@swift-ci
Copy link
Collaborator Author

Comment by Vladislav Dembskiy (JIRA)

It is looks like nobody care about it

@swift-ci
Copy link
Collaborator Author

swift-ci commented Sep 6, 2017

Comment by Ali Yousefi Sabzevar (JIRA)

I faced this problem when compiling swift-4.0-DEVELOPMENT-SNAPSHOT-2017-09-05-a on Fedora 26.
Will somebody help?

@compnerd
Copy link
Collaborator

I believe this was fixed a while ago with building blocks runtime as part of dispatch and using that.

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. build-script Area → utils: The build script Linux Platform: Linux
Projects
None yet
Development

No branches or pull requests

2 participants