Merge branch 'mh/pthreads-autoconf'
authorJunio C Hamano <gitster@pobox.com>
Thu, 3 Jan 2013 18:28:33 +0000 (10:28 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 3 Jan 2013 18:28:33 +0000 (10:28 -0800)
* mh/pthreads-autoconf:
  configure.ac: fix pthreads detection on Mac OS X

1  2 
configure.ac

diff --cc configure.ac
index dc6925f11a57d2e3987d94b4f280441038351219,55aae5f38928e1eea2de07fd7de14ad58152bab2..1991258ae031cd656a8b599fda16ec73695216cb
@@@ -1035,10 -1021,20 +1035,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=