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 [t...@sss.pgh.pa.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.r...@atos.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