Обсуждение: AIX Compilation Fun with 7.5 CVS

Поиск
Список
Период
Сортировка

AIX Compilation Fun with 7.5 CVS

От
Chris Browne
Дата:
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..."


Re: AIX Compilation Fun with 7.5 CVS

От
Bruce Momjian
Дата:
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
 


Re: AIX Compilation Fun with 7.5 CVS

От
Tom Lane
Дата:
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


Re: AIX Compilation Fun with 7.5 CVS

От
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