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

<span style='display:block; white-space:pre;color:#404040;'>    test_scandir: Add version with 64-bit inodes.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Also fixes 32-bit wrapper to use proper config flag, and to disable it
</span><span style='display:block; white-space:pre;color:#404040;'>    on arm64, where it doesn't work.
</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 on all platforms with all applicable SDKs.
</span>---
 Makefile                   |  8 ++++++++
 xtest/test_scandir_ino32.c | 24 +++++++++++++++++++++---
 xtest/test_scandir_ino64.c | 32 ++++++++++++++++++++++++++++++++
 3 files changed, 61 insertions(+), 3 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/Makefile b/Makefile
</span><span style='display:block; white-space:pre;color:#808080;'>index 53958d5..08dd7e8 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/Makefile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/Makefile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,6 +143,9 @@ XTESTRUNS        := $(patsubst $(XTESTNAMEPREFIX)%,$(XTESTRUNPREFIX)%,$(XTESTPRG
</span> DARWINSRCS_C    := $(wildcard $(XTESTNAMEPREFIX)darwin_c*.c)
 DARWINRUNS      := $(patsubst \
                      $(XTESTNAMEPREFIX)%.c,$(XTESTRUNPREFIX)%,$(DARWINSRCS_C))
<span style='display:block; white-space:pre;background:#e0ffe0;'>+SCANDIRSRCS_C   := $(wildcard $(XTESTNAMEPREFIX)scandir*.c)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SCANDIRRUNS     := $(patsubst \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     $(XTESTNAMEPREFIX)%.c,$(XTESTRUNPREFIX)%,$(SCANDIRSRCS_C))
</span> 
 # Normal automatic tests
 TESTDIR          = test
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -465,6 +468,7 @@ $(XTESTNAMEPREFIX)darwin_c_full.o: $(XTESTNAMEPREFIX)darwin_c.c
</span> # The "scandir_*" tests include the basic "scandir" source
 $(XTESTNAMEPREFIX)scandir_old.o: $(XTESTNAMEPREFIX)scandir.c
 $(XTESTNAMEPREFIX)scandir_ino32.o: $(XTESTNAMEPREFIX)scandir.c
<span style='display:block; white-space:pre;background:#e0ffe0;'>+$(XTESTNAMEPREFIX)scandir_ino64.o: $(XTESTNAMEPREFIX)scandir.c
</span> 
 # The nonstandard realpath tests include the realpath source
 $(TESTNAMEPREFIX)realpath_nonext.o: $(TESTNAMEPREFIX)realpath.c
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -474,6 +478,9 @@ $(TESTNAMEPREFIX)realpath_compat.o: $(TESTNAMEPREFIX)realpath.c
</span> # Provide a target for all "darwin_c" tests
 $(XTESTRUNPREFIX)darwin_c_all: $(DARWINRUNS)
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Provide a target for all "scandir" tests
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(XTESTRUNPREFIX)scandir_all: $(SCANDIRRUNS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Provide a target for all "realpath" tests
 $(TESTRUNPREFIX)realpath_all: $(REALPATHRUNS)
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -536,6 +543,7 @@ clean: $(MANRUNPREFIX)clean test_clean
</span> .PHONY: test_static test_syslib test_all
 .PHONY: $(TESTRUNS) $(XTESTRUNS) $(MANTESTRUNS)
 .PHONY: $(MANRUNPREFIX)clean test_clean xtest_clean
<span style='display:block; white-space:pre;background:#e0ffe0;'>+.PHONY: $(XTESTRUNPREFIX)scandir_all
</span> .PHONY: install install-headers install-lib install-dlib install-slib
 .PHONY: tiger-bins install-tiger
 .PHONY: allobjs dlibobjs slibobjs syslibobjs
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/xtest/test_scandir_ino32.c b/xtest/test_scandir_ino32.c
</span><span style='display:block; white-space:pre;color:#808080;'>index f0461b8..39952d4 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/xtest/test_scandir_ino32.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/xtest/test_scandir_ino32.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,8 +1,26 @@
</span> /*
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * Version of test_scandir with 32-bit inodes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Version of test_scandir with 32-bit inodes (if possible).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * This doesn't work on arm64.
</span>  */
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DARWIN_64_BIT_INO_T 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __DARWIN_ONLY_64_BIT_INO_T 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if defined(__arm64__) && __arm64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <libgen.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+main(int argc, char *argv[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  (void) argc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  printf("%s doesn't work on arm64.\n", basename(argv[0]));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else /* !arm64 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define _DARWIN_NO_64_BIT_INODE 1
</span> 
 #include "test_scandir.c"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* !arm64 */
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/xtest/test_scandir_ino64.c b/xtest/test_scandir_ino64.c
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..227497a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/xtest/test_scandir_ino64.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,32 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Version of test_scandir with 64-bit inodes (if possible).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * This is primarily for 10.5, where 64-bit inodes are supported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * but not the default.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Currently, 64-bit inodes don't work on 10.4.  Although requesting
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * 64-bit inode support is ignored by the 10.4 SDK, it can work when
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * building with a 10.5+ SDK, so we explicitly disable it here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if !defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    || __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <libgen.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+main(int argc, char *argv[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  (void) argc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  printf("%s doesn't work on 10.4.\n", basename(argv[0]));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else /* >= 10.5 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define _DARWIN_USE_64_BIT_INODE 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "test_scandir.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* >= 10.5 */
</span></pre><pre style='margin:0'>

</pre>