<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-legacy-support.

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/0e7c7718033057d410fbd09bc22297e0a1f69300">https://github.com/macports/macports-legacy-support/commit/0e7c7718033057d410fbd09bc22297e0a1f69300</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 0e7c7718033057d410fbd09bc22297e0a1f69300
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Sat Jun 8 13:18:01 2024 -0700

<span style='display:block; white-space:pre;color:#404040;'>    Fix 10.6- builds with 14.x+ SDKs.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Beginning with the 14.x SDK, AvailabilityInternal.h uses the
</span><span style='display:block; white-space:pre;color:#404040;'>    __has_builtin() operator.  Although it includes a defined() condition,
</span><span style='display:block; white-space:pre;color:#404040;'>    that doesn't actually work because the operator needs to be parseable
</span><span style='display:block; white-space:pre;color:#404040;'>    before evaluating the boolean.  So we provide a default (always false)
</span><span style='display:block; white-space:pre;color:#404040;'>    definition when the compiler doesn't have it.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Re: https://trac.macports.org/ticket/69867
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    TESTED:
</span><span style='display:block; white-space:pre;color:#404040;'>    Tested on 10.4-10.5 ppc, 10.5-10.6 ppc (i386 Rosetta), 10.4-10.6 i386,
</span><span style='display:block; white-space:pre;color:#404040;'>    10.5-12.x x86_64, and 11.x-14.x arm64.  Tested against all 10.4-14.x
</span><span style='display:block; white-space:pre;color:#404040;'>    SDKs, using the headerinfo manual test (from a subsequent commit).
</span><span style='display:block; white-space:pre;color:#404040;'>    All target/SDK combinations where the SDK supports the CPU
</span><span style='display:block; white-space:pre;color:#404040;'>    architecture work correctly, including all SDKs on Intel
</span><span style='display:block; white-space:pre;color:#404040;'>    architectures.  Only 10.4-10.6 SDKs support ppc, and only 11.x+ SDKs
</span><span style='display:block; white-space:pre;color:#404040;'>    support arm64.
</span>---
 include/AvailabilityInternal.h        | 10 ++++++++++
 include/_macports_extras/sdkversion.h | 10 ++++++++++
 manual_tests/headerinfo.c             |  5 +++++
 3 files changed, 25 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/include/AvailabilityInternal.h b/include/AvailabilityInternal.h
</span><span style='display:block; white-space:pre;color:#808080;'>index 0f29008..e2166ad 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/include/AvailabilityInternal.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/include/AvailabilityInternal.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,6 +27,12 @@
</span>  * without checking.  It would probably be OK to do this for all SDKs,
  * but for safety we limit it to the relevant cases.  Note that this has
  * to be done *before* the include_next.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * A similar issue exists with __has_builtin() in the 14.x+ SDK.  In this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * case, the offending code attempts to handle the missing feature by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * including a defined() condition, but that doesn't actually work because
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * the intrinsic needs to be parseable before evaluating the boolean.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * So we again provide a default when needed.
</span>  */
 
 /* Do our SDK-related setup */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -36,6 +42,10 @@
</span> #define __has_include(x) 0
 #endif
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#if !__MPLS_PRE_14_0_SDK && !defined(__has_builtin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __has_builtin(x) 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> #if __MPLS_PRE_10_5_SDK
 #include <_macports_extras/tiger_only/AvailabilityInternal.h>
 #else
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/include/_macports_extras/sdkversion.h b/include/_macports_extras/sdkversion.h
</span><span style='display:block; white-space:pre;color:#808080;'>index 342caf3..bad2218 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/include/_macports_extras/sdkversion.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/include/_macports_extras/sdkversion.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -105,6 +105,12 @@
</span> #define __MPLS_PRE_10_14_SDK 0
 #endif
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#if MAC_OS_X_VERSION_MAX_ALLOWED < 140000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __MPLS_PRE_14_0_SDK 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __MPLS_PRE_14_0_SDK 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> /* Then correct our munging, if necessary */
 
 #ifdef __MPLS_NEED_MIN_REQUIRED_FIXUP
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -140,6 +146,10 @@
</span> #define __MPLS_PRE_10_14_SDK 0
 #endif
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifndef __MPLS_PRE_14_0_SDK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __MPLS_PRE_14_0_SDK 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> #endif /* !__APPLE__ */
 
 #endif /* _MACPORTS_SDKVERSION_H_ */
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/manual_tests/headerinfo.c b/manual_tests/headerinfo.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 1617444..dff99df 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/manual_tests/headerinfo.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/manual_tests/headerinfo.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -69,6 +69,11 @@ print_defs(void)
</span>   #else
   PRINT_UNDEF(__MPLS_PRE_10_14_SDK);
   #endif
<span style='display:block; white-space:pre;background:#e0ffe0;'>+  #ifdef __MPLS_PRE_14_0_SDK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  PRINT_VAR(__MPLS_PRE_14_0_SDK);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  PRINT_UNDEF(__MPLS_PRE_14_0_SDK);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #endif
</span> }
 
 /* Do this afterward, since it might influence the definitions. */
</pre><pre style='margin:0'>

</pre>