<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/418b9bfe008909f01e2a79e10597cc49e9a6a8f8">https://github.com/macports/macports-legacy-support/commit/418b9bfe008909f01e2a79e10597cc49e9a6a8f8</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 418b9bf sysconf(_SC_PHYS_PAGES): Always use wrapper on i386
</span>418b9bf is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 418b9bfe008909f01e2a79e10597cc49e9a6a8f8
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Sun Mar 17 13:36:11 2024 -0700
<span style='display:block; white-space:pre;color:#404040;'> sysconf(_SC_PHYS_PAGES): Always use wrapper on i386
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Apple's implementation of sysconf(_SC_PHYS_PAGES) never worked on
</span><span style='display:block; white-space:pre;color:#404040;'> i386. It wasn't provided until 10.11, which requires x86_64, so the
</span><span style='display:block; white-space:pre;color:#404040;'> problem is never seen in ordinary native builds. It is visible in
</span><span style='display:block; white-space:pre;color:#404040;'> i386 builds for 10.11+, including universal builds with i386. Since
</span><span style='display:block; white-space:pre;color:#404040;'> MacPorts dropped i386 from the default universal_archs in 10.14, it's
</span><span style='display:block; white-space:pre;color:#404040;'> not normally seen in 10.14+. It can be seen in the test failures in
</span><span style='display:block; white-space:pre;color:#404040;'> the 10.11-10.13 +universal cases.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> The fix is simply to use the working legacy-support implementation in
</span><span style='display:block; white-space:pre;color:#404040;'> all i386 builds, regardless of OS version.
</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 (x86_64 Rosetta), 10.4-10.6
</span><span style='display:block; white-space:pre;color:#404040;'> i386, 10.4-12.x x86_64, and 11.x-14.x arm64.
</span><span style='display:block; white-space:pre;color:#404040;'> Builds on all tested platforms except 10.4 ppc +universal, and passes
</span><span style='display:block; white-space:pre;color:#404040;'> all tests in all buildable cases, including the previously failing
</span><span style='display:block; white-space:pre;color:#404040;'> 10.11-10.13 +universal tests.
</span>---
include/MacportsLegacySupport.h | 5 +++--
include/unistd.h | 5 ++++-
2 files changed, 7 insertions(+), 3 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/include/MacportsLegacySupport.h b/include/MacportsLegacySupport.h
</span><span style='display:block; white-space:pre;color:#808080;'>index e363782..3cebefd 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/include/MacportsLegacySupport.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/include/MacportsLegacySupport.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -121,8 +121,9 @@
</span> /* sys/aio.h header needs adjustment to match newer SDKs */
#define __MP_LEGACY_SUPPORT_SYSAIOTIGERFIX__ (__APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1050)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-/* sysconf() is missing some functions on some systems */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __MP_LEGACY_SUPPORT_SYSCONF_WRAP__ (__APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 101100)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/* sysconf() is missing some functions on some systems, and may misbehave on i386 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __MP_LEGACY_SUPPORT_SYSCONF_WRAP__ (__APPLE__ && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 101100 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || defined(__i386)))
</span>
/* pthread_rwlock_initializer is not defined on Tiger */
#define __MP_LEGACY_SUPPORT_PTHREAD_RWLOCK__ (__APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1050)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/include/unistd.h b/include/unistd.h
</span><span style='display:block; white-space:pre;color:#808080;'>index ca4be0e..a8b1672 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/include/unistd.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/include/unistd.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -92,10 +92,13 @@
</span> #define __MP_LEGACY_SUPPORT_SYSCONF_WRAP_NEED_SC_NPROCESSORS_ONLN__ 1
#endif
<span style='display:block; white-space:pre;background:#e0ffe0;'>+/* The OS-provided version of this item doesn't work properly on i386 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if !defined(_SC_PHYS_PAGES) || defined (__i386__)
</span> #ifndef _SC_PHYS_PAGES
#define _SC_PHYS_PAGES 200
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __MP_LEGACY_SUPPORT_SYSCONF_WRAP_NEED_SC_PHYS_PAGES__ 1
</span> #endif
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __MP_LEGACY_SUPPORT_SYSCONF_WRAP_NEED_SC_PHYS_PAGES__ 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* !defined(_SC_PHYS_PAGES) || defined (__i386__) */
</span>
#if __MP_LEGACY_SUPPORT_FSETATTRLIST__
</pre><pre style='margin:0'>
</pre>