changeset 6562:c89ddea009ce

* lib-ignore.m4 (gl_IGNORE_UNUSED_LIBRARIES): Don't use ldd, as it's not portable and it doesn't work with cross-compiles. Fix missing-$ typo in 'test "gl_cv_ignore_unused_libraries" ...' that prevented -zignore from being used with Sun's C compiler.
author Paul Eggert <eggert@cs.ucla.edu>
date Tue, 17 Jan 2006 07:23:20 +0000
parents c9da4589b6c5
children cdaaa4da0697
files m4/ChangeLog m4/lib-ignore.m4
diffstat 2 files changed, 23 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,3 +1,11 @@
+2006-01-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* lib-ignore.m4 (gl_IGNORE_UNUSED_LIBRARIES): Don't use ldd, as
+	it's not portable and it doesn't work with cross-compiles.
+	Problem reported by Bruno Haible.  Fix missing-$ typo in
+	'test "gl_cv_ignore_unused_libraries" ...' that prevented
+	-zignore from being used with Sun's C compiler.
+
 2006-01-12  Bruno Haible  <bruno@clisp.org>
 
 	* ldd.m4: New file.
--- a/m4/lib-ignore.m4
+++ b/m4/lib-ignore.m4
@@ -12,31 +12,22 @@
   AC_CACHE_CHECK([for flag to ignore unused libraries],
     [gl_cv_ignore_unused_libraries],
     [gl_cv_ignore_unused_libraries=none
-     AC_LINK_IFELSE([AC_LANG_PROGRAM()],
-       [gl_ldd_output0=`(ldd conftest$ac_exeext) 2>/dev/null` ||
-	  gl_ldd_output0=])
-     if test "$gl_ldd_output0"; then
-       gl_saved_ldflags=$LDFLAGS
-       gl_saved_libs=$LIBS
-       LIBS="$LIBS -lm"
+     gl_saved_ldflags=$LDFLAGS
+     # Use long option sequences like '-z ignore' to test for the feature,
+     # to forestall problems with linkers that have -z, -i, -g, -n, etc. flags.
+     for gl_flags in '-Xlinker -z -Xlinker ignore' '-z ignore'; do
+       LDFLAGS="$gl_flags $LDFLAGS"
        AC_LINK_IFELSE([AC_LANG_PROGRAM()],
-	 [gl_ldd_output1=`(ldd conftest$ac_exeext) 2>/dev/null` ||
-	    gl_ldd_output1=])
-       if test "$gl_ldd_output1" && test "$gl_ldd_output0" != "$gl_ldd_output1"
-       then
-	 for gl_flags in '-Xlinker -zignore' '-zignore'; do
-	   LDFLAGS="$gl_flags $LDFLAGS"
-	   AC_LINK_IFELSE([AC_LANG_PROGRAM()],
-	     [if gl_ldd_output2=`(ldd conftest$ac_exeext) 2>/dev/null` &&
-		 test "$gl_ldd_output0" = "$gl_ldd_output2"; then
-		gl_cv_ignore_unused_libraries=$gl_flags
-	      fi])
-	   LDFLAGS=$gl_saved_ldflags
-	   test "gl_cv_ignore_unused_libraries" != none && break
-	 done
-       fi
-       LIBS=$gl_saved_LIBS
-     fi])
+	 [case $gl_flags in
+	    '-Xlinker -z -Xlinker ignore')
+	      # Shorten this ugly thing, for prettier 'make' output.
+              gl_cv_ignore_unused_libraries='-Xlinker -zignore';;
+	    *)
+	      gl_cv_ignore_unused_libraries=$gl_flags;;
+          esac])
+       LDFLAGS=$gl_saved_ldflags
+       test "$gl_cv_ignore_unused_libraries" != none && break
+     done])
 
   test "$gl_cv_ignore_unused_libraries" != none &&
     LDFLAGS="$LDFLAGS $gl_cv_ignore_unused_libraries"