From: | Herouth Maoz <herouth(at)oumail(dot)openu(dot)ac(dot)il> |
---|---|
To: | "Thomas G(dot) Lockhart" <lockhart(at)alumni(dot)caltech(dot)edu> |
Cc: | pgsql-ports(at)postgreSQL(dot)org |
Subject: | Re: [PORTS] Re: 64-bit int (was backend cache...) |
Date: | 1998-12-20 13:03:37 |
Message-ID: | l03110707b2a2a1e617ca@[147.233.159.109] |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-ports |
At 17:50 +0200 on 17/12/98, Thomas G. Lockhart wrote:
> Yes, it seems that it should be. Please send your src/config.log so we
> can see what it determined. You might also check that the libc used for
> your little test is the same libc used for Postgres linking, just in
> case you are getting a different printf.
Ah, the config.log reveals some interesting stuff...
Don't Postgres sources include stdlib.h? I think there are other tests that
fail because they expect certain symbols to be defined, but don't include
the proper files. For example, the F_SETLK test fails, not because F_SETLK
is missing, but because SEEK_SET is missing...
Also, apparently, one gets a warning if main is not explicitly declared void...
<< Snippet from src/config.log >>
configure:3858: checking whether 'long int' is 64 bits
configure:3898: /l5/lang/SUNWspro/bin/cc -o conftest -Xa -v
-D__sparc__ -D__sun__ -DDISABLE_COMPLEX_MACRO conftest.c -lgen
-lcrypt -lnsl -lsocket -ldl -lm -ltermcap -lcurses 1>&5
"configure", line 3882: warning: implicitly declaring function to
return int: strcmp()
"configure", line 3894: warning: implicitly declaring function to
return int: exit()
"configure", line 3895: warning: Function has no return statement :
main
configure: failed program was:
#line 3863 "configure"
#include "confdefs.h"
#include <stdio.h>
typedef long int int64;
#define INT64_FORMAT "%ld"
int64 a = 20000001;
int64 b = 40000005;
int does_int64_work()
{
int64 c,d,e;
char buf[100];
if (sizeof(int64) != 8)
return 0; /* doesn't look like the right size */
/* we do perfunctory checks on multiply, divide, sprintf, sscanf */
c = a * b;
sprintf(buf, INT64_FORMAT, c);
if (strcmp(buf, "800000140000005") != 0)
return 0; /* either multiply or sprintf is busted */
if (sscanf(buf, INT64_FORMAT, &d) != 1)
return 0;
if (d != c)
return 0;
e = d / b;
if (e != a)
return 0;
return 1;
}
main() {
exit(! does_int64_work());
}
configure:3915: checking whether 'long long int' is 64 bits
configure:3955: /l5/lang/SUNWspro/bin/cc -o conftest -Xa -v
-D__sparc__ -D__sun__ -DDISABLE_COMPLEX_MACRO conftest.c -lgen
-lcrypt -lnsl -lsocket -ldl -lm -ltermcap -lcurses 1>&5
"configure", line 3939: warning: implicitly declaring function to
return int: strcmp()
"configure", line 3951: warning: implicitly declaring function to
return int: exit()
"configure", line 3952: warning: Function has no return statement :
main
<< End of snippet >>
Herouth
--
Herouth Maoz, Internet developer.
Open University of Israel - Telem project
http://telem.openu.ac.il/~herutma
From | Date | Subject | |
---|---|---|---|
Next Message | Unprivileged user | 1998-12-22 09:15:43 | Port Bug Report: |
Previous Message | tony mencevski | 1998-12-20 10:40:08 | student learning pgsql/linux5.0 redhat |