Thread: AIX Compilation Fun with 7.5 CVS
I was wanting to check out what was up with timezone handling with the latest changes that were committed, as there had been some "biting" on AIX. To wit, notice the default time zone on one of our AIX boxes: bash-2.05a$ date Tue May 18 21:47:37 GDT 2004 bash-2.05a$ echo $TZ CUT0GDT bash-2.05a$ Ticket [redacted] describes what broke: =========================================================================== Grr. Led to errors because timezone was being treated as CUT0. CUT0 may be _equivalent_ to GMT, but PostgreSQL isn't aware of it as such, so inserts into the table epp_whois_cachemgr were failing with much the same error message shown below: template1=# select timestamptz(timeofday()); ERROR: invalid input syntax for type timestamp with time zone: "Tue Apr 13 19:44:47.831616 2004 CUT" 1. Changed ~/.profile to have PGTZ and TZ set to GMT 2. Changed 7.4 instances to set the postgreSQL GUC variable "timezone" to GMT, and SIGHUPped them =========================================================================== I was hoping to check this out on "latest 7.5 CVS" in order that if there be a need to get any "CUT" support added, we can get that in _early_ in the test cycle. If it remains borken, I'll update the AIX documentation to at least give the user 'fair warning' that this can be a problem. But the AIX compile is breaking, on pg_dump. Evidently there's some conflict of symbol names, though it doesn't look like it's due to new changes. "finfo" seems pretty unique to AIX... bash-2.05a$ make make -C ../../../src/interfaces/libpq all make[1]: Entering directory `/opt/OXRS/Sources/pgsql-75cvs/src/interfaces/libpq' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/opt/OXRS/Sources/pgsql-75cvs/src/interfaces/libpq' make -C ../../../src/port all make[1]: Entering directory `/opt/OXRS/Sources/pgsql-75cvs/src/port' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/opt/OXRS/Sources/pgsql-75cvs/src/port' make -C ../../../src/backend/parser keywords.o make[1]: Entering directory `/opt/OXRS/Sources/pgsql-75cvs/src/backend/parser' make[1]: `keywords.o' is up to date. make[1]: Leaving directory `/opt/OXRS/Sources/pgsql-75cvs/src/backend/parser' gcc -O2 -fno-strict-aliasing -g -Wall -Wmissing-prototypes -Wmissing-declarations -I../../../src/interfaces/libpq -I../../../src/include-I/opt/OXRS/supporting-packages/readline-4.2/include/ -I/opt/OXRS/supporting-packages/zlib-1.1.4/include/-DFRONTEND -c -o common.o common.c common.c:54: error: `finfo' redeclared as different kind of symbol /usr/include/unistd.h:722: error: previous declaration of `finfo' common.c:54: warning: `finfo' was declared `extern' and later `static' make: *** [common.o] Error 1 bash-2.05a$ grep finfo /usr/include/s*/*.h /usr/include/sys/finfo.h:/* @(#)92 1.7 src/bos/kernel/sys/finfo.h, syslfs, bos510 7/18/00 17:04:32 /usr/include/sys/finfo.h:/* command parameters for finfo and ffinfo */ /usr/include/sys/finfo.h:int finfo(const char *, int, void *, int32long64_t); /usr/include/sys/finfo.h:int ffinfo(int, int, void *, int32long64_t); /usr/include/sys/finfo.h:int finfo(); /usr/include/sys/finfo.h:int ffinfo(); /usr/include/sys/vnode.h: int (*vn_finfo)(struct vnode *, int32long64_t, void *, /usr/include/sys/vnode.h: vnop_finfo(vp, cmd, p, len, ucred) /usr/include/sys/vnode.h:vnop_finfo( -- (reverse (concatenate 'string "gro.mca" "@" "enworbbc")) http://cbbrowne.com/info/linuxdistributions.html "I am a bomb technician. If you see me running, try to keep up..."
Your timezone testing will have to wait for the unix timezone code to be added in a few days. It is strange you are having this problem with finfo only in pg_dump because it is used a lot in the backend. Looking at the warning, it looks like it doesn't like that 'static' specification. If you remove the 'static', is it OK? --------------------------------------------------------------------------- Chris Browne wrote: > =========================================================================== > > I was hoping to check this out on "latest 7.5 CVS" in order that if > there be a need to get any "CUT" support added, we can get that in > _early_ in the test cycle. If it remains borken, I'll update the AIX > documentation to at least give the user 'fair warning' that this can > be a problem. > > But the AIX compile is breaking, on pg_dump. Evidently there's some > conflict of symbol names, though it doesn't look like it's due to new > changes. "finfo" seems pretty unique to AIX... > > bash-2.05a$ make > make -C ../../../src/interfaces/libpq all > make[1]: Entering directory `/opt/OXRS/Sources/pgsql-75cvs/src/interfaces/libpq' > make[1]: Nothing to be done for `all'. > make[1]: Leaving directory `/opt/OXRS/Sources/pgsql-75cvs/src/interfaces/libpq' > make -C ../../../src/port all > make[1]: Entering directory `/opt/OXRS/Sources/pgsql-75cvs/src/port' > make[1]: Nothing to be done for `all'. > make[1]: Leaving directory `/opt/OXRS/Sources/pgsql-75cvs/src/port' > make -C ../../../src/backend/parser keywords.o > make[1]: Entering directory `/opt/OXRS/Sources/pgsql-75cvs/src/backend/parser' > make[1]: `keywords.o' is up to date. > make[1]: Leaving directory `/opt/OXRS/Sources/pgsql-75cvs/src/backend/parser' > gcc -O2 -fno-strict-aliasing -g -Wall -Wmissing-prototypes -Wmissing-declarations -I../../../src/interfaces/libpq -I../../../src/include-I/opt/OXRS/supporting-packages/readline-4.2/include/ -I/opt/OXRS/supporting-packages/zlib-1.1.4/include/-DFRONTEND -c -o common.o common.c > common.c:54: error: `finfo' redeclared as different kind of symbol > /usr/include/unistd.h:722: error: previous declaration of `finfo' > common.c:54: warning: `finfo' was declared `extern' and later `static' > make: *** [common.o] Error 1 > > bash-2.05a$ grep finfo /usr/include/s*/*.h > /usr/include/sys/finfo.h:/* @(#)92 1.7 src/bos/kernel/sys/finfo.h, syslfs, bos510 7/18/00 17:04:32 > /usr/include/sys/finfo.h:/* command parameters for finfo and ffinfo */ > /usr/include/sys/finfo.h:int finfo(const char *, int, void *, int32long64_t); > /usr/include/sys/finfo.h:int ffinfo(int, int, void *, int32long64_t); > /usr/include/sys/finfo.h:int finfo(); > /usr/include/sys/finfo.h:int ffinfo(); > /usr/include/sys/vnode.h: int (*vn_finfo)(struct vnode *, int32long64_t, void *, > /usr/include/sys/vnode.h: vnop_finfo(vp, cmd, p, len, ucred) > /usr/include/sys/vnode.h:vnop_finfo( -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
Chris Browne <cbbrowne@acm.org> writes: > CUT0 may be _equivalent_ to GMT, but PostgreSQL isn't aware of it as > such, so inserts into the table epp_whois_cachemgr were failing with > much the same error message shown below: It will probably be more practical to fix this after Magnus' timezone patch goes in. Please try it again in a few days and report back. > But the AIX compile is breaking, on pg_dump. Evidently there's some > conflict of symbol names, though it doesn't look like it's due to new > changes. "finfo" seems pretty unique to AIX... I renamed the variable. regards, tom lane
Bruce Momjian <pgman@candle.pha.pa.us> writes: > It is strange you are having this problem with finfo only in pg_dump > because it is used a lot in the backend. Yeah, but the other places are local variable names and so don't conflict with a global function name. regards, tom lane