CVS compile on AIX 4.3.2

Started by Samuel A Horwitzover 22 years ago5 messages
#1Samuel A Horwitz
horwitz@argoscomp.com

I am getting the following error

gmake[4]: Entering directory
`/usr/local/postgres/pgsql/src/backend/access/commo
n'
gcc -O2 -pipe -Wall -Wmissing-prototypes -Wmissing-declarations
-I../../../../sr
c/include -I/usr/local/ssl/include -c -o printtup.o printtup.c
In file included from ../../../../src/include/libpq/libpq-be.h:22,
from ../../../../src/include/libpq/libpq.h:21,
from printtup.c:20:
../../../../src/include/libpq/pqcomm.h:60: `int64_t' undeclared here (not
in a f
unction)
../../../../src/include/libpq/pqcomm.h:64: parse error before "int64_t"
../../../../src/include/libpq/pqcomm.h:64: warning: no semicolon at end of
struc
t or union
../../../../src/include/libpq/pqcomm.h:67: `int64_t' undeclared here (not
in a f
unction)
../../../../src/include/libpq/pqcomm.h:67: `int64_t' undeclared here (not
in a f
unction)
../../../../src/include/libpq/pqcomm.h:71: parse error before '}' token
../../../../src/include/libpq/pqcomm.h:81: field `addr' has incomplete
type
gmake[4]: *** [printtup.o] Error 1
gmake[4]: Leaving directory
`/usr/local/postgres/pgsql/src/backend/access/common
'
gmake[3]: *** [common-recursive] Error 2
gmake[3]: Leaving directory `/usr/local/postgres/pgsql/src/backend/access'
gmake[2]: *** [access-recursive] Error 2
gmake[2]: Leaving directory `/usr/local/postgres/pgsql/src/backend'

horwitz@argoscomp.com (Samuel A Horwitz)

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Samuel A Horwitz (#1)
Re: CVS compile on AIX 4.3.2

Samuel A Horwitz <horwitz@argoscomp.com> writes:

I am getting the following error
../../../../src/include/libpq/pqcomm.h:60: `int64_t' undeclared here (not
in a function)

There's a patch floating around the list to remove use of int64_t, which
is evidently not too portable. I'll try to get it applied soon.

regards, tom lane

#3Sean Chittenden
sean@chittenden.org
In reply to: Tom Lane (#2)
Re: CVS compile on AIX 4.3.2

I am getting the following error
../../../../src/include/libpq/pqcomm.h:60: `int64_t' undeclared here (not
in a function)

There's a patch floating around the list to remove use of int64_t, which
is evidently not too portable. I'll try to get it applied soon.

int64_t is a C99 data type that hasn't existed prior to recent
versions of gcc, but is quite valid/correct. I'd think that int64_t
support should be fudged on platforms where in64_t isn't defined as
long long. IIRC, this is what FreeBSD has done for ages to get around
the lack of a 64bit type.

/* From machine/_types.h */
#if defined(lint)
/* LONGLONG */
typedef long long __int64_t;
/* LONGLONG */
typedef unsigned long long __uint64_t;
#elif defined(__GNUC__)
typedef int __attribute__((__mode__(__DI__))) __int64_t;
typedef unsigned int __attribute__((__mode__(__DI__))) __uint64_t;
#else
/* LONGLONG */
typedef long long __int64_t;
/* LONGLONG */
typedef unsigned long long __uint64_t;
#endif

-sc

--
Sean Chittenden

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Sean Chittenden (#3)
Re: CVS compile on AIX 4.3.2

Sean Chittenden <sean@chittenden.org> writes:

int64_t is a C99 data type that hasn't existed prior to recent
versions of gcc, but is quite valid/correct. I'd think that int64_t
support should be fudged on platforms where in64_t isn't defined as
long long.

We have int64 defined (and well tested) already; I see no reason to muck
with it.

regards, tom lane

#5Stephan Szabo
sszabo@megazone.bigpanda.com
In reply to: Sean Chittenden (#3)
Re: CVS compile on AIX 4.3.2

On Tue, 15 Jul 2003, Sean Chittenden wrote:

I am getting the following error
../../../../src/include/libpq/pqcomm.h:60: `int64_t' undeclared here (not
in a function)

There's a patch floating around the list to remove use of int64_t, which
is evidently not too portable. I'll try to get it applied soon.

int64_t is a C99 data type that hasn't existed prior to recent
versions of gcc, but is quite valid/correct. I'd think that int64_t

It's also not guaranteed to exist on any given machine if there isn't a
native exactly 64 bit integer type. I'd think that if you're going to use
one of the C99 integer types, int_least64_t or int_fast64_t would be a
better choice unless you really must guarantee 64 bits since those appear
to be required.