Re: How to build an RPATH into gcc?

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

 



Adrian Bunk <bunk@xxxxxxxxx> writes:

> On Sun, May 02, 2004 at 05:35:28PM -0600, llewelly@xxxxxxxxxxxx wrote:
> > Adrian Bunk <bunk@xxxxxxxxx> writes:
> > 
> > > Hi,
> > > 
> > > if the following problem is a RTFM, I'd be glad if someone could give me
> > > a pointer to the corresponting "M"....
> > > 
> > > I have the following problem when building gcc 3.3.3 or 3.4.0 on a 
> > > sparc-unknown-netbsdelf1.5 system:
> > > 
> > > The build works fine, using
> > >   ../configure
> > >   make bootstrap
> > > but the binary doesn't run:
> > > 
> > > <--  snip  -->
> > > 
> > > $ ./gcc
> > > Shared object "libintl.so.5" not found
> > > $ objdump -p gcc
> > > ...
> > > Dynamic Section:
> > >   NEEDED      libintl.so.5
> > >   NEEDED      libiconv.so.4
> > >   NEEDED      libc.so.12
> > >   INIT        0x10de0
> > > ...
> > > 
> > > <--  snip  -->
> > > 
> > > libintl and libiconv are in /usr/local/lib.
> > > 
> > >   LDFLAGS="-L/usr/local/lib -R/usr/local/lib" ../configure
> > > didn't work
> > > 
> > >   LD_LIBRARY_PATH=/usr/local/lib ./gcc
> > > works but isn't optimal.
> > > 
> > > It might be very simple, but I don't find the solution myself...
> > [snip]
> > 
> > You have 3 alternatives;
> > 
> >     (0) build gcc staticly linked,
> 
> Can I link only libintl and libiconv (but not libc) statically?
> If yes, how?

I don't think this can be done without serious hacking of the gcc
    configure and build system.

You might try setting LDFLAGS to 
    '/usr/local/libintl.a /usr/local/libiconv.a' before running
    configure, but I don't think that will work.

> 
> >     (1) use LD_LIBRARY_PATH,
> 
> That's what I want to avoid, e.g. because this sometimes makes it 
> non-trivial to compile other software.

I forgot to mention that you could also use LD_PRELOAD, but that has
    a similar disadvantage. But LD_PRELOAD allows you to list only
    specific libraries, instead of whole directories.

Maybe a wrapper script using LD_PRELOAD or LD_LIBRARY_PATH would be
    appropriate. 

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux