Back off using -isysroot on Darwin

Enterprise / PostgreSQL - Tom Lane [sss.pgh.pa.us] - 16 October 2018 20:27 EDT

Rethink the solution applied in commit 5e2217131 to get PL/Tcl to build on macOS Mojave. I feared that adding -isysroot globally might have undesirable consequences, and sure enough Jakob Egger reported one: it complicates building extensions with a different Xcode version than was used for the core server. (I find that a risky proposition in general, but apparently it works most of the time, so we shouldn't break it if we don't have to.)

We'd already adopted the solution for PL/Perl of inserting the sysroot path directly into the -I switches used to find Perl's headers, and we can do the same thing for PL/Tcl by changing the -iwithsysroot switch that Apple's tclConfig.sh reports. This restricts the risks to PL/Perl and PL/Tcl themselves and directly-dependent extensions, which is a lot more pleasing in general than a global -isysroot switch.

Along the way, tighten the test to see if we need to inject the sysroot path into $perl_includedir, as I'd speculated about upthread but not gotten round to doing.

As before, back-patch to all supported versions.

Discussion: https://postgr.es/m/20840.1537850987@sss.pgh.pa.us

68fc227dd0 Back off using -isysroot on Darwin.
configure | 7 ++++++-
configure.in | 7 ++++++-
src/template/darwin | 9 +++++----
3 files changed, 17 insertions(+), 6 deletions(-)

Upstream: git.postgresql.org


  • Share