AIX 4.2 compilation problem and solution
От | Todd Moyer |
---|---|
Тема | AIX 4.2 compilation problem and solution |
Дата | |
Msg-id | 396B78CA.822843E9@arinc.com обсуждение исходный текст |
Список | pgsql-ports |
============================================================================ POSTGRESQL BUG REPORT TEMPLATE ============================================================================ Your name : Todd Moyer Your email address : tmoyer@arinc.com System Configuration --------------------- Architecture (example: Intel Pentium) : IBM RS/6000 Operating System (example: Linux 2.0.26 ELF) : AIX4.2 PostgreSQL version (example: PostgreSQL-7.0) : PostgreSQL-7.0.2 Compiler used (example: gcc 2.8.0) : gcc 2.7.2.3 Please enter a FULL description of your problem: ------------------------------------------------ Failed compilation: bash-2.01$ gmake all ... ... gmake[2]: Entering directory `/home/tmoyer/postgresql-7.0.2/src/backend/port' gcc -I../../include -I../../backend -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -I.. -c dynloader.c dynloader.c: In function `dlopen': dynloader.c:191: warning: suggest parentheses around assignment used as truth value dynloader.c:203: warning: suggest parentheses around assignment used as truth value dynloader.c: In function `readExports': dynloader.c:435: warning: implicit declaration of function `ldclose' dynloader.c:445: warning: implicit declaration of function `ldnshread' gcc -I../../include -I../../backend -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -I.. -c isinf.c isinf.c: In function `isinf': isinf.c:61: `FP_PLUS_INF' undeclared (first use this function) isinf.c:61: (Each undeclared identifier is reported only once isinf.c:61: for each function it appears in.) isinf.c:63: `FP_MINUS_INF' undeclared (first use this function) gmake[2]: *** [isinf.o] Error 1 gmake[2]: Leaving directory `/home/tmoyer/postgresql-7.0.2/src/backend/port' gmake[1]: *** [port.dir] Error 2 gmake[1]: Leaving directory `/home/tmoyer/postgresql-7.0.2/src/backend' gmake: *** [all] Error 2 I had used the following configure command: ./configure --with-template=aix_gcc --without-CXX --with-libs=/usr/local/lib Please describe a way to repeat the problem. Please try to provide a concise reproducible example, if at all possible: ---------------------------------------------------------------------- Both version 6.5.3 and 7.0.2 suffer this problem compiling with gcc 2.7.2.3 under AIX 4.2. Version 7.0.2 compiles cleanly on AIX 4.3 with gcc 2.95.2. If you know how this problem might be fixed, list the solution below: --------------------------------------------------------------------- Copy and paste the values of FP_PLUS_INF and FP_MINUS_INF from /usr/include/float.h into src/backend/port/isinf.c: bash-2.01$ diff isinf.c.orig isinf.c 3a4,9 > #ifndef FP_PLUS_INF > #define FP_PLUS_INF 4 > #endif > #ifndef FP_MINUS_INF > #define FP_MINUS_INF 5 > #endif With this patch, the compilation is successful and most of the regression tests pass. (In particular, the float4 and float8 tests pass). Here's the regression test output: bash-2.01$ gmake runtest gcc -I../../include -I../../backend -pipe -Wall -Wmissing-prototypes -Wmissing -declarations -I../../interfaces/libpq -I../../include -lc -c regress.c gcc: -lc: linker input file unused since linking not done ../../backend/port/aix/mkldexport.sh regress.o `pwd` > regress.exp Making share library regress.so from regress.o, regress.exp, and installed postg res.imp ld -H512 -bM:SRE -bI:/usr/local/pgsql/lib/postgres.imp -bE:regress.exp -o regres s.so regress.o -L/usr/local/lib -lPW -lld -lnsl -ldl -lm -lreadline -lcurses -l c ld: 0711-224 WARNING: Duplicate symbol: .sprintf ld: 0711-224 WARNING: Duplicate symbol: sprintf ld: 0711-224 WARNING: Duplicate symbol: .strcat ld: 0711-224 WARNING: Duplicate symbol: .atof ld: 0711-224 WARNING: Duplicate symbol: atof ld: 0711-224 WARNING: Duplicate symbol: .fprintf ld: 0711-224 WARNING: Duplicate symbol: fprintf ld: 0711-224 WARNING: Duplicate symbol: .memset ld: 0711-224 WARNING: Duplicate symbol: memset ld: 0711-224 WARNING: Duplicate symbol: .strlen ld: 0711-224 WARNING: Duplicate symbol: strlen ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. MULTIBYTE=;export MULTIBYTE; \ /bin/sh ./regress.sh powerpc-ibm-aix4.2.1.0 2>&1 | tee regress.out =============== Notes... ================= postmaster must already be running for the regression tests to succeed. The time zone is set to PST8PDT for these tests by the client frontend. Please report any apparent problems to ports@postgresql.org See regress/README for more information. =============== dropping old regression database... ================= DROP DATABASE =============== creating new regression database... ================= CREATE DATABASE =============== installing languages... ================= installing PL/pgSQL .. ok =============== running regression queries... ================= boolean .. ok char .. ok name .. ok varchar .. ok text .. ok int2 .. ok int4 .. ok int8 .. ok oid .. ok float4 .. ok float8 .. ok numeric .. ok strings .. ok numerology .. ok point .. ok lseg .. ok box .. ok path .. ok polygon .. ok circle .. ok interval .. ok timestamp .. ok reltime .. ok tinterval .. ok inet .. ok comments .. ok oidjoins .. ok type_sanity .. ok opr_sanity .. ok abstime .. ok geometry .. failed horology .. ok create_function_1 .. No such file or directory ./regress.sh[126]: sql/create_function_1.sql: cannot open diff: expected/create_function_1.out: No such file or directory ok copy .. No such file or directory ./regress.sh[126]: sql/copy.sql: cannot open diff: expected/copy.out: No such file or directory ok constraints .. No such file or directory ./regress.sh[126]: sql/constraints.sql: cannot open diff: expected/constraints.out: No such file or directory ok triggers .. failed create_misc .. ok create_aggregate .. ok create_operator .. failed create_index .. failed create_view .. failed sanity_check .. ok errors .. ok select .. failed select_into .. ok select_distinct .. failed select_distinct_on .. failed select_implicit .. ok select_having .. ok subselect .. ok union .. ok case .. ok join .. ok aggregates .. failed transactions .. failed random .. failed portals .. failed arrays .. ok btree_index .. failed hash_index .. failed misc .. No such file or directory ./regress.sh[126]: sql/misc.sql: cannot open diff: expected/misc.out: No such file or directory ok select_views .. failed alter_table .. failed portals_p2 .. failed rules .. failed foreign_key .. ok limit .. failed plpgsql .. failed temp .. ok ACTUAL RESULTS OF REGRESSION TEST ARE NOW IN FILE regress.out To run the optional big test(s) too, type 'make bigtest' These big tests can take over an hour to complete These actually are: numeric_big rm regress.exp regress.o ------------------------------- I don't know if AIX 4.2/gcc 2.7.2.3 is considered a "supported" platform or not, but I thought I'd pass this on in case it helps anyone else out. I know my solution is a hack, but it works well enough for me. :)
В списке pgsql-ports по дате отправления: