mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Further tweaking of PG_SYSROOT heuristics for macOS.
It emerges that in some phases of the moon (perhaps to do with directory entry order?), xcrun will report that the SDK path is /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk which is normally a symlink to a version-numbered sibling directory. Our heuristic to skip non-version-numbered pathnames was rejecting that, which is the wrong thing to do. We'd still like to end up with a version-numbered PG_SYSROOT value, but we can have that by dereferencing the symlink. Like the previous fix, back-patch to all supported versions. Discussion: https://postgr.es/m/522433.1611089678@sss.pgh.pa.us
This commit is contained in:
		@@ -7,13 +7,20 @@
 | 
			
		||||
if test x"$PG_SYSROOT" = x"" ; then
 | 
			
		||||
  # This is far more complicated than it ought to be.  We first ask
 | 
			
		||||
  # "xcrun --show-sdk-path", which seems to match the default -isysroot
 | 
			
		||||
  # setting of Apple's compilers.  However, that may produce no result or
 | 
			
		||||
  # a result that is not version-specific (i.e., just ".../SDKs/MacOSX.sdk").
 | 
			
		||||
  # Using a version-specific sysroot seems desirable, so if there are not
 | 
			
		||||
  # digits in the directory name, try "xcrun --sdk macosx --show-sdk-path";
 | 
			
		||||
  # and if that still doesn't work, fall back to asking xcodebuild,
 | 
			
		||||
  # which is often a good deal slower.
 | 
			
		||||
  # setting of Apple's compilers.
 | 
			
		||||
  PG_SYSROOT=`xcrun --show-sdk-path 2>/dev/null`
 | 
			
		||||
  # That may fail, or produce a result that is not version-specific (i.e.,
 | 
			
		||||
  # just ".../SDKs/MacOSX.sdk").  Using a version-specific sysroot seems
 | 
			
		||||
  # desirable, so if the path is a non-version-specific symlink, expand it.
 | 
			
		||||
  if test -L "$PG_SYSROOT"; then
 | 
			
		||||
    if expr x"$PG_SYSROOT" : '.*[0-9]\.[0-9][^/]*$' >/dev/null ; then : okay
 | 
			
		||||
    else
 | 
			
		||||
      PG_SYSROOT=`expr "$PG_SYSROOT" : '\(.*\)/'`/`readlink "$PG_SYSROOT"`
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
  # If there are still not digits in the directory name, try
 | 
			
		||||
  # "xcrun --sdk macosx --show-sdk-path"; and if that still doesn't work,
 | 
			
		||||
  # fall back to asking xcodebuild, which is often a good deal slower.
 | 
			
		||||
  if expr x"$PG_SYSROOT" : '.*[0-9]\.[0-9][^/]*$' >/dev/null ; then : okay
 | 
			
		||||
  else
 | 
			
		||||
    PG_SYSROOT=`xcrun --sdk macosx --show-sdk-path 2>/dev/null`
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user