<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>