diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index 98081bee25803ab7c6116184bc9c32d40403a6fc..e4b3d3513a0993092454ff8a0d220722dbc82e13 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -1,5 +1,5 @@
 # Macros to detect C compiler features
-# $PostgreSQL: pgsql/config/c-compiler.m4,v 1.13 2004/10/20 02:12:07 neilc Exp $
+# $PostgreSQL: pgsql/config/c-compiler.m4,v 1.14 2004/12/16 17:48:25 momjian Exp $
 
 
 # PGAC_C_SIGNED
@@ -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 */
diff --git a/config/c-library.m4 b/config/c-library.m4
index 5779cfbc4f5d5ff3f0e18cc080200eed6fb98a88..679f3844b84ac1c769d52aaa12463f316246ff44 100644
--- a/config/c-library.m4
+++ b/config/c-library.m4
@@ -1,5 +1,5 @@
 # Macros that test various C library quirks
-# $PostgreSQL: pgsql/config/c-library.m4,v 1.28 2004/10/04 18:14:18 momjian Exp $
+# $PostgreSQL: pgsql/config/c-library.m4,v 1.29 2004/12/16 17:48:26 momjian Exp $
 
 
 # PGAC_VAR_INT_TIMEZONE
@@ -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;
diff --git a/configure b/configure
index 0d7a0eb197770193182712d5aeb9525211005c64..fda65e4a8bbb0944482de7ef5a517f28e8189534 100755
--- 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;
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 2c8f38f1e716d37845f82796115664f364c0ccf5..4edd8ca7c10f60d13e6b107acf07a168229a5355 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -1,5 +1,5 @@
 # -*-makefile-*-
-# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.205 2004/11/19 00:41:38 tgl Exp $
+# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.206 2004/12/16 17:48:29 momjian Exp $
 
 #------------------------------------------------------------------------------
 # All PostgreSQL makefiles include this file and use the variables it sets,
@@ -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
 
 
diff --git a/src/makefiles/Makefile.unixware b/src/makefiles/Makefile.unixware
index e8953756a678110f79db17b92a1edad2593c2240..7120601f68303742e1cc83332bf1de681b3175c5 100644
--- a/src/makefiles/Makefile.unixware
+++ b/src/makefiles/Makefile.unixware
@@ -33,5 +33,3 @@ sqlmansect = 5sql
 
 # Unixware needs threads for everything that uses libpq
 CFLAGS += $(PTHREAD_CFLAGS)
-
-