Allow AIX to use --enable-thread-safety by passing PTHREAD_LIBS to
authorBruce Momjian <[email protected]>
Thu, 16 Dec 2004 17:48:29 +0000 (17:48 +0000)
committerBruce Momjian <[email protected]>
Thu, 16 Dec 2004 17:48:29 +0000 (17:48 +0000)
binary compiles, and adjust configure tests for AIX.

config/c-compiler.m4
config/c-library.m4
configure
src/Makefile.global.in
src/makefiles/Makefile.unixware

index 67d783594db336f1d917ce6441d53bd15e3bbdfa..2b60d8dcd9371d3c1c1d866f2b13cbf6d3d6a628 100644 (file)
@@ -26,20 +26,20 @@ AC_DEFUN([PGAC_TYPE_64BIT_INT],
 define([Ac_cachevar], [translit([pgac_cv_type_$1_64], [ *], [_p])])dnl
 AC_CACHE_CHECK([whether $1 is 64 bits], [Ac_cachevar],
 [AC_TRY_RUN(
-[typedef $1 int64;
+[typedef $1 ac_int64;
 
 /*
  * These are globals to discourage the compiler from folding all the
  * arithmetic tests down to compile-time constants.
  */
-int64 a = 20000001;
-int64 b = 40000005;
+ac_int64 a = 20000001;
+ac_int64 b = 40000005;
 
 int does_int64_work()
 {
-  int64 c,d;
+  ac_int64 c,d;
 
-  if (sizeof(int64) != 8)
+  if (sizeof(ac_int64) != 8)
     return 0;                  /* definitely not the right size */
 
   /* Do perfunctory checks to see if 64-bit arithmetic seems to work */
index 50dc16ab3176b4a492a5ef7f2cee0609d9895f2b..9b856cc34982efb9225bea5b487c52c0731418cb 100644 (file)
@@ -108,7 +108,12 @@ AC_DEFUN([PGAC_FUNC_STRERROR_R_INT],
 [AC_CACHE_CHECK(whether strerror_r returns int,
 pgac_func_strerror_r_int,
 [AC_TRY_COMPILE([#include <string.h>],
-[int strerror_r(int, char *, size_t);],
+[#ifndef _AIX
+int strerror_r(int, char *, size_t);
+#else
+/* Older AIX has 'int' for the third argument so we don't test the args. */
+int strerror_r();
+#endif],
 [pgac_func_strerror_r_int=yes],
 [pgac_func_strerror_r_int=no])])
 if test x"$pgac_func_strerror_r_int" = xyes ; then
@@ -225,18 +230,18 @@ AC_DEFUN([PGAC_FUNC_SNPRINTF_LONG_LONG_INT_FORMAT],
 AC_CACHE_VAL(pgac_cv_snprintf_long_long_int_format,
 [for pgac_format in '%lld' '%qd' '%I64d'; do
 AC_TRY_RUN([#include <stdio.h>
-typedef long long int int64;
+typedef long long int ac_int64;
 #define INT64_FORMAT "$pgac_format"
 
-int64 a = 20000001;
-int64 b = 40000005;
+ac_int64 a = 20000001;
+ac_int64 b = 40000005;
 
 int does_int64_snprintf_work()
 {
-  int64 c;
+  ac_int64 c;
   char buf[100];
 
-  if (sizeof(int64) != 8)
+  if (sizeof(ac_int64) != 8)
     return 0;                  /* doesn't look like the right size */
 
   c = a * b;
index 0d7a0eb197770193182712d5aeb9525211005c64..fda65e4a8bbb0944482de7ef5a517f28e8189534 100755 (executable)
--- a/configure
+++ b/configure
@@ -14611,7 +14611,12 @@ else
 int
 main ()
 {
+#ifndef _AIX
 int strerror_r(int, char *, size_t);
+#else
+/* Older AIX has 'int' for the third argument so we don't test the args. */
+int strerror_r();
+#endif
   ;
   return 0;
 }
@@ -14761,20 +14766,20 @@ else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 #include "confdefs.h"
-typedef long int int64;
+typedef long int ac_int64;
 
 /*
  * These are globals to discourage the compiler from folding all the
  * arithmetic tests down to compile-time constants.
  */
-int64 a = 20000001;
-int64 b = 40000005;
+ac_int64 a = 20000001;
+ac_int64 b = 40000005;
 
 int does_int64_work()
 {
-  int64 c,d;
+  ac_int64 c,d;
 
-  if (sizeof(int64) != 8)
+  if (sizeof(ac_int64) != 8)
     return 0;                  /* definitely not the right size */
 
   /* Do perfunctory checks to see if 64-bit arithmetic seems to work */
@@ -14875,20 +14880,20 @@ else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 #include "confdefs.h"
-typedef long long int int64;
+typedef long long int ac_int64;
 
 /*
  * These are globals to discourage the compiler from folding all the
  * arithmetic tests down to compile-time constants.
  */
-int64 a = 20000001;
-int64 b = 40000005;
+ac_int64 a = 20000001;
+ac_int64 b = 40000005;
 
 int does_int64_work()
 {
-  int64 c,d;
+  ac_int64 c,d;
 
-  if (sizeof(int64) != 8)
+  if (sizeof(ac_int64) != 8)
     return 0;                  /* definitely not the right size */
 
   /* Do perfunctory checks to see if 64-bit arithmetic seems to work */
@@ -15007,18 +15012,18 @@ else
 #line $LINENO "configure"
 #include "confdefs.h"
 #include <stdio.h>
-typedef long long int int64;
+typedef long long int ac_int64;
 #define INT64_FORMAT "$pgac_format"
 
-int64 a = 20000001;
-int64 b = 40000005;
+ac_int64 a = 20000001;
+ac_int64 b = 40000005;
 
 int does_int64_snprintf_work()
 {
-  int64 c;
+  ac_int64 c;
   char buf[100];
 
-  if (sizeof(int64) != 8)
+  if (sizeof(ac_int64) != 8)
     return 0;                  /* doesn't look like the right size */
 
   c = a * b;
index 24c2296c7271e10281ae59a494fc401dfa600791..2cb6f59f46f876b2856238395deac856a992a882 100644 (file)
@@ -308,6 +308,12 @@ endif
 
 libpq = -L$(libpq_builddir) -lpq
 
+# AIX libraries do not remember their required libs so we have to force
+# thread dependent libraires in the link
+ifeq ($(PORTNAME), aix)
+libpq += $(PTHREAD_LIBS)
+endif
+
 submake-libpq:
        $(MAKE) -C $(libpq_builddir) all
 
@@ -346,13 +352,13 @@ ifneq ($(CUSTOM_COPT),)
 endif
 
 ifdef COPT
-   CFLAGS+= $(COPT)
-   LDFLAGS+= $(COPT)
+   CFLAGS += $(COPT)
+   LDFLAGS += $(COPT)
 endif
 
 ifdef PROFILE
-   CFLAGS+= $(PROFILE)
-   LDFLAGS+= $(PROFILE)
+   CFLAGS += $(PROFILE)
+   LDFLAGS += $(PROFILE)
 endif
 
 
index e8953756a678110f79db17b92a1edad2593c2240..7120601f68303742e1cc83332bf1de681b3175c5 100644 (file)
@@ -33,5 +33,3 @@ sqlmansect = 5sql
 
 # Unixware needs threads for everything that uses libpq
 CFLAGS += $(PTHREAD_CFLAGS)
-
-