aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2020-11-20 00:58:26 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2020-11-20 00:58:26 -0500
commit5b83604270a6ffc06e8e9406d19b9f2e845b74f9 (patch)
tree3f34b11811fd542aaa8ecfaeb1741f8b8704c24b
parent2ded1f1fbb6e8e2b7927cce93238775604069bc3 (diff)
downloadpostgresql-5b83604270a6ffc06e8e9406d19b9f2e845b74f9.tar.gz
postgresql-5b83604270a6ffc06e8e9406d19b9f2e845b74f9.zip
On macOS, use -isysroot in link steps as well as compile steps.
We previously put the -isysroot switch only into CPPFLAGS, theorizing that it was only needed to find the right copies of include files. However, it seems that we also need to use it while linking programs, to find the right stub ".tbd" files for libraries. We got away without that up to now, but apparently that was mostly luck. It may also be that failures are only observed when the Xcode version is noticeably out of sync with the host macOS version; the case that's prompting action right now is that builds fail when using latest Xcode (12.2) on macOS Catalina, even though it's fine on Big Sur. Hence, add -isysroot to LDFLAGS as well. (It seems that the more common practice is to put it in CFLAGS, whence it'd be included at both compile and link steps. However, we can't mess with CFLAGS in the platform template file without confusing configure's logic for choosing default CFLAGS.) Back-patch of 49407dc32 into all supported branches. Report and patch by James Hilliard (some cosmetic mods by me) Discussion: https://postgr.es/m/20201120003314.20560-1-james.hilliard1@gmail.com
-rwxr-xr-xconfigure2
-rw-r--r--configure.in2
-rw-r--r--src/template/darwin1
3 files changed, 5 insertions, 0 deletions
diff --git a/configure b/configure
index 88497a022a8..2f094716c7c 100755
--- a/configure
+++ b/configure
@@ -19424,8 +19424,10 @@ _ACEOF
# literally, so that it's possible to override it at build time using
# a command like "make ... PG_SYSROOT=path". This has to be done after
# we've finished all configure checks that depend on CPPFLAGS.
+# The same for LDFLAGS, too.
if test x"$PG_SYSROOT" != x; then
CPPFLAGS=`echo "$CPPFLAGS" | sed -e "s| $PG_SYSROOT | \\\$(PG_SYSROOT) |"`
+ LDFLAGS=`echo "$LDFLAGS" | sed -e "s| $PG_SYSROOT | \\\$(PG_SYSROOT) |"`
fi
diff --git a/configure.in b/configure.in
index d7359bf9199..854eba2d3ad 100644
--- a/configure.in
+++ b/configure.in
@@ -2427,8 +2427,10 @@ AC_SUBST(PG_VERSION_NUM)
# literally, so that it's possible to override it at build time using
# a command like "make ... PG_SYSROOT=path". This has to be done after
# we've finished all configure checks that depend on CPPFLAGS.
+# The same for LDFLAGS, too.
if test x"$PG_SYSROOT" != x; then
CPPFLAGS=`echo "$CPPFLAGS" | sed -e "s| $PG_SYSROOT | \\\$(PG_SYSROOT) |"`
+ LDFLAGS=`echo "$LDFLAGS" | sed -e "s| $PG_SYSROOT | \\\$(PG_SYSROOT) |"`
fi
AC_SUBST(PG_SYSROOT)
diff --git a/src/template/darwin b/src/template/darwin
index f4d4e9d7cf8..32414d21a98 100644
--- a/src/template/darwin
+++ b/src/template/darwin
@@ -11,6 +11,7 @@ fi
if test x"$PG_SYSROOT" != x"" ; then
if test -d "$PG_SYSROOT" ; then
CPPFLAGS="-isysroot $PG_SYSROOT $CPPFLAGS"
+ LDFLAGS="-isysroot $PG_SYSROOT $LDFLAGS"
else
PG_SYSROOT=""
fi