-
Notifications
You must be signed in to change notification settings - Fork 128
Open
Description
I'm trying to build SPM with SwiftBuild on Linux, in order to check swiftlang/swift-package-manager#7239
cd swift-package-manager
swift build --build-system swiftbuild -v -j 1
Fails to link with:
error: /tmp/swift-package-manager/Package.swift Linker command failed with exit code 1 (use -v to see invocation)
info: error: link command failed with exit code 1 (use -v to see invocation)
/tmp/swift-package-manager/Package.swift: package-info-product: /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/CCryptoBoringSSL.o:err_data.cc:function __clang_call_terminate: error: undefined reference to '__cxa_begin_catch'
/tmp/swift-package-manager/Package.swift: package-info-product: /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/CCryptoBoringSSL.o:err_data.cc:function __clang_call_terminate: error: undefined reference to 'std::terminate()'
/tmp/swift-package-manager/Package.swift: package-info-product: /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/CCryptoBoringSSL.o:err_data.cc:DW.ref.__gxx_personality_v0: error: undefined reference to '__gxx_personality_v0'
/tmp/swift-package-manager/Package.swift: package-info-product: clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: Ld /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/package-info normal failed with a nonzero exit code. Command line: cd /tmp/swift-package-manager
/usr/bin/swiftc -target aarch64-unknown-linux-gnu -emit-executable -sysroot / -L/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Intermediates.noindex/EagerLinkingTBDs/Debug-linux -L/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux -L/usr/lib @/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Intermediates.noindex/SwiftPM.build/Debug-linux/package-info.build/Objects-normal/aarch64/package-info.LinkFileList -Xlinker -rpath -Xlinker \$ORIGIN -Xlinker -rpath -Xlinker /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/PackageFrameworks -Xlinker --gc-sections -Xclang-linker -rdynamic -lswiftCore -lswiftSwiftOnoneSupport -L/usr/lib/swift/linux -L/usr/lib/swift @/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Intermediates.noindex/SwiftPM.build/Debug-linux/package-info.build/Objects-normal/aarch64/package_info.autolink -o /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/package-info
error: SwiftCompile normal aarch64 /tmp/swift-package-manager/Sources/CoreCommands/Options.swift failed with a nonzero exit code. Command line: cd /tmp
error: SwiftCompile normal aarch64 Compiling\ Options.swift /tmp/swift-package-manager/Sources/CoreCommands/Options.swift failed with a nonzero exit code. Command line: <no command line>
info: /tmp/swift-package-manager/Package.swift: swift-build-prebuilts-product: /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/CCryptoBoringSSL.o:err_data.cc:function __clang_call_terminate: error: undefined reference to '__cxa_begin_catch'
/tmp/swift-package-manager/Package.swift: swift-build-prebuilts-product: /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/CCryptoBoringSSL.o:err_data.cc:function __clang_call_terminate: error: undefined reference to 'std::terminate()'
/tmp/swift-package-manager/Package.swift: swift-build-prebuilts-product: /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/CCryptoBoringSSL.o:err_data.cc:DW.ref.__gxx_personality_v0: error: undefined reference to '__gxx_personality_v0'
error: Ld /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/swift-build-prebuilts normal failed with a nonzero exit code. Command line: cd /tmp/swift-package-manager
/usr/bin/swiftc -target aarch64-unknown-linux-gnu -emit-executable -sysroot / -L/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Intermediates.noindex/EagerLinkingTBDs/Debug-linux -L/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux -L/usr/lib @/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Intermediates.noindex/SwiftPM.build/Debug-linux/swift-build-prebuilts.build/Objects-normal/aarch64/swift-build-prebuilts.LinkFileList -Xlinker -rpath -Xlinker \$ORIGIN -Xlinker -rpath -Xlinker /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/PackageFrameworks -Xlinker --gc-sections -Xclang-linker -rdynamic -lswiftCore -lswiftSwiftOnoneSupport -L/usr/lib/swift/linux -L/usr/lib/swift @/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Intermediates.noindex/SwiftPM.build/Debug-linux/swift-build-prebuilts.build/Objects-normal/aarch64/swift_build_prebuilts.autolink -o /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/swift-build-prebuilts
error: Ld /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/SwiftPM.so normal failed with a nonzero exit code. Command line: cd /tmp/swift-package-manager
/usr/bin/swiftc -target aarch64-unknown-linux-gnu -emit-library -sysroot / -L/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Intermediates.noindex/EagerLinkingTBDs/Debug-linux -L/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux -L/usr/lib @/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Intermediates.noindex/SwiftPM.build/Debug-linux/SwiftPM-product.build/Objects-normal/aarch64/SwiftPM.LinkFileList -Xlinker -soname -Xlinker /SwiftPM.so -Xlinker -rpath -Xlinker \$ORIGIN -Xlinker -rpath -Xlinker /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/PackageFrameworks -Xlinker --gc-sections -Xclang-linker -rdynamic -lswiftCore -lswiftSwiftOnoneSupport -L/usr/lib/swift/linux -L/usr/lib/swift -lm -lncurses -lsqlite3 -o /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/SwiftPM.so
error: Ld /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/swift-bootstrap normal failed with a nonzero exit code. Command line: cd /tmp/swift-package-manager
/usr/bin/swiftc -target aarch64-unknown-linux-gnu -emit-executable -sysroot / -L/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Intermediates.noindex/EagerLinkingTBDs/Debug-linux -L/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux -L/usr/lib @/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Intermediates.noindex/SwiftPM.build/Debug-linux/swift-bootstrap.build/Objects-normal/aarch64/swift-bootstrap.LinkFileList -Xlinker -rpath -Xlinker \$ORIGIN -Xlinker -rpath -Xlinker /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/PackageFrameworks -Xlinker --gc-sections -Xclang-linker -rdynamic -lswiftCore -lswiftSwiftOnoneSupport -L/usr/lib/swift/linux -L/usr/lib/swift @/tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Intermediates.noindex/SwiftPM.build/Debug-linux/swift-bootstrap.build/Objects-normal/aarch64/swift_bootstrap.autolink -lm -lncurses -lsqlite3 -o /tmp/swift-package-manager/.build/aarch64-unknown-linux-gnu/Products/Debug-linux/swift-bootstrap
info: Discovering Swift tasks after 'Compiling SwiftCommandObservabilityHandler.swift'
Discovering Swift tasks after 'Compiling SwiftCommandObservabilityHandler.swift'[94/100] swift-bootstrap-product 3194 / 3369
error: Build failed
If adding -Xlinker -lstdc++ to the failed command it is able to link successfully.
Can reproduce in container:
container run --memory 16G --cpus 8 -ti swiftlang/swift:nightly-main /bin/bash
apt-get update && apt-get -y install libsqlite3-dev libncurses5-dev
git clone https://github.com/swiftlang/swift-package-manager.git
cd swift-package-manager
swift build --build-system swiftbuild
Metadata
Metadata
Assignees
Labels
No labels