Can’t build libswiftDispatch.so

okay, so that means i was running the subcommand in the wrong directory. so, retracing those steps:

$ cd ../build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/
$ /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swiftc -v -output-file-map src/swift/CMakeFiles/swiftDispatch.dir/Release/output-file-map.json -incremental -j 12 -emit-library -o libswiftDispatch.so -module-name Dispatch -module-link-name swiftDispatch -emit-module -emit-module-path src/swift/swift/Dispatch.swiftmodule -emit-dependencies -DswiftDispatch_EXPORTS -module-cache-path "/swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/module-cache" -O -Xcc -fblocks -Xcc -fmodule-map-file=/swift/swift-project/swift-corelibs-libdispatch/dispatch/module.modulemap -Xcc -I/swift/swift-project/swift-corelibs-libdispatch -Xcc -I/swift/swift-project/swift-corelibs-libdispatch/src/swift/shims -vfsoverlay /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/dispatch-vfs-overlay.yaml -I /swift/swift-project/swift-corelibs-libdispatch/src/BlocksRuntime -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64 -I /swift/swift-project/swift-corelibs-libdispatch -I /swift/swift-project/swift-corelibs-libdispatch/src -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/src /swift/swift-project/swift-corelibs-libdispatch/src/swift/Block.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Data.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Dispatch.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/IO.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Private.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Queue.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Source.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Time.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Wrapper.swift -no-toolchain-stdlib-rpath -Xlinker -soname -Xlinker libswiftDispatch.so  -L /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/src/swift  -L /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64  -L /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64   -L /usr/lib/gcc/x86_64-amazon-linux/11 -Xlinker -rpath -Xlinker /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64:  src/swift/libDispatchStubs.a  libdispatch.so  libBlocksRuntime.so  -lstdc++  -lm  -lgcc_s  -lgcc  -lc  -lgcc_s  -lgcc
Swift version 5.11-dev (LLVM 497a64a78b2fba6, Swift 0bbcae4e9278768)
Target: x86_64-unknown-linux-gnu
/swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift-frontend -frontend -c -primary-file /swift/swift-project/swift-corelibs-libdispatch/src/swift/Block.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Data.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Dispatch.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/IO.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Private.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Queue.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Source.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Time.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Wrapper.swift -emit-module-path src/swift/CMakeFiles/swiftDispatch.dir/Block.swift.swiftmodule -emit-module-doc-path src/swift/CMakeFiles/swiftDispatch.dir/Block.swift.swiftdoc -emit-module-source-info-path src/swift/CMakeFiles/swiftDispatch.dir/Block.swift.swiftsourceinfo -emit-dependencies-path src/swift/CMakeFiles/swiftDispatch.dir/Block.swift.o.d -emit-reference-dependencies-path src/swift/CMakeFiles/swiftDispatch.dir/Block.swift.o.swiftdeps -target x86_64-unknown-linux-gnu -disable-objc-interop -I /swift/swift-project/swift-corelibs-libdispatch/src/BlocksRuntime -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64 -I /swift/swift-project/swift-corelibs-libdispatch -I /swift/swift-project/swift-corelibs-libdispatch/src -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/src -vfsoverlay /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/dispatch-vfs-overlay.yaml -color-diagnostics -module-cache-path /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/module-cache -module-link-name swiftDispatch -O -D swiftDispatch_EXPORTS -empty-abi-descriptor -resource-dir /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift -Xcc -fblocks -Xcc -fmodule-map-file=/swift/swift-project/swift-corelibs-libdispatch/dispatch/module.modulemap -Xcc -I/swift/swift-project/swift-corelibs-libdispatch -Xcc -I/swift/swift-project/swift-corelibs-libdispatch/src/swift/shims -module-name Dispatch -plugin-path /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/host/plugins -plugin-path /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/local/lib/swift/host/plugins -enable-default-cmo -parse-as-library -o src/swift/CMakeFiles/swiftDispatch.dir/Block.swift.o
/swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift-frontend -frontend -c /swift/swift-project/swift-corelibs-libdispatch/src/swift/Block.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Data.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Dispatch.swift -primary-file /swift/swift-project/swift-corelibs-libdispatch/src/swift/IO.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Private.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Queue.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Source.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Time.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Wrapper.swift -emit-module-path src/swift/CMakeFiles/swiftDispatch.dir/IO.swift.swiftmodule -emit-module-doc-path src/swift/CMakeFiles/swiftDispatch.dir/IO.swift.swiftdoc -emit-module-source-info-path src/swift/CMakeFiles/swiftDispatch.dir/IO.swift.swiftsourceinfo -emit-dependencies-path src/swift/CMakeFiles/swiftDispatch.dir/IO.swift.o.d -emit-reference-dependencies-path src/swift/CMakeFiles/swiftDispatch.dir/IO.swift.o.swiftdeps -target x86_64-unknown-linux-gnu -disable-objc-interop -I /swift/swift-project/swift-corelibs-libdispatch/src/BlocksRuntime -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64 -I /swift/swift-project/swift-corelibs-libdispatch -I /swift/swift-project/swift-corelibs-libdispatch/src -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/src -vfsoverlay /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/dispatch-vfs-overlay.yaml -color-diagnostics -module-cache-path /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/module-cache -module-link-name swiftDispatch -O -D swiftDispatch_EXPORTS -empty-abi-descriptor -resource-dir /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift -Xcc -fblocks -Xcc -fmodule-map-file=/swift/swift-project/swift-corelibs-libdispatch/dispatch/module.modulemap -Xcc -I/swift/swift-project/swift-corelibs-libdispatch -Xcc -I/swift/swift-project/swift-corelibs-libdispatch/src/swift/shims -module-name Dispatch -plugin-path /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/host/plugins -plugin-path /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/local/lib/swift/host/plugins -enable-default-cmo -parse-as-library -o src/swift/CMakeFiles/swiftDispatch.dir/IO.swift.o
/swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift-frontend -frontend -c /swift/swift-project/swift-corelibs-libdispatch/src/swift/Block.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Data.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Dispatch.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/IO.swift -primary-file /swift/swift-project/swift-corelibs-libdispatch/src/swift/Private.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Queue.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Source.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Time.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Wrapper.swift -emit-module-path src/swift/CMakeFiles/swiftDispatch.dir/Private.swift.swiftmodule -emit-module-doc-path src/swift/CMakeFiles/swiftDispatch.dir/Private.swift.swiftdoc -emit-module-source-info-path src/swift/CMakeFiles/swiftDispatch.dir/Private.swift.swiftsourceinfo -emit-dependencies-path src/swift/CMakeFiles/swiftDispatch.dir/Private.swift.o.d -emit-reference-dependencies-path src/swift/CMakeFiles/swiftDispatch.dir/Private.swift.o.swiftdeps -target x86_64-unknown-linux-gnu -disable-objc-interop -I /swift/swift-project/swift-corelibs-libdispatch/src/BlocksRuntime -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64 -I /swift/swift-project/swift-corelibs-libdispatch -I /swift/swift-project/swift-corelibs-libdispatch/src -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/src -vfsoverlay /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/dispatch-vfs-overlay.yaml -color-diagnostics -module-cache-path /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/module-cache -module-link-name swiftDispatch -O -D swiftDispatch_EXPORTS -empty-abi-descriptor -resource-dir /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift -Xcc -fblocks -Xcc -fmodule-map-file=/swift/swift-project/swift-corelibs-libdispatch/dispatch/module.modulemap -Xcc -I/swift/swift-project/swift-corelibs-libdispatch -Xcc -I/swift/swift-project/swift-corelibs-libdispatch/src/swift/shims -module-name Dispatch -plugin-path /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/host/plugins -plugin-path /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/local/lib/swift/host/plugins -enable-default-cmo -parse-as-library -o src/swift/CMakeFiles/swiftDispatch.dir/Private.swift.o
/swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift-frontend -frontend -c /swift/swift-project/swift-corelibs-libdispatch/src/swift/Block.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Data.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Dispatch.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/IO.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Private.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Queue.swift -primary-file /swift/swift-project/swift-corelibs-libdispatch/src/swift/Source.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Time.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Wrapper.swift -emit-module-path src/swift/CMakeFiles/swiftDispatch.dir/Source.swift.swiftmodule -emit-module-doc-path src/swift/CMakeFiles/swiftDispatch.dir/Source.swift.swiftdoc -emit-module-source-info-path src/swift/CMakeFiles/swiftDispatch.dir/Source.swift.swiftsourceinfo -emit-dependencies-path src/swift/CMakeFiles/swiftDispatch.dir/Source.swift.o.d -emit-reference-dependencies-path src/swift/CMakeFiles/swiftDispatch.dir/Source.swift.o.swiftdeps -target x86_64-unknown-linux-gnu -disable-objc-interop -I /swift/swift-project/swift-corelibs-libdispatch/src/BlocksRuntime -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64 -I /swift/swift-project/swift-corelibs-libdispatch -I /swift/swift-project/swift-corelibs-libdispatch/src -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/src -vfsoverlay /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/dispatch-vfs-overlay.yaml -color-diagnostics -module-cache-path /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/module-cache -module-link-name swiftDispatch -O -D swiftDispatch_EXPORTS -empty-abi-descriptor -resource-dir /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift -Xcc -fblocks -Xcc -fmodule-map-file=/swift/swift-project/swift-corelibs-libdispatch/dispatch/module.modulemap -Xcc -I/swift/swift-project/swift-corelibs-libdispatch -Xcc -I/swift/swift-project/swift-corelibs-libdispatch/src/swift/shims -module-name Dispatch -plugin-path /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/host/plugins -plugin-path /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/local/lib/swift/host/plugins -enable-default-cmo -parse-as-library -o src/swift/CMakeFiles/swiftDispatch.dir/Source.swift.o
/swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift-frontend -frontend -c /swift/swift-project/swift-corelibs-libdispatch/src/swift/Block.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Data.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Dispatch.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/IO.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Private.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Queue.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Source.swift -primary-file /swift/swift-project/swift-corelibs-libdispatch/src/swift/Time.swift /swift/swift-project/swift-corelibs-libdispatch/src/swift/Wrapper.swift -emit-module-path src/swift/CMakeFiles/swiftDispatch.dir/Time.swift.swiftmodule -emit-module-doc-path src/swift/CMakeFiles/swiftDispatch.dir/Time.swift.swiftdoc -emit-module-source-info-path src/swift/CMakeFiles/swiftDispatch.dir/Time.swift.swiftsourceinfo -emit-dependencies-path src/swift/CMakeFiles/swiftDispatch.dir/Time.swift.o.d -emit-reference-dependencies-path src/swift/CMakeFiles/swiftDispatch.dir/Time.swift.o.swiftdeps -target x86_64-unknown-linux-gnu -disable-objc-interop -I /swift/swift-project/swift-corelibs-libdispatch/src/BlocksRuntime -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64 -I /swift/swift-project/swift-corelibs-libdispatch -I /swift/swift-project/swift-corelibs-libdispatch/src -I /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/src -vfsoverlay /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/dispatch-vfs-overlay.yaml -color-diagnostics -module-cache-path /swift/swift-project/build/Ninja-ReleaseAssert/libdispatch-linux-x86_64/module-cache -module-link-name swiftDispatch -O -D swiftDispatch_EXPORTS -empty-abi-descriptor -resource-dir /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift -Xcc -fblocks -Xcc -fmodule-map-file=/swift/swift-project/swift-corelibs-libdispatch/dispatch/module.modulemap -Xcc -I/swift/swift-project/swift-corelibs-libdispatch -Xcc -I/swift/swift-project/swift-corelibs-libdispatch/src/swift/shims -module-name Dispatch -plugin-path /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/host/plugins -plugin-path /swift/swift-project/build/Ninja-ReleaseAssert/swift-linux-x86_64/local/lib/swift/host/plugins -enable-default-cmo -parse-as-library -o src/swift/CMakeFiles/swiftDispatch.dir/Time.swift.o
error: fatalError

(why is it using a 5.11 compiler?)

i only see 5 swift-frontend invocations here, and running them each invididually succeeds:

  • Block.swift.o
  • IO.swift.o
  • Private.swift.o
  • Source.swift.o
  • Time.swift.o

so i assume it must be an error in the swiftc invocation.

attaching lldb did not work initially, due to this issue.

lldb: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

i tried to adapt your suggestion in that thread by running:

$ sudo ln -s /usr/lib64/libpython3.9.so.1.0 /usr/lib64/libpython3.7m.so.1.0

that got lldb to launch, but it just failed later with

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'lldb'

fortunately this is a well-known issue and on Amazon Linux 2023 you can just run:

$ sudo yum install python3-lldb

but then i get a different python error:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib64/python3.9/site-packages/lldb/__init__.py", line 952, in <module>
    eArgTypeReproducerProvider = _lldb.eArgTypeReproducerProvider
AttributeError: module '_lldb' has no attribute 'eArgTypeReproducerProvider'

the error always occurs when running lldb, even just lldb --version

$ lldb --version
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib64/python3.9/site-packages/lldb/__init__.py", line 952, in <module>
    eArgTypeReproducerProvider = _lldb.eArgTypeReproducerProvider
AttributeError: module '_lldb' has no attribute 'eArgTypeReproducerProvider'
lldb version 13.0.0git (https://github.com/apple/llvm-project.git revision 2b42c5ce063a374fb22676e27505a22fe411ea8c)
Swift version 5.9.2 (swift-5.9.2-RELEASE)

this appears to be a new problem in swift 5.9, and i have not been able to find a solution yet.


EDIT: one hypothesis is that lldb (which comes from /opt/swift/5.9.2/usr/bin/lldb) is version 13, but the version of python-lldb installed is 15.0.7. unfortunately, i do not know of a way to install an older version of python-lldb:

$ yum --showduplicates list python3-lldb | expand
Last metadata expiration check: 0:01:41 ago on Tue Jan 16 22:40:56 2024.
Installed Packages
python3-lldb.x86_64              15.0.7-3.amzn2023.0.1              @amazonlinux
Available Packages
python3-lldb.x86_64              15.0.6-1.amzn2023.0.3              amazonlinux 
python3-lldb.x86_64              15.0.7-3.amzn2023.0.1              amazonlinux