Merge branch 'mh/pthreads-autoconf' into maint
authorJunio C Hamano <gitster@pobox.com>
Thu, 10 Jan 2013 22:04:26 +0000 (14:04 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 10 Jan 2013 22:04:26 +0000 (14:04 -0800)
* mh/pthreads-autoconf:
  configure.ac: fix pthreads detection on Mac OS X

1  2 
configure.ac

diff --cc configure.ac
index ad215cc4a10ed95804e7cec929f003c985d25a3d,55aae5f38928e1eea2de07fd7de14ad58152bab2..41ac9a5e2d29b5f797a03052c3a17a8b42dac093
@@@ -1021,10 -1021,20 +1021,20 @@@ if test -n "$USER_NOPTHREAD"; the
  # -D_REENTRANT' or some such.
  elif test -z "$PTHREAD_CFLAGS"; then
    threads_found=no
-   for opt in -mt -pthread -lpthread; do
+   # Attempt to compile and link some code using pthreads to determine
+   # required linker flags. The order is somewhat important here: We
+   # first try it without any extra flags, to catch systems where
+   # pthreads are part of the C library, then go on testing various other
+   # flags. We do so to avoid false positives. For example, on Mac OS X
+   # pthreads are part of the C library; moreover, the compiler allows us
+   # to add "-mt" to the CFLAGS (although it will do nothing except
+   # trigger a warning about an unused flag). Hence if we checked for
+   # "-mt" before "" we would end up picking it. But unfortunately this
+   # would then trigger compiler warnings on every single file we compile.
+   for opt in "" -mt -pthread -lpthread; do
       old_CFLAGS="$CFLAGS"
       CFLAGS="$opt $CFLAGS"
 -     AC_MSG_CHECKING([Checking for POSIX Threads with '$opt'])
 +     AC_MSG_CHECKING([for POSIX Threads with '$opt'])
       AC_LINK_IFELSE([PTHREADTEST_SRC],
        [AC_MSG_RESULT([yes])
                NO_PTHREADS=