Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 33a6b67

Browse files
committed
> > > > 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
1 parent ba8e20a commit 33a6b67

File tree

5 files changed

+34
-25
lines changed

5 files changed

+34
-25
lines changed

doc/FAQ_AIX

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
From: Zeugswetter Andreas <ZeugswetterA@spardat.at>
2-
Fri Feb 1 17:24:51 NFT 2002
2+
Fri Sep 27 12:33:36 MSZ 2002
33

44
On AIX 4.3.2 PostgreSQL compiled with the native IBM compiler xlc
55
(vac.C 5.0.1) passes all regression tests.
@@ -22,6 +22,9 @@ which you can safely ignore.
2222
Compiling PostgreSQL with gcc (2.95.3) on AIX also works.
2323
Use the configure flags: --with-CC=gcc
2424

25+
You need libm.a that is in the fileset bos.adt.libm (try following command)
26+
$ lslpp -l bos.adt.libm
27+
2528
Since the mktime() function does not work on AIX for dates before
2629
1970, all localtime formatted datetimes will not use summer time for
2730
dates before 1970.

src/Makefile.shlib

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# Copyright (c) 1998, Regents of the University of California
77
#
88
# IDENTIFICATION
9-
# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.64 2002/09/05 18:28:46 petere Exp $
9+
# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.65 2002/10/09 16:21:54 momjian Exp $
1010
#
1111
#-------------------------------------------------------------------------
1212

@@ -77,7 +77,7 @@ soname = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
7777

7878
ifeq ($(PORTNAME), aix)
7979
shlib := lib$(NAME)$(DLSUFFIX)
80-
SHLIB_LINK += -lc
80+
# SHLIB_LINK += -lc
8181
endif
8282

8383
ifeq ($(PORTNAME), darwin)
@@ -267,8 +267,8 @@ else # PORTNAME == aix
267267
# AIX case
268268
$(shlib): lib$(NAME).a
269269
$(MKLDEXPORT) lib$(NAME).a > lib$(NAME)$(EXPSUFF)
270-
$(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
271-
270+
$(COMPILER) $(LDFLAGS_SL) -o $@ $< $(LDFLAGS) $(SHLIB_LINK) -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP) -Wl,-bE:lib$(NAME)$(EXPSUFF)
271+
272272
endif # PORTNAME == aix
273273

274274
else # PORTNAME == win

src/backend/Makefile

+20-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
# Copyright (c) 1994, Regents of the University of California
66
#
7-
# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.87 2002/09/05 18:28:46 petere Exp $
7+
# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.88 2002/10/09 16:21:54 momjian Exp $
88
#
99
#-------------------------------------------------------------------------
1010

@@ -53,6 +53,25 @@ libpostgres.a: postgres.def
5353

5454
endif # win
5555

56+
ifeq ($(PORTNAME), aix)
57+
58+
postgres: $(POSTGRES_IMP)
59+
$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -Wl,-bE:$(top_builddir)/src/backend/$(POSTGRES_IMP) $(LIBS) -o $@
60+
61+
$(POSTGRES_IMP): $(OBJS)
62+
$(LD) $(LDREL) $(LDOUT) SUBSYS.o $^
63+
ifeq ($(host_os), aix3.2.5)
64+
$(MKLDEXPORT) SUBSYS.o $(bindir)/postgres > $@
65+
else
66+
ifneq (,$(findstring aix4.1, $(host_os)))
67+
$(MKLDEXPORT) SUBSYS.o $(bindir)/postgres > $@
68+
else
69+
$(MKLDEXPORT) SUBSYS.o . > $@
70+
endif
71+
endif
72+
@rm -f SUBSYS.o
73+
74+
endif # aix
5675

5776
# Parallel make trickery
5877
$(OBJS): $(DIRS:%=%-recursive) ;

src/backend/port/aix/mkldexport.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ else
4747
# for the base executable (AIX 4.2 and up)
4848
echo '#! .'
4949
else
50-
echo '#!' $2/$OBJNAME
50+
echo '#!' $2
5151
fi
5252
fi
5353
$NM -BCg $1 | \

src/makefiles/Makefile.aix

+5-18
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ MK_NO_LORDER= true
77
AROPT = crs
88

99
DLSUFFIX = .so
10-
ifneq ($(GCC), yes)
1110
ifeq ($(host_os), aix3.2.5)
12-
LDFLAGS_SL = -e _nostart
13-
else
14-
LDFLAGS_SL = -bnoentry
11+
ifneq ($(GCC), yes)
12+
LDFLAGS_SL = -e _nostart -H512 -bM:SRE
1513
endif
14+
else
15+
LDFLAGS_SL = -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE
1616
endif
1717

1818

@@ -23,24 +23,11 @@ POSTGRES_IMP= postgres$(IMPSUFF)
2323

2424
MKLDEXPORT=$(top_srcdir)/src/backend/port/aix/mkldexport.sh
2525

26-
$(POSTGRES_IMP):
27-
@echo Making $@
28-
ifeq ($(host_os), aix3.2.5)
29-
$(MKLDEXPORT) postgres $(bindir) > $@
30-
else
31-
ifneq (,$(findstring aix4.1, $(host_os)))
32-
$(MKLDEXPORT) postgres $(bindir) > $@
33-
else
34-
$(MKLDEXPORT) postgres . > $@
35-
endif
36-
endif
37-
$(CC) -Wl,-bE:$(top_builddir)/src/backend/$@ -o postgres $(OBJS) $(LDFLAGS) $(LIBS)
38-
3926
%$(EXPSUFF): %.o
4027
$(MKLDEXPORT) $*.o > $*$(EXPSUFF)
4128

4229
%$(DLSUFFIX): %.o %$(EXPSUFF)
4330
@echo Making shared library $@ from $*.o, $*$(EXPSUFF) and postgres.imp
44-
$(CC) -Wl,-H512 -Wl,-bM:SRE -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP) -Wl,-bE:$*$(EXPSUFF) -o $@ $*.o $(LDFLAGS) $(LIBS) $(LDFLAGS_SL)
31+
$(CC) $(LDFLAGS) $(LDFLAGS_SL) -o $@ $*.o -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP) -Wl,-bE:$*$(EXPSUFF) $(LIBS)
4532

4633
sqlmansect = 7

0 commit comments

Comments
 (0)