OSDN Git Service

Fix for AIX compile and unsigned/signed typedefs.
authorBruce Momjian <bruce@momjian.us>
Thu, 15 Nov 2001 16:09:34 +0000 (16:09 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 15 Nov 2001 16:09:34 +0000 (16:09 +0000)
Peter E, Tatsuo, Andreas

configure.in
src/include/c.h
src/include/pg_config.h.in

index cd3bac3..c223ce5 100644 (file)
@@ -1169,6 +1169,12 @@ else
 fi
 AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any type])
 
+# Some platforms predefine the types int8, int16, etc.  Only check
+# a (hopefully) representative subset.  Don't use AC_CHECK_TYPE, which
+# doesn't work the way we want to.
+AC_CHECK_SIZEOF(int8, 0)
+AC_CHECK_SIZEOF(uint8, 0)
+
 PGAC_FUNC_POSIX_SIGNALS
 
 
index e00ee1e..d4a67aa 100644 (file)
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: c.h,v 1.109 2001/11/12 01:52:46 momjian Exp $
+ * $Id: c.h,v 1.110 2001/11/15 16:09:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -205,11 +205,11 @@ typedef char *Pointer;
  *             used for numerical computations and the
  *             frontend/backend protocol.
  */
-#ifndef __BEOS__                               /* this shouldn't be required, but is is! */
+#if SIZEOF_INT8 == 0
 typedef signed char int8;              /* == 8 bits */
 typedef signed short int16;            /* == 16 bits */
 typedef signed int int32;              /* == 32 bits */
-#endif   /* __BEOS__ */
+#endif   /* SIZEOF_INT8 == 0 */
 
 /*
  * uintN
@@ -218,11 +218,11 @@ typedef signed int int32;         /* == 32 bits */
  *             frontend/backend protocol.
  */
 /* Also defined in interfaces/odbc/md5.h */
-#ifndef __BEOS__                               /* this shouldn't be required, but is is! */
+#if SIZEOF_UINT8 == 0
 typedef unsigned char uint8;   /* == 8 bits */
 typedef unsigned short uint16; /* == 16 bits */
 typedef unsigned int uint32;   /* == 32 bits */
-#endif   /* __BEOS__ */
+#endif   /* SIZEOF_UINT8 == 0 */
 
 /*
  * boolN
@@ -268,27 +268,37 @@ typedef double *float64;
 /*
  * 64-bit integers
  */
-#ifndef __BEOS__                               /* this is already defined on BeOS */
 #ifdef HAVE_LONG_INT_64
 /* Plain "long int" fits, use it */
+#if SIZEOF_INT8 == 0
 typedef long int int64;
+#endif
+#if SIZEOF_UINT8 == 0
 typedef unsigned long int uint64;
+#endif
 
 #else
 #ifdef HAVE_LONG_LONG_INT_64
 /* We have working support for "long long int", use that */
+#if SIZEOF_INT8 == 0
 typedef long long int int64;
+#endif
+#if SIZEOF_UINT8 == 0
 typedef unsigned long long int uint64;
+#endif
 
 #else
 /* Won't actually work, but fall back to long int so that code compiles */
+#if SIZEOF_INT8 == 0
 typedef long int int64;
+#endif
+#if SIZEOF_UINT8 == 0
 typedef unsigned long int uint64;
+#endif
 
 #define INT64_IS_BUSTED
 #endif
 #endif
-#endif   /* __BEOS__ */
 
 /*
  * Size
index 211a1ef..f33bd18 100644 (file)
@@ -8,7 +8,7 @@
  * or in pg_config.h afterwards.  Of course, if you edit pg_config.h, then your
  * changes will be overwritten the next time you run configure.
  *
- * $Id: pg_config.h.in,v 1.11 2001/10/20 17:57:39 tgl Exp $
+ * $Id: pg_config.h.in,v 1.12 2001/11/15 16:09:34 momjian Exp $
  */
 
 #ifndef PG_CONFIG_H
@@ -697,6 +697,9 @@ extern int fdatasync(int fildes);
 /* Define if you have on_exit() */
 #undef HAVE_ON_EXIT
 
+#undef SIZEOF_INT8
+#undef SIZEOF_UINT8
+
 /*
  *------------------------------------------------------------------------
  * Part 4: pull in system-specific declarations.