Re: pgsql: aix: No need to use mkldexport when we want to export all symbol - Mailing list pgsql-committers

From Andres Freund
Subject Re: pgsql: aix: No need to use mkldexport when we want to export all symbol
Date
Msg-id 20220913072059.kqx7x4b47viza4te@awork3.anarazel.de
Whole thread Raw
In response to Re: pgsql: aix: No need to use mkldexport when we want to export all symbol  (Andres Freund <andres@anarazel.de>)
List pgsql-committers
Hi,

On 2022-09-13 00:02:53 -0700, Andres Freund wrote:
> On 2022-09-12 23:11:23 -0700, Andres Freund wrote:
> > I'll check it out tomorrow. I configured perl on the other AIX gcc compile
> > farm machine building 64bit with both gcc and xlc, IIRC. I can't check rn,
> > they seem to be down?
>
> Seems to just have been a temporary connectivity issue.
>
> After battling a bit with bison flex (system m4 seems incompatible with system
> flex?), solved by using your binaries, I suceeded building and testing plperl
> on 346990ae2e
>
> ~/src/postgres/configure FLEX=/home/nm/bin/flex BISON=/home/nm/sw/bison/bin/bison CXX='g++ -maix64' CC='gcc -maix64'
PERL=perl64--cache ../config-ac-gcc.cache --enable-cassert --enable-debug --with-perl 
>
> gmake -j8 -s world-bin && gmake -j8 -s checkprep && gmake -j8 -s temp-install
> cd src/pl/plperl/
> gmake check NO_TEMP_INSTALL=1
> ...
> ======================
>  All 13 tests passed.
> ======================
>
> "my" linking of plperl.so:
>
> gcc -maix64 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels
-Wmissing-format-attribute-Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard-Wno-format-truncation -Wno-stringop-truncation -g -O2  -fvisibility=hidden -o plperl.so
plperl.oSPI.o Util.o  -L../../../src/port -L../../../src/common
-Wl,-blibpath:'/usr/opt/perl5/lib64/5.28.1/aix-thread-multi-64all/CORE:/usr/lib:/lib:/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.3.0/'
-Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE -shared -fvisibility=hidden
-L/usr/opt/perl5/lib64/5.28.1/aix-thread-multi-64all/CORE-lperl -lpthread -lbind -lnsl -ldl -lld -lm -lcrypt -lpthreads
-lc-Wl,-bI:../../../src/backend/postgres.imp 
>
> sungazer:
> wrap-gcc-8.3 -D_THREAD_SAFE=1 -D_LARGE_FILES=1 -maix64 -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement-Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3
-Wcast-function-type-Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation
-Wno-stringop-truncation-g -O2  -fvisibility=hidden -o plperl.so plperl.o SPI.o Util.o  -L../../../src/port
-L../../../src/common  -L/home/nm/sw/nopath/libxml2-64/lib -L/home/nm/sw/nopath/icu58.2-64/lib
-L/home/nm/sw/nopath/uuid-64/lib-L/home/nm/sw/nopath/openldap-64/lib -L/home/nm/sw/nopath/icu58.2-64/lib
-L/home/nm/sw/nopath/libxml2-64/lib
-Wl,-blibpath:'/usr/opt/perl5/lib64/5.28.1/aix-thread-multi-64all/CORE:/home/nm/sw/nopath/libxml2-64/lib:/home/nm/sw/nopath/icu58.2-64/lib:/home/nm/sw/nopath/uuid-64/lib:/home/nm/sw/nopath/openldap-64/lib:/home/nm/sw/nopath/icu58.2-64/lib:/home/nm/sw/nopath/libxml2-64/lib:/usr/lib:/lib:/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.3.0/'
-Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE -shared -fvisibility=hidden
-Wl,-bE:/usr/opt/perl5/lib64/5.28.1/aix-thread-multi-64all/CORE/perl.exp
-Wl,-bE:/usr/opt/perl5/lib64/5.28.1/aix-thread-multi-64all/CORE/perl.exp-Wl,-brtl -Wl,-bdynamic -Wl,-b64
-L/usr/opt/perl5/lib64/5.28.1/aix-thread-multi-64all/CORE-lperl -lpthread -lbind -lnsl -ldl -lld -lm -lcrypt -lpthreads
-lc-Wl,-bI:../../../src/backend/postgres.imp 
>
> I suspect the problem is the -Wl,-bE:/.../perl.exp - that'll obviously
> restrict the exports of plperl.so to the ones of perl, which obviously is
> wrong.  I would have assumed that Peter's recent plperl changes should have
> gotten rid of the -Wl,-bE:?

The spurious -Wl,-bE's are the cause of all these warnings btw:

ld: 0711-415 WARNING: Symbol ASCII_TO_NEED is already exported.
ld: 0711-415 WARNING: Symbol boot_DynaLoader is already exported.
ld: 0711-415 WARNING: Symbol NATIVE_TO_NEED is already exported.
ld: 0711-415 WARNING: Symbol Perl__add_range_to_invlist is already exported.
ld: 0711-415 WARNING: Symbol Perl__core_swash_init is already exported.
[~1150 more]
ld: 0711-415 WARNING: Symbol PL_Yes is already exported.
ld: 0711-415 WARNING: Symbol PL_Zero is already exported.

Greetings,

Andres Freund



pgsql-committers by date:

Previous
From: Andres Freund
Date:
Subject: Re: pgsql: aix: No need to use mkldexport when we want to export all symbol
Next
From: Andres Freund
Date:
Subject: Re: pgsql: aix: No need to use mkldexport when we want to export all symbol