[openib-general] Static linking with libibverbs

Roland Dreier rdreier at cisco.com
Wed Nov 1 13:39:07 PST 2006


 > static linking actually can be made to work even with older library versions.
 > See this HowTo (written on 02 of November, 2005).
 > https://openib.org/tiki/tiki-index.php?page=HowToFAQ

That's not really static linking.  If you try to build a true static
executable, which contains static libc and in particular static libdl,
there's no way the old code can work, for multiple reasons.  For one
thing, dlopen(NULL, RTLD_NOW) doesn't work on static executables so
libibverbs couldn't find a low-level driver that is statically linked
in.  Second, loading a low-level driver dynamically into a static
executable (which would be done even if the static driver was
sufficient for all the devices in the system) would bring in a dynamic
copy of libibverbs and hence a dynamic copy of libdl, which would
clash with the static copy of libdl already linked in and cause a crash.

So static linking never really worked until libibverbs 1.0.4.




More information about the general mailing list