Thread: Re: [GENERAL] aix build question re: duplicate symbol warning
Kevin Murphy <murphy@genome.chop.edu> writes: > I'm trying to build PG 8.1 beta on an AIX server. > The 'make' finishes without errors, but I'm getting lots of duplicate > symbol warnings like the following one. What am I to make of these? > gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline > -fno-strict-aliasing -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE -o libpq.\ > so libpq.a -L../../../src/port -L../../../src/port -lnsl > -Wl,-bI:../../../src/backend/postgres.imp -Wl,-bE:libpq.exp > ld: 0711-224 WARNING: Duplicate symbol: > .pqStrerror Hmm. pqStrerror is defined in libpgport (which is linked into the backend) as well as libpq. ISTM that libpq should not be linked with -Wl,-bI:../../../src/backend/postgres.imp, since it's not intended to be loaded into the backend. Without having looked at the code, I'm wondering if the AIX makefiles stick that option into LDFLAGS_SL rather than someplace more restricted. regards, tom lane
I wrote: > Hmm. pqStrerror is defined in libpgport (which is linked into the > backend) as well as libpq. ISTM that libpq should not be linked with > -Wl,-bI:../../../src/backend/postgres.imp, since it's not intended to > be loaded into the backend. Without having looked at the code, I'm > wondering if the AIX makefiles stick that option into LDFLAGS_SL rather > than someplace more restricted. It seems that the right place to put this is BE_DLLLIBS, which is a macro that probably didn't exist when the AIX support was last looked at. But both Windows and Darwin ports use it now, so we may as well bring AIX up to speed. Would you try the attached patch and see if it gets rid of the warnings? Also check that regression tests and contrib build/regression tests still work. regards, tom lane
Attachment
Tom Lane wrote: >I wrote: > > >>Hmm. pqStrerror is defined in libpgport (which is linked into the >>backend) as well as libpq. ISTM that libpq should not be linked with >>-Wl,-bI:../../../src/backend/postgres.imp, since it's not intended to >>be loaded into the backend. Without having looked at the code, I'm >>wondering if the AIX makefiles stick that option into LDFLAGS_SL rather >>than someplace more restricted. >> >> > >It seems that the right place to put this is BE_DLLLIBS, which is a >macro that probably didn't exist when the AIX support was last looked >at. But both Windows and Darwin ports use it now, so we may as well >bring AIX up to speed. Would you try the attached patch and see if it >gets rid of the warnings? Also check that regression tests and contrib >build/regression tests still work. > > > Tom, That patch worked, as far as eliminating those duplicate symbol warnings. I have some dependency issues (libintl) that I have to resolve in order to test the build. -Kevin Murphy
Kevin Murphy wrote: >> >> It seems that the right place to put this is BE_DLLLIBS, which is a >> macro that probably didn't exist when the AIX support was last looked >> at. But both Windows and Darwin ports use it now, so we may as well >> bring AIX up to speed. Would you try the attached patch and see if it >> gets rid of the warnings? Also check that regression tests and contrib >> build/regression tests still work. >> >> >> > Tom, That patch worked, as far as eliminating those duplicate symbol > warnings. I have some dependency issues (libintl) that I have to > resolve in order to test the build. > > Or you could build without nls in the first instance. cheers andrew
Andrew Dunstan wrote: > Kevin Murphy wrote: > >>> Would you try the attached patch and see if it >>> gets rid of the warnings? Also check that regression tests and contrib >>> build/regression tests still work. >>> >> Tom, That patch worked, as far as eliminating those duplicate symbol >> warnings. I have some dependency issues (libintl) that I have to >> resolve in order to test the build. >> > Or you could build without nls in the first instance. > Thanks, Andrew. I wasn't sure what was going on, because NLS is listed as an optional feature in configure. But './configure --disable-nls' did the trick. (Is there something wrong with the configure file, though?) Sorry for the belated response. I'm happy Andreas hopped on it. I was working on my next issue, which is 'make check' failing the stats test; I see my problem in src/test/regress/log/postmaster log: LOG: could not bind socket for statistics collector: Can't assign requested address LOG: disabling statistics collector for lack of working socket This seems to be due to a misconfiguration on this AIX box. 'localhost' is not resolving properly. Thanks for the help. -Kevin Murphy