aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2018-11-02 18:54:00 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2018-11-02 18:54:00 -0400
commit1440c461f7ea665b7e743aa636aa6adafa5c6fc6 (patch)
tree51a808056a3201fc0f72cb940d75f6e630ad1a12 /src
parent1ce4a807e25bcd726e34b8d3ba0338e9299f9a87 (diff)
downloadpostgresql-1440c461f7ea665b7e743aa636aa6adafa5c6fc6.tar.gz
postgresql-1440c461f7ea665b7e743aa636aa6adafa5c6fc6.zip
Yet further rethinking of build changes for macOS Mojave.
The solution arrived at in commit e74dd00f5 presumes that the compiler has a suitable default -isysroot setting ... but further experience shows that in many combinations of macOS version, XCode version, Xcode command line tools version, and phase of the moon, Apple's compiler will *not* supply a default -isysroot value. We could potentially go back to the approach used in commit 68fc227dd, but I don't have a lot of faith in the reliability or life expectancy of that either. Let's just revert to the approach already shipped in 11.0, namely specifying an -isysroot switch globally. As a partial response to the concerns raised by Jakob Egger, adjust the contents of Makefile.global to look like CPPFLAGS = -isysroot $(PG_SYSROOT) ... PG_SYSROOT = /path/to/sysroot This allows overriding the sysroot path at build time in a relatively painless way. Add documentation to installation.sgml about how to use the PG_SYSROOT option. I also took the opportunity to document how to work around macOS's "System Integrity Protection" feature. As before, back-patch to all supported versions. Discussion: https://postgr.es/m/20840.1537850987@sss.pgh.pa.us
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.global.in1
-rw-r--r--src/template/darwin7
2 files changed, 5 insertions, 3 deletions
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index bdf394bb38c..218c65a7883 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -241,6 +241,7 @@ BITCODE_CXXFLAGS = @BITCODE_CXXFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+PG_SYSROOT = @PG_SYSROOT@
override CPPFLAGS := $(ICU_CFLAGS) $(CPPFLAGS)
diff --git a/src/template/darwin b/src/template/darwin
index 159d8bb1275..c05adca0bfb 100644
--- a/src/template/darwin
+++ b/src/template/darwin
@@ -3,14 +3,15 @@
# Note: Darwin is the original code name for macOS, also known as OS X.
# We still use "darwin" as the port name, partly because config.guess does.
-# Some configure tests require explicit knowledge of where the Xcode "sysroot"
-# is. We try to avoid having this leak into configure's results, though.
+# Select where system include files should be sought.
if test x"$PG_SYSROOT" = x"" ; then
PG_SYSROOT=`xcodebuild -version -sdk macosx Path 2>/dev/null`
fi
# Old xcodebuild versions may produce garbage, so validate the result.
if test x"$PG_SYSROOT" != x"" ; then
- if test \! -d "$PG_SYSROOT" ; then
+ if test -d "$PG_SYSROOT" ; then
+ CPPFLAGS="-isysroot $PG_SYSROOT $CPPFLAGS"
+ else
PG_SYSROOT=""
fi
fi