<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/616bb9fca16e3313f17c6be640464c043d7643f6">https://github.com/macports/macports-legacy-support/commit/616bb9fca16e3313f17c6be640464c043d7643f6</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 616bb9fca16e3313f17c6be640464c043d7643f6
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Thu Nov 14 16:46:03 2024 -0800

<span style='display:block; white-space:pre;color:#404040;'>    sysconf: Cache dlsym() result.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    This avoids repeating the symbol lookup on every call.
</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;'>    Passes tests on all platforms.
</span>---
 src/sysconf.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/sysconf.c b/src/sysconf.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 399ca9c..8c196ab 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/sysconf.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/sysconf.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -33,7 +33,7 @@
</span>  */
 
 long sysconf(int name) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    long (*real_sysconf)(int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    static long (*os_sysconf)(int);
</span> 
 #if __MPLS_LIB_SUPPORT_SYSCONF_NPROCESSORS__
     if ( name == _SC_NPROCESSORS_ONLN ) {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -85,11 +85,14 @@ long sysconf(int name) {
</span> #endif /* __MPLS_LIB_SUPPORT_SYSCONF_PHYS_PAGES__ */
 
     /* for any other values of "name", call the real sysconf() */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    real_sysconf = dlsym(RTLD_NEXT, "sysconf");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if (real_sysconf == NULL) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        exit(EXIT_FAILURE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if (!os_sysconf) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        os_sysconf = dlsym(RTLD_NEXT, "sysconf");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        /* Something's badly broken if this fails */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if (!os_sysconf) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    return real_sysconf(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return (*os_sysconf)(name);
</span> }
 
 /* compatibility function so code does not have to be recompiled */
</pre><pre style='margin:0'>

</pre>