Thread: Re: [GENERAL] aix build question re: duplicate symbol warning

Re: [GENERAL] aix build question re: duplicate symbol warning

From
Tom Lane
Date:
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

Re: [GENERAL] aix build question re: duplicate symbol warning

From
Tom Lane
Date:
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

Re: [GENERAL] aix build question re: duplicate symbol warning

From
Kevin Murphy
Date:
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



Re: [GENERAL] aix build question re: duplicate symbol warning

From
Andrew Dunstan
Date:

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


Re: [GENERAL] aix build question re: duplicate symbol warning

From
Kevin Murphy
Date:
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