Is there something like $ORIGIN for AIX ld?
Steve Poole
spoole at linux.vnet.ibm.com
Sun Sep 30 04:21:37 PDT 2012
I have been investigating and the answer does appear to be "no" :-(
On 14 Sep 2012, at 10:05, Volker Simonis <volker.simonis at gmail.com> wrote:
> Hi Jonathan,
>
> that exactly how I've done it for now.
> Nevertheless I was interested if such a feature exists on AIX because
> it may useful in other use cases as well.
>
> Regards,
> Volker
>
> On Fri, Sep 14, 2012 at 10:49 AM, Jonathan Lu <luchsh at linux.vnet.ibm.com> wrote:
>> Hello Volker,
>>
>> How about just using static linking? which also makes the executable
>> 'independent' from other libraries.
>>
>> Regards
>> Jonathan
>>
>>
>> On 09/13/2012 05:34 PM, Volker Simonis wrote:
>>>
>>> Hi,
>>>
>>> in OpenJDK 7 the java executable is by default linked against
>>> libjli.so which is located under jre/lib/amd64/jli/libjli.so.
>>> libjli.so is found by the runtime linker because the java executable
>>> was linked with a corresponding
>>> "-Wl,-rpath,$ORIGIN/../jre/lib/amd64/jli" option which allows the
>>> executable to find the library relatively to its own location.
>>>
>>> My question is, if there exists a similar construct for AIX?
>>>
>>> The same question (in some more detail) has been already asked some
>>> time ago in a IBM developerworks forum
>>> (http://www.ibm.com/developerworks/forums/message.jspa?messageID=14036328)
>>> and because I'm just to lazy to reformulate it with my own words,
>>> here's it is:
>>>
>>> "
>>> ...
>>> I want to make my executable, which uses shared libraries, independent
>>> of any shared library path setings (LIBBPATH ...). Instead the shared
>>> libraries should
>>> always be searched for in the directory in which the executable resides.
>>> This is to ease installation and to ensure, my app always picks up the
>>> right libraries.
>>>
>>> On Platforms like linux, hpux and solaris this can easily be handeled
>>> by placing $ORIGIN in the link line (e.g. on linux: gcc -Wl,-rpath,$ORIGIN
>>> ...
>>> or on hpux: ld +b \$ORIGIN ... or on solaris: ld -R \$ORIGIN ...)
>>>
>>> By doing this and placing all shared libraries that my executbale
>>> needs in the same
>>> directory as the executbale itself, the shared libraries are always found
>>> from
>>> that location relative to the location of the executable in the
>>> filesystem.
>>> This works because $ORIGIN is resolved by the dynamic loader not at
>>> linktime but
>>> at execution time. It is resolved to the directory in which the
>>> executbale resides.
>>>
>>> I could not find anything like this for AIX.
>>> Is there such a mechanism on AIX as well?
>>> ...
>>> "
>>>
>>> Regards,
>>> Volker
>>>
>>
>
More information about the ppc-aix-port-dev
mailing list