RE:PostgreSQL 11 beta1 on AIX 7.2 : 2 failures in 32bit mode

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

In response to

Responses

Browse pgsql-hackers by date

  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