postgres.git / summary / log / commit / refs

commit    ca658c91ae724c0a093a039813666705ef0bcfa4
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Mon Oct 21 17:52:25 2019 +0000
First released in: 13.0, 9.4.25, 9.5.20, 9.6.16, 10.11, 11.6, 12.1

    Use CFLAGS_SL while probing linkability of libperl.
    
    On recent Red Hat platforms (at least RHEL 8 and Fedora 30, maybe older),
    configure's probe for libperl failed if the user forces CFLAGS to be -O0.
    This is because some code in perl's inline.h fails to be optimized away
    at -O0, and said code doesn't work if compiled without -fPIC.
    
    To fix, add CFLAGS_SL to the compile flags used during the libperl probe.
    This is a better simulation of the way that plperl is built, anyway,
    so it might forestall other issues in future.
    
    Per gripe from Kyotaro Horiguchi.  Back-patch to all supported branches,
    since people might want to build older branches on these platforms.
    
    Discussion: https://postgr.es/m/20191010.144533.263180400.horikyota.ntt@gmail.com


configure | 5 +++++ configure.in | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/configure b/configure index ec1efebc7b8..fbc140dca13 100755 --- a/configure +++ b/configure @@ -18615,6 +18615,10 @@ fi # On most platforms, if perl.h is there then libperl.so will be too, but at # this writing Debian packages them separately. There is no known reason to # waste cycles on separate probes for the Tcl or Python libraries, though. + # On some Red Hat platforms, the link attempt can fail if we don't use + # CFLAGS_SL while building the test program. + ac_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $CFLAGS_SL" pgac_save_LIBS=$LIBS LIBS="$perl_embed_ldflags" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libperl" >&5 @@ -18644,6 +18648,7 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$pgac_save_LIBS + CFLAGS=$ac_save_CFLAGS CPPFLAGS=$ac_save_CPPFLAGS fi diff --git a/configure.in b/configure.in index 05a5768db17..4d16b8f7bdf 100644 --- a/configure.in +++ b/configure.in @@ -2258,6 +2258,10 @@ if test "$with_perl" = yes; then # On most platforms, if perl.h is there then libperl.so will be too, but at # this writing Debian packages them separately. There is no known reason to # waste cycles on separate probes for the Tcl or Python libraries, though. + # On some Red Hat platforms, the link attempt can fail if we don't use + # CFLAGS_SL while building the test program. + ac_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $CFLAGS_SL" pgac_save_LIBS=$LIBS LIBS="$perl_embed_ldflags" AC_MSG_CHECKING([for libperl]) @@ -2269,6 +2273,7 @@ if test "$with_perl" = yes; then [AC_MSG_RESULT(no) AC_MSG_ERROR([libperl library is required for Perl])]) LIBS=$pgac_save_LIBS + CFLAGS=$ac_save_CFLAGS CPPFLAGS=$ac_save_CPPFLAGS fi [parent: aa5bb828af53]