Dear Swift Community,
I'm trying to cross-compile a binary on my Mac for Ubuntu 20.04, but I'm facing some issues.
After building the Ubuntu SDK with this command:
/path/to/swift-package-manager/Utilities/build_ubuntu_cross_compilation_toolchain ~/toolchains swift-5.3.3-RELEASE-osx.pkg swift-5.3.3-RELEASE-ubuntu20.04.tar.gz
I tried to compile a simple hello-world package:
$ swift package init --type executable
$ swift build --destination ~/toolchains/cross-toolchain/ubuntu-xenial-destination.json
/Users/user/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: cannot open Scrt1.o: No such file or directory
/Users/user/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: cannot open crti.o: No such file or directory
/Users/user/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: cannot open crtbeginS.o: No such file or directory
/Users/user/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: unable to find library -lgcc
/Users/user/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: unable to find library -lgcc_s
/Users/user/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: unable to find library -lc
/Users/user/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: unable to find library -lgcc
/Users/user/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: unable to find library -lgcc_s
/Users/user/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: cannot open crtendS.o: No such file or directory
/Users/user/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: cannot open crtn.o: No such file or directory
clang-10: 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)
[0/1] Linking test
Passing -sdk to swiftc doesn't work either:
$ swift build --destination ~/toolchains/cross-toolchain/ubuntu-xenial-destination.json -Xswiftc -sdk -Xswiftc ~/toolchains/cross-toolchain/ubuntu-xenial.sdk
[1/1] Planning build
clang-10: error: no such file or directory: '/Users/jefflebrun/toolchains/cross-toolchain/ubuntu-xenial.sdk/usr/lib/swift/linux/x86_64/swiftrt.o'
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)
[3/4] Linking test
Nor does passing ~/toolchains/cross-toolchain/swift.xctoolchain to -sdk:
$ swift build --destination ~/toolchains/cross-toolchain/ubuntu-xenial-destination.json -Xswiftc -sdk -Xswiftc ~/toolchains/cross-toolchain/swift.xctoolchain
[1/1] Planning build
/Users/jefflebrun/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: cannot open Scrt1.o: No such file or directory
/Users/jefflebrun/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: cannot open crti.o: No such file or directory
/Users/jefflebrun/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: cannot open crtbeginS.o: No such file or directory
/Users/jefflebrun/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: unable to find library -lgcc
/Users/jefflebrun/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: unable to find library -lgcc_s
/Users/jefflebrun/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: unable to find library -lc
/Users/jefflebrun/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: unable to find library -lgcc
/Users/jefflebrun/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: unable to find library -lgcc_s
/Users/jefflebrun/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: cannot open crtendS.o: No such file or directory
/Users/jefflebrun/toolchains/cross-toolchain/swift.xctoolchain/usr/bin/ld.lld: error: cannot open crtn.o: No such file or directory
clang-10: 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)
[3/4] Linking test
Jeff