[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