<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch sysconf-wrap-always-defined
in repository macports-legacy-support.

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/b0da4187ac844c30b1016a4c766be205bb96d48c">https://github.com/macports/macports-legacy-support/commit/b0da4187ac844c30b1016a4c766be205bb96d48c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit b0da4187ac844c30b1016a4c766be205bb96d48c
</span>Author: Chris Jones <jonesc@hep.phy.cam.ac.uk>
AuthorDate: Tue Oct 26 07:38:20 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    macports_legacy_ wrappers. Ensure symbols are always available in libraries, even if they just wrap the system calls
</span>---
 src/macports_legacy_realpath.c | 16 +++++++++-------
 src/macports_legacy_sysconf.c  | 38 ++++++++++++++++++++++----------------
 2 files changed, 31 insertions(+), 23 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports_legacy_realpath.c b/src/macports_legacy_realpath.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 842791c..03b7e91 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports_legacy_realpath.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports_legacy_realpath.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -17,6 +17,9 @@
</span> /* MP support header */
 #include "MacportsLegacySupport.h"
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <limits.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> /* realpath wrap */
 #if __MP_LEGACY_SUPPORT_REALPATH_WRAP__
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,21 +27,20 @@
</span> #undef __DISABLE_MP_LEGACY_SUPPORT_REALPATH_WRAP__
 #define __DISABLE_MP_LEGACY_SUPPORT_REALPATH_WRAP__ 1
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#include <limits.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /*__MP_LEGACY_SUPPORT_REALPATH_WRAP__*/
</span> 
 char *
 __MP_LEGACY_WRAPPER(realpath)(const char * __restrict stringsearch, char * __restrict buffer)
 {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if (buffer == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if __MP_LEGACY_SUPPORT_REALPATH_WRAP__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if ( NULL == buffer ) {
</span>         char *myrealpathbuf = malloc(PATH_MAX);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if (myrealpathbuf != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if ( NULL != myrealpathbuf ) {
</span>             return(realpath(stringsearch, myrealpathbuf));
         } else {
             return(NULL);
         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return(realpath(stringsearch, buffer));
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span> #endif /*__MP_LEGACY_SUPPORT_REALPATH_WRAP__*/
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    return(realpath(stringsearch, buffer));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports_legacy_sysconf.c b/src/macports_legacy_sysconf.c
</span><span style='display:block; white-space:pre;color:#808080;'>index aecaf47..b33ad1b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports_legacy_sysconf.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports_legacy_sysconf.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -17,6 +17,8 @@
</span> /* MP support header */
 #include "MacportsLegacySupport.h"
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> /* sysconf wrap, 10.4 */
 #if __MP_LEGACY_SUPPORT_SYSCONF_WRAP__
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,28 +26,31 @@
</span> #undef __DISABLE_MP_LEGACY_SUPPORT_SYSCONF_WRAP__
 #define __DISABLE_MP_LEGACY_SUPPORT_SYSCONF_WRAP__ 1
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> #include <sys/types.h>
 #include <sys/sysctl.h>
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#include <unistd.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* emulate several commonly used but missing selectors from sysconf() on various OS versions */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> #include <MacportsLegacyWrappers/sysconf_support.h>
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-long __MP_LEGACY_WRAPPER(sysconf)(int name){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /*__MP_LEGACY_SUPPORT_SYSCONF_WRAP__*/
</span> 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+/* Note we intentionally always define this symbol, even on systems where
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   it does nothing other than wrap sysconf */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long __MP_LEGACY_WRAPPER(sysconf)(int name) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/* emulate several commonly used but missing selectors from sysconf() on various OS versions */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if __MP_LEGACY_SUPPORT_SYSCONF_WRAP__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  
</span> #if __MP_LEGACY_SUPPORT_SYSCONF_WRAP_NEED_SC_NPROCESSORS_ONLN__
     if ( name == _SC_NPROCESSORS_ONLN ) {
 
         int nm[2];
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        int ret;
</span>         size_t len = 4;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        uint32_t count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        uint32_t count = 0;
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        nm[0] = CTL_HW; nm[1] = HW_AVAILCPU;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ret = sysctl(nm, 2, &count, &len, NULL, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        nm[0] = CTL_HW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   nm[1] = HW_AVAILCPU;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        int ret = sysctl(nm, 2, &count, &len, NULL, 0);
</span> 
         if (ret < 0 || count < 1) {
             /* try again with _SC_NPROCESSORS_CONF */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,12 +65,13 @@ long __MP_LEGACY_WRAPPER(sysconf)(int name){
</span>     if ( name == _SC_NPROCESSORS_CONF ) {
 
         int nm[2];
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        int ret;
</span>         size_t len = 4;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        uint32_t count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        uint32_t count = 0;
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        nm[0] = CTL_HW; nm[1] = HW_NCPU;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ret = sysctl(nm, 2, &count, &len, NULL, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        nm[0] = CTL_HW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   nm[1] = HW_NCPU;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        int ret = sysctl(nm, 2, &count, &len, NULL, 0);
</span> 
         /* there has to be at least 1 processor */
         if (ret < 0 || count < 1) { count = 1; }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -88,9 +94,9 @@ long __MP_LEGACY_WRAPPER(sysconf)(int name){
</span>     }
 #endif
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /*__MP_LEGACY_SUPPORT_SYSCONF_WRAP__*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     /* for any other values of "name", call the real sysconf() */
       return (long)sysconf(name);
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#endif /*__MP_LEGACY_SUPPORT_SYSCONF_WRAP__*/
</span></pre><pre style='margin:0'>

</pre>