0001-meson-Fix-Perl-include-dir-detection.patch

text/plain

Filename: 0001-meson-Fix-Perl-include-dir-detection.patch
Type: text/plain
Part: 0
Message: Re: [RFC] building postgres with meson -v8

Patch

Format: format-patch
Series: patch 0001
Subject: meson: Fix Perl include dir detection
File+
meson.build 7 5
From fd05ad3f1582884aef2db162c2c7ba4897299078 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Wed, 11 May 2022 11:08:07 +0200
Subject: [PATCH 1/9] meson: Fix Perl include dir detection

Only use -iwithsysroot if required.  This aligns with the logic in
configure.ac.
---
 meson.build | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/meson.build b/meson.build
index 5f8165df9c..7958e8eb19 100644
--- a/meson.build
+++ b/meson.build
@@ -591,8 +591,6 @@ else
 
     perl_inc_dir = '@0@/CORE'.format(archlibexp)
 
-    perl_ccflags = []
-
     if useshrplib != 'true'
       perl_may_work = false
       perl_msg = 'need a shared perl'
@@ -606,9 +604,13 @@ else
   # et al seeing them. So we can't use include_directories(), as that checks
   # file existence.
   if perl_may_work
-    perl_ccflags += ['-I@0@'.format(perl_inc_dir)]
-    if host_machine.system() == 'darwin'
-      perl_ccflags += ['-iwithsysroot', perl_inc_dir]
+    # On most platforms, archlibexp is also where the Perl include files live ...
+    perl_ccflags = ['-I@0@'.format(perl_inc_dir)]
+    # ... but on newer macOS versions, we must use -iwithsysroot to look
+    # under sysroot
+    if not fs.is_file('@0@/perl.h'.format(perl_inc_dir)) and \
+       fs.is_file('@0@@1@/perl.h'.format(sysroot, perl_inc_dir))
+      perl_ccflags = ['-iwithsysroot', perl_inc_dir]
     endif
   endif
 
-- 
2.35.1