You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Sander Striker <st...@apache.org> on 2002/04/18 19:55:55 UTC
instdso.sh and libtool, WAS: RE: FW: shared dav_svn is not relinking
> From: trawick@rdu88-250-035.nc.rr.com
> [mailto:trawick@rdu88-250-035.nc.rr.com]On Behalf Of Jeff Trawick
> Sent: 18 April 2002 19:12
> "Sander Striker" <st...@apache.org> writes:
>
>>>>> 1) always do libtool --install
>>
>> Can we agree on this? Since we are using libtool throughout our
>> entire build it seems inconsistent to bypass it here.
>
> yes, we can agree on this...
Ok, glad to hear that.
> I'm planning to work on this tonight and in the morning. If you'd
> rather proceed yourself, that's fine, and I can test on AIX, Tru64,
> and HP-UX and assume that any oddities on other platforms are
> represented by what happens on those three platforms.
Ok, cool. I probably don't have time to look at it until this
weekend, so please don't wait for me. I'll provide some comments
here that will hopefully be helpfull.
>>>>> 2) look in installed .la file for the name that must be passed to
>>>>> dlopen and rename that file in the target directory to what we
>>>>> think a DSO ought to be named
>>>>
>>>> But we only need to do that for AIX, Tru64 and HP-UX.
>>>
>>> I don't really believe that :) libtool has as many nuances as there
>>> are operating systems. It seems easy enough to look in the .la file
>>> and if the name to dlopen is different than what we want, rename what
>>> it got installed as.
>>
>> Can you give me some examples? I am totally in the dark here and
>> some input on what happens could possibly enable me to help solve
>> the problem.
>
> Here is what gets installed for me with libtool 1.4.2 on AIX:
>
> -rw-r--r-- 1 trawick staff 62568 Apr 18 12:53
> ../../built/modules/libmod_foo.a
> lrwxrwxrwx 1 trawick staff 25 Apr 18 12:53
> ../../built/modules/libmod_foo.so -> libmod_foo.so.0.0.0
> lrwxrwxrwx 1 trawick staff 25 Apr 18 12:53
> ../../built/modules/libmod_foo.so.0 ->
> libmod_foo.so.0.0.0
> -rwxr-xr-x 1 trawick staff 71968 Apr 18 12:53
> ../../built/modules/libmod_foo.so.0.0.0
> -rw-r--r-- 1 trawick staff 792 Apr 18 12:53
> ../../built/modules/mod_foo.la
>
> These variables in the .la file look interesting:
>
> # The name that we can dlopen(3).
> dlname='libmod_foo.so.0.0.0'
> # Names of this library.
> library_names='libmod_foo.so.0.0.0 libmod_foo.so.0 libmod_foo.so'
Ah, now I see what you are talking about. Ok, I think we need to do
the following (all the time*):
- extract dlname from $MODULE_BASENAME.la
- extract library_names from $MODULE_BASENAME.la
- remove $MODULE_BASENAME.la
- remove all files in library_names, except $dlname
- rename $dlname to $MODULE_BASENAME.so
And maybe:
- remove [lib]$MODULE_BASENAME.a
Judging from your emails this is kind of what you had in mind, correct?
*) That is, until a patch is submitted to libtool that will give
us our expected behaviour all the time.
>> Also, is this solvable in libtool itself? IOW, can we come up with
>> a patch to libtool that solves the problem?
>
> sure, somebody could come up with a patch :)
heh.
>>>>> 3) since this design does libtool --install for every DSO, we need to
>>>>> work hard to zap the extra system-dependent libtool-created
>>>>> files/symlinks in the target directory
>>>>
>>>> But that's not too hard. We can zap everything not ending with .so,
>>>> right?
>>>
>>> sounds right... and you have to account for a possible "lib" prefix
>>> on some of the files
>>
>> How did the lib prefix get there in the first place? (does that happen
>> on AIX, Tru64 or HP-UX?).
>
> libtool decided that the lib prefix was appropriate (and I expect that
> it is correct, given the assumption that the library is for linking
> against) .
>
>> If you pass -module to libtool you can name
>> it anything you like; like we do for our modules.
>
> We're already using -module. Are we using it incorrectly?
That's odd. I thought that was one of the reasons to use -module.
If you don't pass it, libtool complains that the name doesn't start with 'lib'.
This sounds like a libtool bug. You are only seeing the lib prefix appear
on some platforms, correct?
Sander
Re: instdso.sh and libtool, WAS: RE: FW: shared dav_svn is not relinking
Posted by Jeff Trawick <tr...@attglobal.net>.
"Sander Striker" <st...@apache.org> writes:
> > These variables in the .la file look interesting:
> >
> > # The name that we can dlopen(3).
> > dlname='libmod_foo.so.0.0.0'
> > # Names of this library.
> > library_names='libmod_foo.so.0.0.0 libmod_foo.so.0 libmod_foo.so'
>
> Ah, now I see what you are talking about. Ok, I think we need to do
> the following (all the time*):
>
> - extract dlname from $MODULE_BASENAME.la
> - extract library_names from $MODULE_BASENAME.la
> - remove $MODULE_BASENAME.la
> - remove all files in library_names, except $dlname
> - rename $dlname to $MODULE_BASENAME.so
>
> And maybe:
> - remove [lib]$MODULE_BASENAME.a
>
>
> Judging from your emails this is kind of what you had in mind, correct?
yessir
> If you don't pass it, libtool complains that the name doesn't start with 'lib'.
> This sounds like a libtool bug. You are only seeing the lib prefix appear
> on some platforms, correct?
yes, IIRC it only appears on Tru64 and AIX
--
Jeff Trawick | trawick@attglobal.net
Born in Roswell... married an alien...