1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-21 12:05:57 +03:00

> > > > and mb conversions (pg_ascii2mic and pg_mic2ascii not

> > > > found in the postmaster and not included from elsewhere)
> >
> > shared libs on AIX need to be able to resolve all symbols at linkage time.
> > Those two symbols are in backend/utils/SUBSYS.o but not in the postgres
> > executable.
>
> They are defined in backend/utils/mb/conv.c and declared in
> include/mb/pg_wchar.h.  They're also linked into the
> postmaster.  I don't see anything unusual.

Attached is a patch to fix the mb linking problems on AIX. As a nice side effect

it reduces the duplicate symbol warnings to linking libpq.so and libecpg.so
(all shlibs that are not postmaster loadable modules).

Please apply to current (only affects AIX).

The _LARGE_FILES problem is unfortunately still open, unless Peter
has fixed it per his recent idea.

Zeugswetter Andreas SB SD
This commit is contained in:
Bruce Momjian 2002-10-09 16:21:54 +00:00
parent ba8e20a6dd
commit 33a6b67b51
5 changed files with 34 additions and 25 deletions

View File

@ -1,5 +1,5 @@
From: Zeugswetter Andreas <ZeugswetterA@spardat.at> From: Zeugswetter Andreas <ZeugswetterA@spardat.at>
Fri Feb 1 17:24:51 NFT 2002 Fri Sep 27 12:33:36 MSZ 2002
On AIX 4.3.2 PostgreSQL compiled with the native IBM compiler xlc On AIX 4.3.2 PostgreSQL compiled with the native IBM compiler xlc
(vac.C 5.0.1) passes all regression tests. (vac.C 5.0.1) passes all regression tests.
@ -22,6 +22,9 @@ which you can safely ignore.
Compiling PostgreSQL with gcc (2.95.3) on AIX also works. Compiling PostgreSQL with gcc (2.95.3) on AIX also works.
Use the configure flags: --with-CC=gcc Use the configure flags: --with-CC=gcc
You need libm.a that is in the fileset bos.adt.libm (try following command)
$ lslpp -l bos.adt.libm
Since the mktime() function does not work on AIX for dates before Since the mktime() function does not work on AIX for dates before
1970, all localtime formatted datetimes will not use summer time for 1970, all localtime formatted datetimes will not use summer time for
dates before 1970. dates before 1970.

View File

@ -6,7 +6,7 @@
# Copyright (c) 1998, Regents of the University of California # Copyright (c) 1998, Regents of the University of California
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.64 2002/09/05 18:28:46 petere Exp $ # $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.65 2002/10/09 16:21:54 momjian Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -77,7 +77,7 @@ soname = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
ifeq ($(PORTNAME), aix) ifeq ($(PORTNAME), aix)
shlib := lib$(NAME)$(DLSUFFIX) shlib := lib$(NAME)$(DLSUFFIX)
SHLIB_LINK += -lc # SHLIB_LINK += -lc
endif endif
ifeq ($(PORTNAME), darwin) ifeq ($(PORTNAME), darwin)
@ -267,7 +267,7 @@ else # PORTNAME == aix
# AIX case # AIX case
$(shlib): lib$(NAME).a $(shlib): lib$(NAME).a
$(MKLDEXPORT) lib$(NAME).a > lib$(NAME)$(EXPSUFF) $(MKLDEXPORT) lib$(NAME).a > lib$(NAME)$(EXPSUFF)
$(COMPILER) -Wl,-H512 -Wl,-bM:SRE -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP) -Wl,-bE:lib$(NAME)$(EXPSUFF) -o $@ $< $(LDFLAGS) $(SHLIB_LINK) $(LDFLAGS_SL) -Wl,-bnoentry $(COMPILER) $(LDFLAGS_SL) -o $@ $< $(LDFLAGS) $(SHLIB_LINK) -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP) -Wl,-bE:lib$(NAME)$(EXPSUFF)
endif # PORTNAME == aix endif # PORTNAME == aix

View File

@ -4,7 +4,7 @@
# #
# Copyright (c) 1994, Regents of the University of California # Copyright (c) 1994, Regents of the University of California
# #
# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.87 2002/09/05 18:28:46 petere Exp $ # $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.88 2002/10/09 16:21:54 momjian Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -53,6 +53,25 @@ libpostgres.a: postgres.def
endif # win endif # win
ifeq ($(PORTNAME), aix)
postgres: $(POSTGRES_IMP)
$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -Wl,-bE:$(top_builddir)/src/backend/$(POSTGRES_IMP) $(LIBS) -o $@
$(POSTGRES_IMP): $(OBJS)
$(LD) $(LDREL) $(LDOUT) SUBSYS.o $^
ifeq ($(host_os), aix3.2.5)
$(MKLDEXPORT) SUBSYS.o $(bindir)/postgres > $@
else
ifneq (,$(findstring aix4.1, $(host_os)))
$(MKLDEXPORT) SUBSYS.o $(bindir)/postgres > $@
else
$(MKLDEXPORT) SUBSYS.o . > $@
endif
endif
@rm -f SUBSYS.o
endif # aix
# Parallel make trickery # Parallel make trickery
$(OBJS): $(DIRS:%=%-recursive) ; $(OBJS): $(DIRS:%=%-recursive) ;

View File

@ -47,7 +47,7 @@ else
# for the base executable (AIX 4.2 and up) # for the base executable (AIX 4.2 and up)
echo '#! .' echo '#! .'
else else
echo '#!' $2/$OBJNAME echo '#!' $2
fi fi
fi fi
$NM -BCg $1 | \ $NM -BCg $1 | \

View File

@ -7,12 +7,12 @@ MK_NO_LORDER= true
AROPT = crs AROPT = crs
DLSUFFIX = .so DLSUFFIX = .so
ifneq ($(GCC), yes)
ifeq ($(host_os), aix3.2.5) ifeq ($(host_os), aix3.2.5)
LDFLAGS_SL = -e _nostart ifneq ($(GCC), yes)
else LDFLAGS_SL = -e _nostart -H512 -bM:SRE
LDFLAGS_SL = -bnoentry
endif endif
else
LDFLAGS_SL = -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE
endif endif
@ -23,24 +23,11 @@ POSTGRES_IMP= postgres$(IMPSUFF)
MKLDEXPORT=$(top_srcdir)/src/backend/port/aix/mkldexport.sh MKLDEXPORT=$(top_srcdir)/src/backend/port/aix/mkldexport.sh
$(POSTGRES_IMP):
@echo Making $@
ifeq ($(host_os), aix3.2.5)
$(MKLDEXPORT) postgres $(bindir) > $@
else
ifneq (,$(findstring aix4.1, $(host_os)))
$(MKLDEXPORT) postgres $(bindir) > $@
else
$(MKLDEXPORT) postgres . > $@
endif
endif
$(CC) -Wl,-bE:$(top_builddir)/src/backend/$@ -o postgres $(OBJS) $(LDFLAGS) $(LIBS)
%$(EXPSUFF): %.o %$(EXPSUFF): %.o
$(MKLDEXPORT) $*.o > $*$(EXPSUFF) $(MKLDEXPORT) $*.o > $*$(EXPSUFF)
%$(DLSUFFIX): %.o %$(EXPSUFF) %$(DLSUFFIX): %.o %$(EXPSUFF)
@echo Making shared library $@ from $*.o, $*$(EXPSUFF) and postgres.imp @echo Making shared library $@ from $*.o, $*$(EXPSUFF) and postgres.imp
$(CC) -Wl,-H512 -Wl,-bM:SRE -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP) -Wl,-bE:$*$(EXPSUFF) -o $@ $*.o $(LDFLAGS) $(LIBS) $(LDFLAGS_SL) $(CC) $(LDFLAGS) $(LDFLAGS_SL) -o $@ $*.o -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP) -Wl,-bE:$*$(EXPSUFF) $(LIBS)
sqlmansect = 7 sqlmansect = 7