On 10/18/19 9:50 AM, Tom Lane wrote: > Kyotaro Horiguchi <horikyota....@gmail.com> writes: >> The immediately problematic command generated by autoconf is: >> ... >> /usr/bin/ld: /tmp/ccGxodNv.o: relocation R_X86_64_32 against symbol >> `PL_memory_wrap' can not be used when making a PIE object; recompile with >> -fPIC >> /usr/bin/ld: final link failed: Nonrepresentable section on output >> collect2: error: ld returned 1 exit status >> Very interestingly I don't get the error when the "-O0" is "-O2". It >> is because gcc eliminates the PL_memory_wrap maybe by inlining. > Yeah, probably so. But I don't like the idea of fixing a problem > triggered by user-supplied CFLAGS by injecting more cflags from > elsewhere. That seems likely to be counterproductive, or at > least it risks overriding what the user wanted. > > Can we fix this by using something other than perl_alloc() as > the tested-for function? That is surely a pretty arbitrary > choice. Are there any standard Perl entry points that are just > plain functions with no weird macro expansions? >
I had a look in perl's proto.h but didn't see any obvious candidate. I tried a couple of others (e.g. Perl_get_context) and got the same result reported above. cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services