SUMMARY: libdl.so frustration

From: Eduardo Halvstein (jdm@europa.com)
Date: Thu Oct 13 1994 - 23:19:56 CDT


A day or so ago, I wrote this message--

> I've got a Sun SPARCStation LX that's a sun4m running SunOS 4.1.3C.
>
> I've got a bunch of stuff to compile on it and everytime I need to
> compile an executable, I end up having to link with libdl.so to get the
> functions dlopen(), dlsym(), and dlclose().
>
> Much of what I've been compiling has rather large and involved makefiles,
> like gcc and glibc, and without special attention, whenever an executable
> will be produced, the make will die and I'll have to link it by hand.
>
> I've never had to deal with libdl.so before and was wondering if there
> was a way to change the configuration so that it would get the dl*()
> functions automatically without all the extra effort.
>
> Is there something I can do or am I stuck?
>
> Thanks.

Even though I failed to mention it, most people who responded realized that
I had just rebuilt my shared libraries and explained how to fix it. I had
inadvertantly caused the problem that morning when I installed the resolver
functions from bind. When I followed the rather simple instructions to fix
my booboo, everything worked just fine. Thank you!

Here's a description of the problem and solution from Pat Myrto--

> You got bit by the bug in shlib.etc when you rebuilt your shared libs.
> Sun forgot to put in the '-ldl' at the end of each ld line in the makefile.
> So the result is many apps will not make properly because of this.
>
> Edit the makefile in shlib.etc, and add '-ldl' (without quotes of course)
> at the end of the ld command line in the Makefile in shlib.etc, and
> rebuild your shared libs again using the altered makefile. You don't
> need to do the whole extract and module substitution process again if you
> left all the .o files in that tmp subdir - just rerun the altered makefile,
> and then install the new shared libs produced. 'Course, if you cleaned
> up everything, then you will have to do the whole shebang all over again.
>
> Once you install the new shared lib in single user, then reboot, everything
> will behave normally. Sun and half the world has been aware of this,
> yet they still forget to make that change. Its still like that in
> 4.1.3_U1 Rev B, Yeh, its an annoyance, and for folks that are unaware
> of this bug, its a real pain in the butt.
>
> All the dl functions are is dummy stubs to act as a placeholder for the
> real dl functions in ld.so, but if they aren't there, ld.so cannot
> do its thing (ld.so actually replaces the dl funct calls on the fly
> during the dynamic load phase, but if the placeholders aren't there,
> it all falls apart).

Thanks again, to everyone who responded, I appreciate it quite a bit.

-- 
->Enigma/VioletArcana/TheOrb/InformationSociety/L.A.Style/U-96/Moby<-
--->Messiah/LordsOfAcid/Enya/NineInchNails/Front242/PolygonWindow<---



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:09:11 CDT