Bob Friesenhahn <[EMAIL PROTECTED]> writes: > On Sat, 20 Dec 2003, Roger Leigh wrote: >> >> /usr/lib has been hard-coded into the DT_RPATH! This is because the >> program was linked with the output of `cups-config --image --libs`: >> >> -lcupsimage -ltiff -ljpeg -lpng -lm -lz -lcups -L/usr/lib -lgnutls -lnsl > > This is a classic problem with *-config scripts and why configure > scripts I write intentionally ignore --libs and --cflags output from > these scripts. Config scripts should never include "standard" include > and lib directories, but unfortunately this happens far too often.
I see. Perhaps I need to manually strip this out of the output as a workaround. I've done this like so: CUPS_LIBS=`echo \`$CUPS_CONFIG --ldflags\` \`$CUPS_CONFIG --image --libs\` | sed -e 's/-Wl,-rpath,\/usr\/lib//g' -e 's/-L\/usr\/lib//g'` It's ugly, but if we're working around a bug in that script, there isn't much choice. >> On older systems which don't have '-L/usr/lib' the problem is not seen. >> >> $ grep CUPS_LIBS config.status >> [EMAIL PROTECTED]@%-Wl,-rpath,/usr/lib -lcupsimage -ltiff -ljpeg -lpng -lm -lz >> -lcups -L/usr/lib -lgnutls -lnsl%g >> $ grep CUPS_LIBS src/cups/Makefile >> CUPS_LIBS = -Wl,-rpath,/usr/lib -lcupsimage -ltiff -ljpeg -lpng -lm -lz -lcups >> -L/usr/lib -lgnutls -lnsl >> ^^^^^^^^^^^^^^^^^^^ >> Here something (I assume libtool) has taken it into its head to put >> /usr/lib in the RPATH. Is there any way to prevent this? > > This is not libtool's fault! Libtool is not responsible for the > content of your Makefile so I have to presume that something else is > adding the -Wl,-rpath,/usr/lib to your CUPS_LIBS variable. > Regardless, this option effects the library used a run-time, not at > link time. True. It's just that I need to run the program during the build--and ensure that my built version of the library, not the previously installed verision, is used. I wasn't knocking libtool BTW--it was a symptom, but not the cause! > If you need to link against a library located somewhere other than > /usr/lib then you should ensure that a -L option to that location is > listed prior to the bogus -L/usr/lib. Also, the linker normally > chooses shared libraries over static libraries, regardless of the > linker search path (it scans the path twice), so it may take > additional steps to ensure that the correct library is used. The library will be located in the build tree, but I don't want the path to the library in the build tree in the installed binary. There are no problems if I use --disable-shared, but if --enable-shared is used, it always links shared. -- Roger Leigh Printing on GNU/Linux? http://gimp-print.sourceforge.net/ GPG Public Key: 0x25BFB848. Please sign and encrypt your mail. _______________________________________________ Libtool mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/libtool