Fix for AIX compile and unsigned/signed typedefs.

Peter E, Tatsuo, Andreas
This commit is contained in:
Bruce Momjian 2001-11-15 16:09:34 +00:00
parent a6348ae332
commit 6c9b11b35e
3 changed files with 27 additions and 8 deletions

View 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

View 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

View 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.