[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: -rpath with libtool and Debian Linux



On Jan 27, 1999, Jason Gunthorpe <jgg@ualberta.ca> wrote:

> Actually you want to know why I remember this? I used libtool a while back
> and I installed a copy of my program in /usr/bin and /usr/lib and wanted
> to us a new local copy of my libtool program. Of course libtool had used
> -rpath to make sure that my local binary used /usr/lib (as it was intended
> to be installed there someday) and then used LD_LIBRARY_PATH in the
> wrapper script to try to override this. Needless to say it did not work
> and it took me a bit of figuring to determine why my changes had no
> effect. Even in an all libtool environment rpath causes pain.

This is a known bug in the current libtool, and we're working on a
fix.

>> I have already told you one (ugly) way to do it, but I still don't
>> think it is a good idea in the general case.

> Didn't we decide that all of the available alternatives that you have
> suggested are not a feasable solution (does this mail help make it clear
> why)?
 
You may have missed the ugly one I was referring to, that I suggested
in the very beginning of this discussion, that would work even for
packages that were distributed with older versions of libtool:
configure the packages to use a gcc or ld wrapper that removes
switches such as -rpath /usr/lib from the command line then call the
appropriate program.

This will have the extra benefit of fixing other packages that don't
use libtool, but happen to specify -rpath on their own.

>   - rpath is good because it allows a binary to have a shared library
>     in a non-standard place without requiring the user to use
>     LD_LIBRARYPATH or the sysadmin to add that place to the search
>     path
>   - rpath is bad because it disables LD_LIBRARYPATH

It does not disable it, it just precedes LD_LIBRARY_PATH.  AFAIK, the
purpose of LD_LIBRARY_PATH is to help a program find a library that
was moved, and it does fulfil this purpose as long as you don't
install another (in)compatible library in place of the moved library.

>   - rpath is bad because it disables the linkers automatic versioning
>     mechanism

Does it?  You mean, that hack in ld.so that adds /usr/lib/libc5 to the 
library search path in certain circumstances?  The hack is incomplete, 
you just have to fix it.

>   - rpath is bad because it prevents you from moving shared libraries
>     around freely.

It does not.  It just prevents you from arbitrarily replacing a
library with an (in)compatible version of it.  Since you shouldn't do
that, libtool is not the piece of software to be blamed for using
-rpath.

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil


Reply to: