Thread: CVS compile on AIX 4.3.2

CVS compile on AIX 4.3.2

From
Samuel A Horwitz
Date:
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)




Re: CVS compile on AIX 4.3.2

From
Tom Lane
Date:
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


Re: CVS compile on AIX 4.3.2

From
Sean Chittenden
Date:
> > 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


Re: CVS compile on AIX 4.3.2

From
Tom Lane
Date:
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


Re: CVS compile on AIX 4.3.2

From
Stephan Szabo
Date:
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.