This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Hard coding paths to shared libraries


On Aug 21, 2003, Daniel Jacobowitz <drow@mvista.com> wrote:

> On Thu, Aug 21, 2003 at 01:59:59PM -0500, Rocha Iran-QIR001 wrote:

>> /usr/platform/SUNW,Ultra-60/lib/libc_psr.so.1
>> 
>> Apparently, the path to libc_psr.so.1 was hard coded into the binary.

> Look up "rpath" in the GNU ld documentation.

That's not quite the same.  Hardcoding the pathname of the library is
not the same as hardcoding a path in which the library might be found.
If Iran actually wants the latter, the trick I'm aware of is uglier:
create a shared library with the same external interface as the one
you'd want to link with, but with an SONAME that is the full pathname
of the library, and then link with this alternate library instead.

If creating a library with the same interface is difficult, you might
create this alternate library such that it is dynamically linked with
the original library, and add an -rpath-link flag to any command line
in which you reference the alternate library such that the linker
finds the actual library.  I'm not entirely sure this indirect
arrangement works, though, since I've never tried it.

Yes, this *is* hideous :-)

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                 aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist                Professional serial bug killer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]