Static vs dynamic linkage of libedit/libuuid on Linux


(Jason Barrett Prado) #1

I built swift/swiftc for Linux x86-64 and I noticed that the binaries have
a dependency on libedit and libuuid. The other shared libraries needed by
swift are fairly standard on Linux systems it seems, but these
libedit/libuuid are not on the systems I'd like to run this binary on.

Is there a reason they got dynamically linked? Can I force them to be
statically linked, or would you accept a patch that did so?

The shared library dependencies from readelf:
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
0x0000000000000001 (NEEDED) Shared library: [libedit.so.0]
0x0000000000000001 (NEEDED) Shared library: [libuuid.so.1]
0x0000000000000001 (NEEDED) Shared library: [librt.so.1]
0x0000000000000001 (NEEDED) Shared library: [libtinfo.so.5]
0x0000000000000001 (NEEDED) Shared library: [libz.so.1]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library:
[ld-linux-x86-64.so.2]