diff options
author | Tom Lane | 2019-10-21 17:52:26 +0000 |
---|---|---|
committer | Tom Lane | 2019-10-21 17:52:26 +0000 |
commit | 6d2b18d0701ba5637a149467478a4c68af0a0a43 (patch) | |
tree | 2768ca39e4aa60f1cb1547e0480033910bada3b1 | |
parent | 727c2ccfefb5d8b77316902bce2427b7864be997 (diff) |
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/[email protected]
-rwxr-xr-x | configure | 5 | ||||
-rw-r--r-- | configure.in | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/configure b/configure index 7f2a0a0256a..f315525e4b5 100755 --- a/configure +++ b/configure @@ -14953,6 +14953,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 @@ -14982,6 +14986,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 ab640115fb1..decb070e5b3 100644 --- a/configure.in +++ b/configure.in @@ -1980,6 +1980,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]) @@ -1991,6 +1995,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 |