Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit19ac2cb

Browse files
committed
Back off using -isysroot on Darwin.
Rethink the solution applied in commit5e22171 to get PL/Tcl tobuild on macOS Mojave. I feared that adding -isysroot globally mighthave undesirable consequences, and sure enough Jakob Egger reportedone: it complicates building extensions with a different Xcode versionthan was used for the core server. (I find that a risky propositionin general, but apparently it works most of the time, so we shouldn'tbreak it if we don't have to.)We'd already adopted the solution for PL/Perl of inserting the sysrootpath directly into the -I switches used to find Perl's headers, and wecan do the same thing for PL/Tcl by changing the -iwithsysroot switchthat Apple's tclConfig.sh reports. This restricts the risks to PL/Perland PL/Tcl themselves and directly-dependent extensions, which is a lotmore pleasing in general than a global -isysroot switch.Along the way, tighten the test to see if we need to inject the sysrootpath into $perl_includedir, as I'd speculated about upthread but notgotten round to doing.As before, back-patch to all supported versions.Discussion:https://postgr.es/m/20840.1537850987@sss.pgh.pa.us
1 parent9d974fa commit19ac2cb

File tree

3 files changed

+18
-7
lines changed

3 files changed

+18
-7
lines changed

‎configure

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7796,7 +7796,7 @@ $as_echo "$perl_useshrplib" >&6; }
77967796
perl_includedir="$perl_archlibexp"
77977797
# ... but on some macOS versions, we must look under $PG_SYSROOT instead
77987798
if test x"$PG_SYSROOT" != x"" ; then
7799-
if test -d "$PG_SYSROOT$perl_archlibexp" ; then
7799+
if test -f "$PG_SYSROOT$perl_archlibexp/CORE/perl.h" ; then
78007800
perl_includedir="$PG_SYSROOT$perl_archlibexp"
78017801
fi
78027802
fi
@@ -30257,7 +30257,12 @@ eval TCL_LIBS=\"$TCL_LIBS\"
3025730257
eval TCL_LIB_SPEC=\"$TCL_LIB_SPEC\"
3025830258
eval TCL_SHARED_BUILD=\"$TCL_SHARED_BUILD\"
3025930259

30260-
# now that we have TCL_INCLUDE_SPEC, we can check for <tcl.h>
30260+
# Some macOS versions report an include spec that uses -iwithsysroot.
30261+
# We don't really want to use -isysroot, so translate that if we can.
30262+
if test x"$PG_SYSROOT" != x"" ; then
30263+
TCL_INCLUDE_SPEC="`echo "$TCL_INCLUDE_SPEC" | sed "s|-iwithsysroot */|-I $PG_SYSROOT/|"`"
30264+
fi
30265+
# now that we have TCL_INCLUDE_SPEC, we can check for <tcl.h>
3026130266
ac_save_CPPFLAGS=$CPPFLAGS
3026230267
CPPFLAGS="$TCL_INCLUDE_SPEC $CPPFLAGS"
3026330268
if test "${ac_cv_header_tcl_h+set}" = set; then

‎configure.in

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -884,7 +884,7 @@ if test "$with_perl" = yes; then
884884
perl_includedir="$perl_archlibexp"
885885
# ... but on some macOS versions, we must look under $PG_SYSROOT instead
886886
if test x"$PG_SYSROOT" != x"" ; then
887-
if test -d "$PG_SYSROOT$perl_archlibexp" ; then
887+
if test -f "$PG_SYSROOT$perl_archlibexp/CORE/perl.h" ; then
888888
perl_includedir="$PG_SYSROOT$perl_archlibexp"
889889
fi
890890
fi
@@ -1891,6 +1891,11 @@ if test "$with_tcl" = yes; then
18911891
PGAC_EVAL_TCLCONFIGSH([$TCL_CONFIG_SH],
18921892
[TCL_INCLUDE_SPEC,TCL_LIB_FILE,TCL_LIBS,TCL_LIB_SPEC,TCL_SHARED_BUILD])
18931893
AC_SUBST(TCL_SHLIB_LD_LIBS)dnl don't want to double-evaluate that one
1894+
# Some macOS versions report an include spec that uses -iwithsysroot.
1895+
# We don't really want to use -isysroot, so translate that if we can.
1896+
if test x"$PG_SYSROOT" != x"" ; then
1897+
TCL_INCLUDE_SPEC="`echo "$TCL_INCLUDE_SPEC" | sed "s|-iwithsysroot */|-I $PG_SYSROOT/|"`"
1898+
fi
18941899
# now that we have TCL_INCLUDE_SPEC, we can check for <tcl.h>
18951900
ac_save_CPPFLAGS=$CPPFLAGS
18961901
CPPFLAGS="$TCL_INCLUDE_SPEC $CPPFLAGS"

‎src/template/darwin

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
# Note: Darwin is the original code name for macOS, also known as OS X.
44
# We still use "darwin" as the port name, partly because config.guess does.
55

6-
# Select where system include files should be sought.
6+
# Select where some include files should be sought.
7+
# We may eventually be forced to use "-isysroot" with this value,
8+
# but for now, it only affects Perl and Tcl include files.
79
if test x"$PG_SYSROOT" = x"" ; then
810
PG_SYSROOT=`xcodebuild -version -sdk macosx Path 2>/dev/null`
911
fi
12+
# Old xcodebuild versions may produce garbage, so validate the result.
1013
if test x"$PG_SYSROOT" != x"" ; then
11-
if test -d "$PG_SYSROOT" ; then
12-
CPPFLAGS="$CPPFLAGS -isysroot $PG_SYSROOT"
13-
else
14+
if test \! -d "$PG_SYSROOT" ; then
1415
PG_SYSROOT=""
1516
fi
1617
fi

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp