
On Tue, Sep 28, Fabian Vogt wrote:
libdl.so is only needed for linking against libdl dynamically (-ldl), and was thus only provided by glibc-devel. With the latest version, "-ldl" picks the empty libdl.a instead. So using dlopen("libdl.so.2") instead would be the correct fix for this. However, it would break with other libcs, where the filename might differ. I suggest dlopen("libdl.so") and fall back to dlopen("libdl.so.2") if it failed with ENOENT. Or the other way around.
And using dlopen("libdl.so") will break if libdl.so.X changes incompatible. It's always a really bad idea to dlopen the *.so symlink, as you never know what you will really load and if this library then provides the ABI you are expecting. Always use the soname of the library for dlopen(). Thorsten -- Thorsten Kukuk, Distinguished Engineer, Senior Architect SLES & MicroOS SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany Managing Director: Felix Imendoerffer (HRB 36809, AG Nürnberg)