In the Open64 driver, there is code to add a linker '-rpath' option for libraries that are included with the compiler (see postprocess_ld_args() in the driver). The intended effect of this code is that programs compiled by Open64 can be run without setting LD_LIBRARY_PATH as long as the compiler installation directory still exists. The embedded RPATH in the executable acts as a default location to find the shared objects.
We ran into a small problem: for shared objects that are part of the compiler build, the RPATH is also set. This could cause the runtime linker to look in the compiler build directory for an indirectly-included shared object (e.g. libacml_mv.so is included by libmv.so). If the build directory no longer existed, the library would not be found. One way to fix the problem is just to skip the code that adds '-rpath' when we are building the compiler's libraries. I include a patch below that does that. Can a gatekeeper review the patch? Thanks, -David Coakley / AMD Open Source Compiler Engineering =================================================================== --- osprey/driver/phases.c (revision 3379) +++ osprey/driver/phases.c (working copy) @@ -2315,6 +2315,13 @@ } /* + * When building the compiler's libraries, do not append any rpath + * options since these would reference the build directory. + */ + if (run_build) + return; + + /* * For some reason, our cross linker won't find libraries in some * directories unless it's told about them with -rpath-link. * Here, we scan all -L flags and pass them as -rpath-link flags, ------------------------------------------------------------------------------ Nokia and AT&T present the 2010 Calling All Innovators-North America contest Create new apps & games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel