postgres.git / summary / log / commit / refs
commit 328b81348cc87e2fbcbe5980619a565604343949
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 68e85ec4326..37ac1822b29 100755
--- a/configure
+++ b/configure
@@ -16348,6 +16348,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
@@ -16377,6 +16381,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 1721cdb7bbd..7095a3c8181 100644
--- a/configure.in
+++ b/configure.in
@@ -2151,6 +2151,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])
@@ -2162,6 +2166,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: e167b1ae37ad]