Closed
Description
Previous ID | SR-7038 |
Radar | rdar://problem/37710244 |
Original Reporter | @weissi |
Type | Bug |
Status | Resolved |
Resolution | Done |
Additional Detail from JIRA
Votes | 0 |
Component/s | Compiler |
Labels | Bug, 4.1Regression |
Assignee | @compnerd |
Priority | Medium |
md5: 3fe03957d3ec077a1ac3669583413927
Issue Description:
repro:
-
create a new SwiftPM package (
cd /tmp && mkdir test && cd test && swift package init --type=executable
-
try to build (
rm -rf .build && swift build -Xswiftc -static-stdlib
)
alternatively
echo 'print("hello")' > /tmp/test.swift
/usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/bin/swiftc -o /tmp/test -static-executable /tmp/test.swift
expected:
with 4.0.2 release it works fine:
$ rm -rf .build && /usr/local/swift/swift-4.0.2-RELEASE-ubuntu16.04/usr/bin/swift build -Xswiftc -static-stdlib && .build/x86_64-unknown-linux/debug/test
Compile Swift Module 'test' (1 sources)
Linking ./.build/x86_64-unknown-linux/debug/test
Hello, world!
actual
with today's 4.1 dev snapshot ({{swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a }}) however:
$ rm -rf .build && /usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/bin/swift build -Xswiftc -static-stdlib && .build/x86_64-unknown-linux/debug/test
Compile Swift Module 'test' (1 sources)
Linking ./.build/x86_64-unknown-linux/debug/test
/usr/bin/ld.gold: error: cannot find -lswiftImageInspectionShared
/usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/lib/swift/linux/x86_64/swiftrt.o:/home/buildnode/jenkins/workspace/oss-swift-4.1-package-linux-ubuntu-16_04/swift/stdlib/public/runtime/SwiftRT-ELF.cpp:function swift_image_constructor(): error: undefined reference to 'swift_addNewDSOImage'
/usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/lib/swift_static/linux/libswiftCore.a(Errors.cpp.o):/home/buildnode/jenkins/workspace/oss-swift-4.1-package-linux-ubuntu-16_04/swift/stdlib/public/runtime/Errors.cpp:function swift::dumpStackTraceEntry(unsigned int, void*, bool): error: undefined reference to 'swift::lookupSymbol(void const*, swift::SymbolInfo*)'
/usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/lib/swift_static/linux/libswiftCore.a(MetadataLookup.cpp.o):/home/buildnode/jenkins/workspace/oss-swift-4.1-package-linux-ubuntu-16_04/swift/stdlib/public/runtime/MetadataLookup.cpp:function swift::Lazy<TypeMetadataState>::defaultInitCallback(void*): error: undefined reference to 'swift::initializeTypeMetadataRecordLookup()'
/usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/lib/swift_static/linux/libswiftCore.a(ProtocolConformance.cpp.o):/home/buildnode/jenkins/workspace/oss-swift-4.1-package-linux-ubuntu-16_04/swift/stdlib/public/runtime/ProtocolConformance.cpp:function swift::Lazy<ConformanceState>::defaultInitCallback(void*): error: undefined reference to 'swift::initializeProtocolConformanceLookup()'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)
error: terminated(1): /usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/bin/swift-build-tool -f /tmp/test/.build/debug.yaml main output:
things that are odd:
lswiftImageInspectionShared/Static
seems gone:
in the .lnk
file, it still lists -lswiftImageInspectionStatic
:
$ grep -H . *.lnk | grep swift
static-executable-args.lnk:-lswiftCore
static-executable-args.lnk:-lswiftImageInspectionStatic
static-stdlib-args.lnk:-lswiftCore
static-stdlib-args.lnk:-lswiftImageInspectionShared
but
$ find /usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/ -iname '*imageinspec*' | wc -l
0
However, removing those -lswiftImageInspection*
entries from the .lnk
files also doesn't seem to fix it:
$ rm -rf .build && /usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/bin/swift build -Xswiftc -static-stdlib && .build/x86_64-unknown-linux/debug/test
Compile Swift Module 'test' (1 sources)
Linking ./.build/x86_64-unknown-linux/debug/test
/usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/lib/swift/linux/x86_64/swiftrt.o:/home/buildnode/jenkins/workspace/oss-swift-4.1-package-linux-ubuntu-16_04/swift/stdlib/public/runtime/SwiftRT-ELF.cpp:function swift_image_constructor(): error: undefined reference to 'swift_addNewDSOImage'
/usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/lib/swift_static/linux/libswiftCore.a(Errors.cpp.o):/home/buildnode/jenkins/workspace/oss-swift-4.1-package-linux-ubuntu-16_04/swift/stdlib/public/runtime/Errors.cpp:function swift::dumpStackTraceEntry(unsigned int, void*, bool): error: undefined reference to 'swift::lookupSymbol(void const*, swift::SymbolInfo*)'
/usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/lib/swift_static/linux/libswiftCore.a(MetadataLookup.cpp.o):/home/buildnode/jenkins/workspace/oss-swift-4.1-package-linux-ubuntu-16_04/swift/stdlib/public/runtime/MetadataLookup.cpp:function swift::Lazy<TypeMetadataState>::defaultInitCallback(void*): error: undefined reference to 'swift::initializeTypeMetadataRecordLookup()'
/usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/lib/swift_static/linux/libswiftCore.a(ProtocolConformance.cpp.o):/home/buildnode/jenkins/workspace/oss-swift-4.1-package-linux-ubuntu-16_04/swift/stdlib/public/runtime/ProtocolConformance.cpp:function swift::Lazy<ConformanceState>::defaultInitCallback(void*): error: undefined reference to 'swift::initializeProtocolConformanceLookup()'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)
error: terminated(1): /usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-19-a-ubuntu16.04/usr/bin/swift-build-tool -f /tmp/test/.build/debug.yaml main output:
so maybe libswiftImageIntrospection*
is still needed but no longer part of the distribution?