gga wrote:
Bill Hoffman wrote:
So, I guess it depends on the UNIX system you are using...  Say on
Solaris or HPUX I would
expect /usr to come before /usr/local, at least for the system
compiler.

AFAIK, that's not right.  HPUX and Solaris work just like every other
Unix distro, and /usr/local is expected to override /usr.
LD_LIBRARY_PATH is also expected to override either.  Solaris also can
use RPATH to override paths (has less precedence than LD_LIBRARY_PATH).
SGI uses LD_LIBRARY_PATH, LD_LIBRARYN32_PATH and LD_LIBRARYN64_PATH
(depending on architecture).
AIX uses LIBPATH instead.


See for example (Solaris):
http://prefetch.net/blog/index.php/2005/10/06/viewing-shared-library-search-order/
So, this example shows that LD_LIBRARY_PATH is searched for run time libraries, and the user happened to have /usr/local/lib in LD_LIBRARY_PATH. If you did not put it in LD_LIBRARY_PATH, the OS would
not know anything about it at all.

http://prefetch.net/blog/index.php/category/solaris-linker/
This one says:

1. Check for libraries by traversing the directories in the LD_LIBRARY_PATH environment variable

2. Check for libraries by traversing the directories in the executabless RPATH

3. Check for libraries by traversing /lib and /usr/lib


/usr/local is not part of any of the systems, and has to be explicitly added by the user in LD_LIBRARY_PATH. Also, the discovery of run time libraries might not always be the same as libraries to link....

https://bugs.launchpad.net/binutils/+bug/40214

HP seems to suggest that /usr/local/lib should come after /usr/lib:
http://docs.hp.com/en/B2355-90654/ch03s07.html

I guess my take is that most system tools like ld and such don't even know about /usr/local/lib, so
why should cmake search there first?

-Bill





_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to