]> git.ipfire.org Git - thirdparty/git.git/commitdiff
configure.ac: use $LIBS not $CFLAGS when testing -lpthread
authorRainer M. Canavan <git@canavan.de>
Fri, 6 Nov 2015 01:11:37 +0000 (02:11 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Nov 2015 17:41:08 +0000 (09:41 -0800)
Some linkers, namely the one on IRIX are rather strict concerning
the order or arguments for symbol resolution, i.e. no libraries
listed before objects or other libraries on the command line are
considered for symbol resolution.  Therefore, -lpthread can't work
if it's put in CFLAGS, because it will not be considered for
resolving pthread_key_create in conftest.o. Use $LIBS instead.

Signed-off-by: Rainer Canavan <git@canavan.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
configure.ac

index b7112542b4b62fbbf0235c923f75803edc149e5c..7b3ade9fc0e9c976f155d6746cb8b8871547cbb1 100644 (file)
@@ -1013,7 +1013,12 @@ elif test -z "$PTHREAD_CFLAGS"; then
   # would then trigger compiler warnings on every single file we compile.
   for opt in "" -mt -pthread -lpthread; do
      old_CFLAGS="$CFLAGS"
-     CFLAGS="$opt $CFLAGS"
+     old_LIBS="$LIBS"
+     case "$opt" in
+        -l*)  LIBS="$opt $LIBS" ;;
+        *)    CFLAGS="$opt $CFLAGS" ;;
+     esac
+
      AC_MSG_CHECKING([for POSIX Threads with '$opt'])
      AC_LINK_IFELSE([PTHREADTEST_SRC],
        [AC_MSG_RESULT([yes])
@@ -1025,6 +1030,7 @@ elif test -z "$PTHREAD_CFLAGS"; then
        ],
        [AC_MSG_RESULT([no])])
       CFLAGS="$old_CFLAGS"
+      LIBS="$old_LIBS"
   done
   if test $threads_found != yes; then
     AC_CHECK_LIB([pthread], [pthread_create],