From 341cb7004473d3e8d3c120ace56c3675569616da Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Tue, 27 Mar 2001 14:56:20 +0000 Subject: [PATCH] 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 --- doc/FAQ_AIX | 25 +++++++++++++++++-------- src/Makefile.shlib | 4 ++-- src/backend/port/aix/mkldexport.sh | 2 +- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/doc/FAQ_AIX b/doc/FAQ_AIX index fef5f9255f..7184987c63 100644 --- a/doc/FAQ_AIX +++ b/doc/FAQ_AIX @@ -1,18 +1,27 @@ From: Zeugswetter Andreas -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. diff --git a/src/Makefile.shlib b/src/Makefile.shlib index afbd2b3e85..5d920bff06 100644 --- a/src/Makefile.shlib +++ b/src/Makefile.shlib @@ -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 diff --git a/src/backend/port/aix/mkldexport.sh b/src/backend/port/aix/mkldexport.sh index 4e6c98541d..ccf0988739 100755 --- a/src/backend/port/aix/mkldexport.sh +++ b/src/backend/port/aix/mkldexport.sh @@ -50,7 +50,7 @@ else echo '#!' $2/$OBJNAME fi fi -$NM -Bg $1 | \ +$NM -BCg $1 | \ egrep ' [TDB] ' | \ sed -e 's/.* //' | \ egrep -v '\$' | \ -- 2.40.0