Skip to content

Instantly share code, notes, and snippets.

@eyeplum
Last active January 8, 2018 20:34
Show Gist options
  • Save eyeplum/b12a95c394c4aa48f11c829b44b54268 to your computer and use it in GitHub Desktop.
Save eyeplum/b12a95c394c4aa48f11c829b44b54268 to your computer and use it in GitHub Desktop.
Swift and Rust Static Linked ELF
#####
# on a machine with Rust installed
#####
$ ldd ./target/debug/hello
linux-vdso.so.1 (0x00007ffefb7f4000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9e6e25b000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f9e6e053000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9e6de36000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9e6dc1f000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9e6d880000)
/lib64/ld-linux-x86-64.so.2 (0x000055749a57a000)
#####
# on a machine that does not have rust installed
#####
$ ./hello_rs
Hello, world!
#####
# on a machine with Swift 4.1-dev installed
#####
$ swift build
Compile Swift Module 'hello' (1 sources)
Linking ./.build/x86_64-unknown-linux/debug/hello
$ ldd .build/x86_64-unknown-linux/debug/hello
linux-vdso.so.1 => (0x00007ffe3036b000)
libswiftCore.so => /usr/lib/swift/linux/libswiftCore.so (0x00007f0b077b5000)
libswiftSwiftOnoneSupport.so => /usr/lib/swift/linux/libswiftSwiftOnoneSupport.so (0x00007f0b07764000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f0b073dd000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f0b070d4000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f0b06ebe000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0b06af3000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f0b068d6000)
libatomic.so.1 => /usr/lib/x86_64-linux-gnu/libatomic.so.1 (0x00007f0b066ce000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0b064c9000)
libicuuc.so.55 => /usr/lib/x86_64-linux-gnu/libicuuc.so.55 (0x00007f0b06135000)
libicui18n.so.55 => /usr/lib/x86_64-linux-gnu/libicui18n.so.55 (0x00007f0b05cd3000)
/lib64/ld-linux-x86-64.so.2 (0x00005557ec1c8000)
libicudata.so.55 => /usr/lib/x86_64-linux-gnu/libicudata.so.55 (0x00007f0b0421b000)
$ swift build --static-swift-stdlib
$ ldd .build/x86_64-unknown-linux/debug/hello
linux-vdso.so.1 => (0x00007fffe8fbf000)
libswiftCore.so => /usr/lib/swift/linux/libswiftCore.so (0x00007f8dd8133000)
libswiftSwiftOnoneSupport.so => /usr/lib/swift/linux/libswiftSwiftOnoneSupport.so (0x00007f8dd80e2000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f8dd7d5b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8dd7a52000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8dd783c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8dd7471000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8dd7254000)
libatomic.so.1 => /usr/lib/x86_64-linux-gnu/libatomic.so.1 (0x00007f8dd704c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8dd6e47000)
libicuuc.so.55 => /usr/lib/x86_64-linux-gnu/libicuuc.so.55 (0x00007f8dd6ab3000)
libicui18n.so.55 => /usr/lib/x86_64-linux-gnu/libicui18n.so.55 (0x00007f8dd6651000)
/lib64/ld-linux-x86-64.so.2 (0x000055f98eadd000)
libicudata.so.55 => /usr/lib/x86_64-linux-gnu/libicudata.so.55 (0x00007f8dd4b99000)
#####
# on a machine that does not have swift toolchain installed
#####
$ ./hello
./hello: error while loading shared libraries: libswiftCore.so: cannot open shared object file: No such file or directory
#####
# on a machine with Swift 4.0.3 release installed
#####
$ ./hello_swift_static
./hello_swift_static: symbol lookup error: ./hello_swift_static: undefined symbol: _T0s27_allocateUninitializedArrayySayxG_BptBwlFyp_Tg5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment