Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#26 Re : Installation » Problème de compilation postgres 8.4.1 sous Unix AIX » 09/10/2009 12:15:43
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
#27 Installation » Problème de compilation postgres 8.4.1 sous Unix AIX » 07/10/2009 16:15:57
- casasniper
- Réponses : 4
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?