From: | "REIX, Tony" <tony(dot)reix(at)atos(dot)net> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, "APEKE, SENA (ext)" <sena(dot)apeke(dot)external(at)atos(dot)net>, Peter Eisentraut <peter_e(at)gmx(dot)net>, "Anthony Bykov" <a(dot)bykov(at)postgrespro(dot)ru> |
Subject: | RE:PostgreSQL 11 beta1 on AIX 7.2 : 2 failures in 32bit mode |
Date: | 2018-05-31 14:13:10 |
Message-ID: | B37989F2852398498001550C29155BE5301834ED@FRCRPVV9EX3MSX.ww931.my-it-solutions.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hummmmm
We build in 64bit and 32bit.
It looks like configure does figure out that LARGE_FILES is required, only in 32bit.
No need in 64bit.
# grep LARGE_FILES postgresql-11beta1-1.spec.res_20180530_101845
checking for CFLAGS recommended by Perl... -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -qlanglvl=extc99 -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -maix32 -D_LARGE_FILES
checking for _LARGE_FILES value needed for large files... 1
This is for 32bit only.
32bit and 64bit:
# find . -name "Makefile*" | xargs grep LARGE_FILE
#
64bit:
# grep LARGE_FILES config.log
#
32bit:
# grep LARGE_FILES */config.log
32bit/config.log:configure:9421: result: -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -qlanglvl=extc99 -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -maix32 -D_LARGE_FILES
32bit/config.log:configure:14471: checking for _LARGE_FILES value needed for large files
...
32bit/config.log:#define _LARGE_FILES 1
# find . -name "*.h" | xargs grep LARGE_FILE
./32bit/src/bin/pg_upgrade/tmp_check/install/opt/freeware/include/pg_config.h:#define _LARGE_FILES 1
./32bit/src/bin/pg_upgrade/tmp_check/install/opt/freeware/include/postgresql/server/pg_config.h:#define _LARGE_FILES 1
./32bit/src/include/pg_config.h:#define _LARGE_FILES 1
./32bit/tmp_install/opt/freeware/include/pg_config.h:#define _LARGE_FILES 1
./32bit/tmp_install/opt/freeware/include/postgresql/server/pg_config.h:#define _LARGE_FILES 1
./64bit/src/bin/pg_upgrade/tmp_check/install/opt/freeware/include/pg_config.h:/* #undef _LARGE_FILES */
./64bit/src/bin/pg_upgrade/tmp_check/install/opt/freeware/include/postgresql/server/pg_config.h:/* #undef _LARGE_FILES */
./64bit/src/include/pg_config.h:/* #undef _LARGE_FILES */
./64bit/tmp_install/opt/freeware/include/pg_config.h:/* #undef _LARGE_FILES */
./64bit/tmp_install/opt/freeware/include/postgresql/server/pg_config.h:/* #undef _LARGE_FILES */
However, in 32bit, though there is:
#define _LARGE_FILES 1
in file :
src/include/pg_config.h
I had to add it at the beg of file by means of a patch to several files:
src/pl/plpython/plpy_cursorobject.c
src/pl/plpython/plpy_elog.c
src/pl/plpython/plpy_exec.c
src/pl/plpython/plpy_main.c
src/pl/plpython/plpy_planobject.c
src/pl/plpython/plpy_plpymodule.c
src/pl/plpython/plpy_procedure.c
src/pl/plpython/plpy_resultobject.c
src/pl/plpython/plpy_spi.c
src/pl/plpython/plpy_subxactobject.c
src/pl/plpython/plpy_typeio.c
src/pl/plpython/plpy_util.c
contrib/hstore_plpython/hstore_plpython.c
contrib/ltree_plpython/ltree_plpython.c
contrib/jsonb_plpython/jsonb_plpython.c
src/common/file_perm.c
All involve plpython. Maybe we have something wrong there and my patch is a work-around.
However, my work-around works perfectly for v10.4 and v9.6.9, built in the exact same environment, but not for v11beta1 .
Regards,
Cordialement,
Tony Reix
ATOS / Bull SAS
ATOS Expert
IBM Coop Architect & Technical Leader
Office : +33 (0) 4 76 29 72 67
1 rue de Provence - 38432 Échirolles - France
www.atos.net
________________________________________
De : Tom Lane [tgl(at)sss(dot)pgh(dot)pa(dot)us]
Envoyé : jeudi 31 mai 2018 15:35
À : REIX, Tony
Cc : Alvaro Herrera; PostgreSQL-development; APEKE, SENA (ext); Peter Eisentraut; Anthony Bykov
Objet : Re: PostgreSQL 11 beta1 on AIX 7.2 : 2 failures in 32bit mode
"REIX, Tony" <tony(dot)reix(at)atos(dot)net> writes:
> For files: contrib/jsonb_plpython/jsonb_plpython.c and src/common/file_perm.c , I had to use #define _LARGE_FILES 1 like I did for 14 older files. That deals with lseek() and lseek64() definitions.
I'm not following this. Doesn't configure manage to figure out that
_LARGE_FILES=1 is needed? It certainly tries to.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-05-31 14:28:12 | Re: PostgreSQL 11 beta1 on AIX 7.2 : 2 failures in 32bit mode |
Previous Message | Tom Lane | 2018-05-31 14:06:22 | Re: Problem while updating a foreign table pointing to a partitioned table on foreign server |