The following patch updates the FAQ_AIX and makes C++ code work with

more recent versions of the IBM C++ compiler (now called VisualAge C++).
The C++ part was previously broken (g++ and xlC), thus this is zero risk.
Only AIX specific parts are touched (1 Makefile.shlib line (link with $(COMPILER
) instead
of $(CC) and one shell script line (parameter -C to nm to not demangle C++ symbo
ls for
.exp file)).

I thus ask you to please apply this patch before release.

With or without this patch RC1 on AIX 4.3.2 RS6000 passes "gmake check" for both
 the native
compiler vac.C 5.0.1 and gcc 2.95.2 :-)

Andreas
This commit is contained in:
Bruce Momjian 2001-03-27 14:56:20 +00:00
parent c4d354c271
commit 341cb70044
3 changed files with 20 additions and 11 deletions

View File

@ -1,18 +1,27 @@
From: Zeugswetter Andreas <ZeugswetterA@wien.spardat.at>
Wed Nov 8 11:16:35 MEZ 2000
Tue Mar 27 10:47:31 MSZ 2001
AIX 4.3.2 with native IBM compiler xlc 3.6.4 passes all regression tests.
Other versions of OS and compiler should also work. If you don't have
a powerpc there might be differences in the geometry regression test.
On AIX 4.3.2 PostgreSQL compiled with the native IBM compiler xlc
(vac.C 5.0.1) passes all regression tests.
Other versions of OS and compiler should also work. If you don't have a
powerpc or use gcc you might see rounding differences in the geometry
regression test.
Use the following configure flags in addition to your own
if you have readline or libz there:
--with-includes=/usr/local/include --with-libraries=/usr/local/lib
libpq++ does not work because xlC does not have the string and bool classes.
compiling the few files, that fail, with g++ does work.
Compiling PostgreSQL with gcc (2.95.2) on AIX also works.
If you need libpq++ and have trouble --with-CXX=xlC make sure you have
installed the appropriate C++ include files and use a C++ version that
supports the string class (e.g. VisualAge C++ filesets vacpp.cmp.batch 5.0
and vacpp.cmp.include 5.0).
There will probably be warnings about int8 - int64 redefines, 0.0/0.0
division and duplicate symbol warnings which you can safely ignore.
Compiling PostgreSQL with gcc (2.95.2) on AIX also works.
Use the configure flags: --with-CC=gcc
Since the mktime() function does not work on AIX for dates before
1970, all localtime formatted datetimes will not use summer time for
dates before 1970.

View File

@ -6,7 +6,7 @@
# Copyright (c) 1998, Regents of the University of California
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.48 2001/03/14 19:35:11 tgl Exp $
# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.49 2001/03/27 14:56:20 momjian Exp $
#
#-------------------------------------------------------------------------
@ -291,7 +291,7 @@ else # PORTNAME == aix
# AIX case
$(shlib): lib$(NAME).a
$(MKLDEXPORT) lib$(NAME).a > lib$(NAME)$(EXPSUFF)
$(CC) -Wl,-H512 -Wl,-bM:SRE -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP) -Wl,-bE:lib$(NAME)$(EXPSUFF) -o $@ $< $(LDFLAGS) $(SHLIB_LINK)
$(COMPILER) -Wl,-H512 -Wl,-bM:SRE -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP) -Wl,-bE:lib$(NAME)$(EXPSUFF) -o $@ $< $(LDFLAGS) $(SHLIB_LINK)
endif # PORTNAME == aix

View File

@ -50,7 +50,7 @@ else
echo '#!' $2/$OBJNAME
fi
fi
$NM -Bg $1 | \
$NM -BCg $1 | \
egrep ' [TDB] ' | \
sed -e 's/.* //' | \
egrep -v '\$' | \