Re: PG vs macOS Mojave

Jakob Egger <jakob@eggerapps.at>

From: Jakob Egger <jakob@eggerapps.at>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2018-10-17T12:11:04Z
Lists: pgsql-hackers
Am 16. Okt. 2018 um 17:13 schrieb Tom Lane <tgl@sss.pgh.pa.us>:
> Oh, well *this* is interesting.  I stated at the top of this thread that
> pltcl doesn't build on Mojave without -isysroot because TCL_INCLUDE_SPEC
> gets set to
> 	-iwithsysroot /System/Library/Frameworks/Tcl.framework/Versions/8.5/Headers

> Now, I would swear that I tested that before, and it didn't work;
> but I think I might have been testing the combination of Xcode 10 on
> High Sierra.  It definitely works with Xcode 10 on Mojave.  I no longer
> have a High Sierra installation to recheck the original observation on.

I realised that I can disable PG_SYSROOT by providing a non-existing dir name,
so I've done some testing to try to reproduce your original issue.

I've tested building the PG 11.0 tarball on the following systems:

macOS 10.13 with Xcode 9.4.1
macOS 10.13 with Xcode 10.0
macOS 10.14 with Xcode 10.0

On macOS 10.13 the following worked fine both for Xcode 9 and 10:
PG_SYSROOT=no-sysroot ./configure --with-tcl

On macOS 10.14 the above failed because it didn't find tclConfig.sh.
The following did work:
PG_SYSROOT=no-sysroot ./configure --with-tcl --with-tclconfig=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tcl.framework

So it seems that providing -isysroot is not actually necessary for building --with-tcl.
clang finds the headers just fine.

Is it possible that you were using a different compiler that made the -isysroot setting necessary?

In any case, I'm pretty sure that your patch should fix my problem with building extensions.

For Postgres.app, since I'm building on macOS 10.12, I think I will just use the PG_SYSROOT=no-sysroot trick for now.

Best regards,
Jakob