tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Caldarale, Charles R" <>
Subject RE: path used for tc-natuve
Date Fri, 16 Dec 2011 22:57:06 GMT
> From: Christopher Schultz [] 
> Subject: Re: path used for tc-natuve

> dlopen does not take a search path as a parameter -- it always uses

Well... no.  If a slash is included in the dlopen() argument, that is taken to be a path;
it can be relative or absolute.  If no slash is present, then dlopen() searches in this order:

1) the DT_RPATH tag of the executing program, if DT_RUNPATH isn't present

2) the value of LD_LIBRARY_PATH at the time execution started (so you can't modify it on the

3) the DT_RUNPATH tag of the executing program

4) the files listed in /etc/

5) /lib

6) /usr/lib

> It could modify it's own environment variable by constructing 
> LD_LIBRARY_PATH from some default (but how does it know the 
> system default?) and then calling dlopen or it could search 
> the java.library.path itself, then call dlopen() with the fill
> pathname to the library itself.

Not really either of those.  If java.library.path is set, then Runtime.loadLibrary() effectively
prepends each path within that string to the name of the target and calls dlopen() with it;
if the property is not set, it just goes with the target name and lets dlopen() have at it.
 Under no conditions does Runtime.loadLibrary() do any searching on its own.

Note that it's the java launcher that will set java.library.path to the value of LD_LIBRARY_PATH
if the property is not specified on the command line.  Only when both are null do you get
the dlopen() search algorithm invoked.

 - Chuck

for use only by the intended recipient. If you received this in error, please contact the
sender and delete the e-mail and its attachments from all computers.

View raw message