On Mon, Nov 21, 2011 at 12:21, Peter O'Gorman <pe...@pogma.com> wrote:
Peter > Are these -Wl,-rpath flags coming from libtool? They seem to be there > already on the libtool command line. Could you post this snippet of your > makefile.am, please? I am not setting these myself and they don't seem to be coming from any library dependencies. The section of the Makefile.am that deals with the library is essentially: INCLUDES = -I$(top_builddir)/include LDADD = liblalframe.la lalframeincludedir = $(includedir)/lal lalframeinclude_HEADERS = \ Aggregation.h \ FrameCache.h \ FrameCalibration.h \ FrameData.h \ FrameStream.h \ LALFrameConfig.h \ LALFrameIO.h \ LALFrameL.h \ LALFrameVCSInfo.h \ LowLatencyData.h lib_LTLIBRARIES = liblalframe.la liblalframe_la_SOURCES = \ Aggregation.c \ FrameCache.c \ FrameCalibration.c \ FrameData.c \ FrameSeries.c \ FrameStream.c \ LALFrameIO.c \ LALFrameVCSInfo.c \ LowLatencyData.c noinst_HEADERS = \ FrameSeriesRead_source.c \ FrameSeriesWrite_source.c liblalframe_la_LDFLAGS = -version-info $(LIBVERSION) This is not the complete Makefile.am, the rest is stuff for test codes, documentation, etc... > Libtool has issues with multilib systems. Someone had a patch at some point > that correctly figured out the multilib library paths using ldconfig, but > I've long forgotten who. You can set lt_cv_sys_lib_dlsearch_path_spec and > lt_cv_sys_lib_search_path_spec at configure time if libtool is getting > sys_lib_dlsearch_path_spec/sys_lib_search_path_spec wrong (check the > generated libtool script for ^sys_lib_dlsearch_path_spec and > ^sys_lib_search_path_spec to see what it's guessing). I have been looking at those variables, they are set as: # Compile-time system search path for libraries. sys_lib_search_path_spec="/usr/lib/gcc/x86_64-redhat-linux/4.4.5 /usr/lib64 /lib64 " # Run-time system search path for libraries. sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib64/R/lib /usr/lib/atlas-3dnow /usr/lib/atlas-sse /usr/lib/atlas-sse2 /usr/lib/atlas-sse3 /usr/lib64/atlas /usr/lib64/mysql /usr/lib64/octave-3.2.4 /usr/lib64/root " sys_lib_search_path_spec seems to be what I'd expect, but not sys_lib_dlsearch_path_spec. If I edit this to contain /lib64 and /usr/lib64 then the "-Wl,-rpath -Wl,/usr/lib64" flags aren't passed and the library links correctly. I've been looking through libtool.m4, specifically where is sets sys_lib_dlsearch_path_spec, and the output seems to be correct given the code but I'm not very familier with the libtool internals so I could be mistaken. Setting lt_cv_sys_lib_dlsearch_path_spec="/lib64 /usr/lib64" at configure time results in "-Wl,-rpath -Wl,/usr/lib64" not being passed and the correct libraries linked. So this is a workaround but I'd like to understand why these flags are being added in the first place. Cheers Adam _______________________________________________ https://lists.gnu.org/mailman/listinfo/libtool