automake
[Top][All Lists]
Advanced

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

Re: question about -rpath


From: Ted Irons
Subject: Re: question about -rpath
Date: Tue, 26 Feb 2002 17:59:45 -0700

I'm using autoconf-2.52, automake-1.5b, libtool-1.4d.

I don't understand when -rpath (or -R or -Wl,--rpath -Wl,<libdir>) is needed
(other than  by experimentation).
>From reading the following on p. 22 of the Automake manual

    For libraries installed in some directory, Automake will automatically 
supply the appropriate `-rpath' option.
    However, for libraries determined at configure time (and thus mentioned in 
EXTRA_LTLIBRARIES), Automake
    does not know the eventual installation directory; for such libraries you 
must add the `-rpath' option to the
    appropriate `_LDFLAGS' variable by hand.

it would seem to me that -rpath is needed on ALL libraries determined at 
configure time.
But the eg below (where postfix is a local project) seems to indicate otherwise:
image_sh is a program and
    -L/postfix/dev/pipes/Linux-2.4/lib -lhrnet -lregion -lseg -lutil
    -L/postfix/dev/gfiles/Linux-2.4/lib -lgf -llists
are libtool libraries picked up at configure time.
    -L/postfix/dev/tcl/Linux-2.4/lib -ltcl -lk
are the non-libtool tcl/tk libraries picked up at configure time.

It would seem that libtool knows (from automake?) "the eventual installation 
directory"
of say, eg, -lhrnet, because the actual link line reads
    -L/postfix/dev/pipes/Linux-2.4/lib 
/postfix/dev/pipes/Linux-2.4/lib/libhrnet.so
but does not know  the "eventual installation  directory"  of libtcl.so,  even
tho -L/postfix/dev/tcl/Linux-2.4/lib is given.  Is there  a possibility that 
libtcl.so will
have moved by runtime; but not libhrnet.so?   The rule seems to be that -rpath
is not needed for libtool libraries, but is needed otherwise.  But why?

Also, where is that -Wl,--rpath -Wl,/postfix/dev/tips/Linux-2.4/lib coming  
from?
(tips is the name of the package I'm building, but there is no libtips.so)

The  autotools documentation doesn't seem to explain anywhere what is going on.
Or does it?

Thanks again,
- Ted


Ted Irons wrote:

> Starting with
>
> [187.virgo.image_wish] make image_sh
> /bin/sh ../../libtool --mode=link g++ ...
> -L/postfix/dev/pipes/Linux-2.4/lib -lhrnet -lregion -lseg -lutil 
> -L/postfix/dev/gfiles/Linux-2.4/lib -lgf -llists 
> -L/postfix/dev/tcl/Linux-2.4/lib -ltk -ltcl -L/usr/X11/lib -lXmu -lX11 -ldl 
> -lm -lnsl -lm
>
> we get the following; but why is there
> no -Wl,--rpath  -Wl,/postfix/dev/tcl/Linux-2.4 in the following?
>
> g++ ...
> -L/postfix/dev/pipes/Linux-2.4/lib 
> /postfix/dev/pipes/Linux-2.4/lib/libhrnet.so 
> /postfix/dev/pipes/Linux-2.4/lib/libregion.so 
> /postfix/dev/pipes/Linux-2.4/lib/libseg.so 
> /postfix/dev/pipes/Linux-2.4/lib/libutil.so 
> /postfix/dev/gfiles/Linux-2.4/lib/libgf.so -lstdc++ -lc -lgcc 
> /postfix/dev/gfiles/Linux-2.4/lib/liblists.so -ltk -ltcl -lXmu -lX11 -ldl 
> -lnsl -lm -Wl,--rpath -Wl,/postfix/dev/tips/Linux-2.4/lib -Wl,--rpath 
> -Wl,/postfix/dev/nitf/Linux-2.4/lib -Wl,--rpath 
> -Wl,/postfix/dev/pipes/Linux-2.4/lib
> -Wl,--rpath -Wl,/postfix/dev/gfiles/Linux-2.4/lib
> creating image_sh

>
> It is true that libhrnet.so,eg,  was created with libtool; but libtk.so was 
> not.
>
> Thanks in advance,
> - Ted




reply via email to

[Prev in Thread] Current Thread [Next in Thread]