PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 07/10/2009 16:15:57

casasniper
Membre

Problème de compilation postgres 8.4.1 sous Unix AIX

Bonjour,

J'essaie de compiler (gmake) postgresql-8.4.1 sous AIX 5.3, et j'ai eu cet erreur :

gmake[4]: Entering directory `/var/prog/postgresql-8.4.1/src/interfaces/libpq'
gmake[4]: Nothing to be done for `all'.
gmake[4]: Leaving directory `/var/prog/postgresql-8.4.1/src/interfaces/libpq'
gmake -C ../../../src/port all
gmake[4]: Entering directory `/var/prog/postgresql-8.4.1/src/port'
gmake[4]: Nothing to be done for `all'.
gmake[4]: Leaving directory `/var/prog/postgresql-8.4.1/src/port'
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -I. -I../../../src/interfaces/libpq -I../../../src/bin/pg_dump -I../../../src/include -c -o psqlscan.o psqlscan.c
In file included from psqlscan.c:4364:
/usr/include/unistd.h:171: error: conflicting types for 'lseek64'
/usr/include/unistd.h:169: error: previous declaration of 'lseek64' was here
In file included from /usr/include/unistd.h:737,
from psqlscan.c:4364:
/usr/include/sys/lockf.h:64: error: conflicting types for 'lockf64'
/usr/include/sys/lockf.h:62: error: previous declaration of 'lockf64' was here
In file included from psqlscan.c:4364:
/usr/include/unistd.h:800: error: conflicting types for 'ftruncate64'
/usr/include/unistd.h:798: error: previous declaration of 'ftruncate64' was here
/usr/include/unistd.h:836: error: conflicting types for 'truncate64'
/usr/include/unistd.h:834: error: previous declaration of 'truncate64' was here
/usr/include/unistd.h:853: error: conflicting types for 'pread64'
/usr/include/unistd.h:850: error: previous declaration of 'pread64' was here
/usr/include/unistd.h:854: error: conflicting types for 'pwrite64'
/usr/include/unistd.h:851: error: previous declaration of 'pwrite64' was here
/usr/include/unistd.h:921: error: conflicting types for 'fclear64'
/usr/include/unistd.h:918: error: previous declaration of 'fclear64' was here
/usr/include/unistd.h:922: error: conflicting types for 'fsync_range64'
/usr/include/unistd.h:919: error: previous declaration of 'fsync_range64' was here
gmake[3]: *** [psqlscan.o] Error 1
gmake[3]: Leaving directory `/var/prog/postgresql-8.4.1/src/bin/psql'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/var/prog/postgresql-8.4.1/src/bin'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/var/prog/postgresql-8.4.1/src'
gmake: *** [all] Error 2 

Voici quelques informations:

- AIX 5.3.0 64 bits
- PostgreSQL 8.4.1
- Version gcc 4.2.0
- GNU make 3.80
- Readline installé

Je ne comprends pas quel est le problème, quelqu'un at-il essayé de compiler Postgres sur AIX?
Que puis-je faire ensuite?

Hors ligne

#2 09/10/2009 12:15:43

casasniper
Membre

Re : Problème de compilation postgres 8.4.1 sous Unix AIX

Salut tout le monde, j'ai encore des nouvelles pour mon problème de compilation

J'essaie de compiler postgresql-8.4.1 sur AIX 5.3 mais j'ai un message d'erreur:

Voici la façon dont je l'ai fait:
J'ai tapé la commande configure sans options, et voici ce que j'obtiens à la fin de configure:

checking for docbook2man...
checking if gcc supports -Wl,--as-needed... no
configure: using CFLAGS=-O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv
configure: using CPPFLAGS=
configure: using LDFLAGS=
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating src/Makefile.global
config.status: creating src/include/pg_config.h
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: linking ./src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking ./src/backend/port/dynloader/aix.c to src/backend/port/dynloader.c
config.status: linking ./src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c
config.status: linking ./src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking ./src/backend/port/dynloader/aix.h to src/include/dynloader.h
config.status: linking ./src/include/port/aix.h to src/include/pg_config_os.h
config.status: linking ./src/makefiles/Makefile.aix to src/Makefile.port

Après cela, j'ai lancé la compilation avec gmake et j'ai eu ce message d'erreur:

gmake[4]: Entering directory `/var/prog/postgresql-8.4.1/src/interfaces/libpq'
gmake[4]: Nothing to be done for `all'.
gmake[4]: Leaving directory `/var/prog/postgresql-8.4.1/src/interfaces/libpq'
gmake -C ../../../src/port all
gmake[4]: Entering directory `/var/prog/postgresql-8.4.1/src/port'
gmake[4]: Nothing to be done for `all'.
gmake[4]: Leaving directory `/var/prog/postgresql-8.4.1/src/port'
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -I. -I../../../src/interfaces/libpq -I../../../src/bin/pg_dump -I../../../src/include -c -o psqlscan.o psqlscan.c
In file included from psqlscan.c:4364:
/usr/include/unistd.h:171: error: conflicting types for 'lseek64'
/usr/include/unistd.h:169: error: previous declaration of 'lseek64' was here
In file included from /usr/include/unistd.h:737,
from psqlscan.c:4364:
/usr/include/sys/lockf.h:64: error: conflicting types for 'lockf64'
/usr/include/sys/lockf.h:62: error: previous declaration of 'lockf64' was here
In file included from psqlscan.c:4364:
/usr/include/unistd.h:800: error: conflicting types for 'ftruncate64'
/usr/include/unistd.h:798: error: previous declaration of 'ftruncate64' was here
/usr/include/unistd.h:836: error: conflicting types for 'truncate64'
/usr/include/unistd.h:834: error: previous declaration of 'truncate64' was here
/usr/include/unistd.h:853: error: conflicting types for 'pread64'
/usr/include/unistd.h:850: error: previous declaration of 'pread64' was here
/usr/include/unistd.h:854: error: conflicting types for 'pwrite64'
/usr/include/unistd.h:851: error: previous declaration of 'pwrite64' was here
/usr/include/unistd.h:921: error: conflicting types for 'fclear64'
/usr/include/unistd.h:918: error: previous declaration of 'fclear64' was here
/usr/include/unistd.h:922: error: conflicting types for 'fsync_range64'
/usr/include/unistd.h:919: error: previous declaration of 'fsync_range64' was here
gmake[3]: *** [psqlscan.o] Error 1
gmake[3]: Leaving directory `/var/prog/postgresql-8.4.1/src/bin/psql'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/var/prog/postgresql-8.4.1/src/bin'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/var/prog/postgresql-8.4.1/src'
gmake: *** [all] Error 2

Après avoir cherché un peu et essayer de comprendre quel était le problème, j'ai remarqué qu'il doit traiter les gros fichier "large file".

Donc, j'ai essayé d'exécuter la commande configure avec l'option - disable-largefile comme suite ". / Configure - disable-largefile».

Et voici ce que j'ai eu à la fin de la commande configure avec l'option - disable-largefile:

checking for docbook2man...
checking if gcc supports -Wl,--as-needed... no
configure: using CFLAGS=-O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv
configure: using CPPFLAGS=
configure: using LDFLAGS=
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating src/Makefile.global
config.status: creating src/include/pg_config.h
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: linking ./src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking ./src/backend/port/dynloader/aix.c to src/backend/port/dynloader.c
config.status: linking ./src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c
config.status: linking ./src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking ./src/backend/port/dynloader/aix.h to src/include/dynloader.h
config.status: linking ./src/include/port/aix.h to src/include/pg_config_os.h
config.status: linking ./src/makefiles/Makefile.aix to src/Makefile.port
configure: WARNING: option ignored: --enable-largefile

Comme vous remarquez dans le warnaing, il a ignorait le "enable-largefile"

Mais quand je lance la compilation (gmake), après cela, la compilation se termine bien comme suite :

-L../../src/port -Wl,-blibpath:/usr/local/pgsql/lib:/usr/lib:/lib -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE -o autoinc.so autoinc.o -Wl,-bE:autoinc.exp -Wl,-bI:../../src/backend/postgres.imp -L../../src/port -lpgport
rm autoinc.exp autoinc.o
gmake[3]: Leaving directory `/var/prog/postgresql-8.4.1/contrib/spi'
cp ../../../contrib/spi/autoinc.so autoinc.so
rm -rf ./testtablespace
mkdir ./testtablespace
gmake[2]: Leaving directory `/var/prog/postgresql-8.4.1/src/test/regress'
gmake[1]: Leaving directory `/var/prog/postgresql-8.4.1/src'
gmake -C config all
gmake[1]: Entering directory `/var/prog/postgresql-8.4.1/config'
gmake[1]: Nothing to be done for `all'.
gmake[1]: Leaving directory `/var/prog/postgresql-8.4.1/config'
All of PostgreSQL successfully made. Ready to install.

Ma question est quel est l'effet de l'option - disable-largefile?

Je réussi la compilation avec l'option "disable-largefile", Mais je crains que je rencontre quelques problèmes dans le futur, lors de l'exécution de l'application en production.

S'il vous plaît quelqu'un peut me préciser le sens de cette option et si je désactive l'option largefile, il va avoir un effet ou non ?

Merci

Hors ligne

#3 09/10/2009 15:27:48

gleu
Administrateur

Re : Problème de compilation postgres 8.4.1 sous Unix AIX

Il s'agit du support d'adressage de fichiers 64 bits si c'est est disponible sur votre système. Ainsi PostgreSQL pourrait lire et écrire des fichiers de plus de 2 Go. Aucun intérêt à priori, sauf pour les fichiers de traces. Autrement dit, vraiment aucun intérêt.


Guillaume.

Hors ligne

#4 09/10/2009 17:15:33

Marc Cousin
Membre

Re : Problème de compilation postgres 8.4.1 sous Unix AIX

Mais AIX 5.3 est 64 bits de toutes façons. Je ne pense pas que le enable_largefile soit nécessaire non plus dans ce contexte.

Avez vous jeté un oeil à cette partie de la doc ?

http://docs.postgresql.fr/8.4/installat … notes.html

Sinon il existe je pense des binaires déjà précompilés pour AIX. Il s'agit d'une des plateformes pénibles, en matière de compilation, pour PostgreSQL


Marc.

Hors ligne

#5 16/10/2009 13:57:28

casasniper
Membre

Re : Problème de compilation postgres 8.4.1 sous Unix AIX

--------------------------------------------------------------------------------

Bonjour,

Merci les ami(e)s pour vos réponses, j'espère que cela ne me posera pas de problème par la suite.

Hors ligne

Pied de page des forums