Re: 8.0.0beta2: gcc: unrecognized option `-pthreads' - Mailing list pgsql-general

From Bruce Momjian
Subject Re: 8.0.0beta2: gcc: unrecognized option `-pthreads'
Date
Msg-id 200409102357.i8ANvMJ08268@candle.pha.pa.us
Whole thread Raw
In response to Re: 8.0.0beta2: gcc: unrecognized option `-pthreads'  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: 8.0.0beta2: gcc: unrecognized option `-pthreads'  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > No.  The problem is that the test script just tries all options and if
> > it doesn't error out, it uses it.  Ideally we could test from configure
> > and ingnore meaningless options but we don't know how yet.
>
> Drop any options that cause the compiler to write anything on stderr.

OK, the configure test is:

        AC_TRY_LINK([#include <pthread.h>],
                    [pthread_t th; pthread_join(th, 0);
                     pthread_attr_init(0); pthread_cleanup_push(0, 0);
                     pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
                    [acx_pthread_ok=yes], [acx_pthread_ok=no])

Seems we can't just jump in there and grab stderr so I added the
following code to CVS which should do the trick.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: configure
===================================================================
RCS file: /cvsroot/pgsql-server/configure,v
retrieving revision 1.391
diff -c -c -r1.391 configure
*** configure    10 Sep 2004 13:53:39 -0000    1.391
--- configure    10 Sep 2004 23:55:53 -0000
***************
*** 13325,13342 ****
  fi
  rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext

          LIBS="$save_LIBS"
          CFLAGS="$save_CFLAGS"

          echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5
  echo "${ECHO_T}$acx_pthread_ok" >&6
-         if test "x$acx_pthread_ok" = xyes; then
-             # we continue with more flags because Linux needs -lpthread
-             # for libpq builds on PostgreSQL.  The test above only
-             # tests for building binaries, not shared libraries.
-             PTHREAD_LIBS=" $tryPTHREAD_LIBS $PTHREAD_LIBS"
-             PTHREAD_CFLAGS="$PTHREAD_CFLAGS $tryPTHREAD_CFLAGS"
-         fi
  done
  fi

--- 13325,13356 ----
  fi
  rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext

+         if test "x$acx_pthread_ok" = xyes; then
+             # Don't use options that are ignored by the compiler.
+             # We find them by checking stderror.
+             cat >conftest.$ac_ext <<_ACEOF
+ int
+ main ()
+ {
+   return 0;
+ }
+ _ACEOF
+             rm -f conftest.$ac_objext conftest$ac_exeext
+             if test "`(eval $ac_link 2>&1 >/dev/null)`" = ""; then
+                 # we continue with more flags because Linux needs -lpthread
+                 # for libpq builds on PostgreSQL.  The test above only
+                 # tests for building binaries, not shared libraries.
+                 PTHREAD_LIBS=" $tryPTHREAD_LIBS $PTHREAD_LIBS"
+                 PTHREAD_CFLAGS="$PTHREAD_CFLAGS $tryPTHREAD_CFLAGS"
+             else   acx_pthread_ok=no
+             fi
+         fi
+
          LIBS="$save_LIBS"
          CFLAGS="$save_CFLAGS"

          echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5
  echo "${ECHO_T}$acx_pthread_ok" >&6
  done
  fi

Index: config/acx_pthread.m4
===================================================================
RCS file: /cvsroot/pgsql-server/config/acx_pthread.m4,v
retrieving revision 1.6
diff -c -c -r1.6 acx_pthread.m4
*** config/acx_pthread.m4    17 Aug 2004 15:19:09 -0000    1.6
--- config/acx_pthread.m4    10 Sep 2004 23:55:54 -0000
***************
*** 129,145 ****
                       pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
                      [acx_pthread_ok=yes], [acx_pthread_ok=no])

          LIBS="$save_LIBS"
          CFLAGS="$save_CFLAGS"

          AC_MSG_RESULT($acx_pthread_ok)
-         if test "x$acx_pthread_ok" = xyes; then
-             # we continue with more flags because Linux needs -lpthread
-             # for libpq builds on PostgreSQL.  The test above only
-             # tests for building binaries, not shared libraries.
-             PTHREAD_LIBS=" $tryPTHREAD_LIBS $PTHREAD_LIBS"
-             PTHREAD_CFLAGS="$PTHREAD_CFLAGS $tryPTHREAD_CFLAGS"
-         fi
  done
  fi

--- 129,159 ----
                       pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
                      [acx_pthread_ok=yes], [acx_pthread_ok=no])

+         if test "x$acx_pthread_ok" = xyes; then
+             # Don't use options that are ignored by the compiler.
+             # We find them by checking stderror.
+             cat >conftest.$ac_ext <<_ACEOF
+ int
+ main ()
+ {
+   return 0;
+ }
+ _ACEOF
+             rm -f conftest.$ac_objext conftest$ac_exeext
+             if test "`(eval $ac_link 2>&1 >/dev/null)`" = ""; then
+                 # we continue with more flags because Linux needs -lpthread
+                 # for libpq builds on PostgreSQL.  The test above only
+                 # tests for building binaries, not shared libraries.
+                 PTHREAD_LIBS=" $tryPTHREAD_LIBS $PTHREAD_LIBS"
+                 PTHREAD_CFLAGS="$PTHREAD_CFLAGS $tryPTHREAD_CFLAGS"
+             else   acx_pthread_ok=no
+             fi
+         fi
+
          LIBS="$save_LIBS"
          CFLAGS="$save_CFLAGS"

          AC_MSG_RESULT($acx_pthread_ok)
  done
  fi


pgsql-general by date:

Previous
From: "Bodanapu, Sravan"
Date:
Subject: unsubscribe
Next
From: Bruno Wolff III
Date:
Subject: Re: Obtaining the Julian Day from a date