AIX 4.2 compilation problem and solution

From: Todd Moyer <tmoyer(at)arinc(dot)com>
To: pgsql-ports(at)postgresql(dot)org
Subject: AIX 4.2 compilation problem and solution
Date: 2000-07-11 19:43:06
Message-ID: 396B78CA.822843E9@arinc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ports

============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================

Your name : Todd Moyer
Your email address : tmoyer(at)arinc(dot)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(at)postgresql(dot)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. :)

Browse pgsql-ports by date

  From Date Subject
Next Message Helmut KLARN 2000-07-12 13:00:53 7.0.2 on Windows 2000
Previous Message Odom, Kerry 2000-07-11 18:07:36 Need Help Initdb: oid8 Error on Linux Alpha 2.2.14