<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-legacy-support.

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/78a441678ae3de6988d6bf45b422d17fa1c31e96">https://github.com/macports/macports-legacy-support/commit/78a441678ae3de6988d6bf45b422d17fa1c31e96</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 78a441678ae3de6988d6bf45b422d17fa1c31e96
</span>Author: Mihai Moldovan <ionic@ionic.de>
AuthorDate: Tue Oct 8 01:57:09 2019 +0200

<span style='display:block; white-space:pre;color:#404040;'>    Makefile: compile fdopendir multiple times to create variations.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    We want:
</span><span style='display:block; white-space:pre;color:#404040;'>      - _fdopendir (32-bit struct stat)
</span><span style='display:block; white-space:pre;color:#404040;'>      - _fdopendir$UNIX2003 (32-bit struct stat, SUS/UNIX conformance)
</span><span style='display:block; white-space:pre;color:#404040;'>                            (not on x86_64 or ppc64)
</span><span style='display:block; white-space:pre;color:#404040;'>      - _fdopendir$INODE64 (64-bit struct stat) (not on i386 or ppc or 10.4-)
</span><span style='display:block; white-space:pre;color:#404040;'>      - _fdopendir$INODE64$UNIX2003 (64-bit struct stat with UNIX/SUS-conformance)
</span><span style='display:block; white-space:pre;color:#404040;'>                                    (not on x86_64 or ppc64 or 10.4-)
</span>---
 Makefile | 31 ++++++++++++++++++++++++++++---
 1 file changed, 28 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 94c00f0..08a2106 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;'>@@ -70,11 +70,14 @@ FIND_LIBHEADERS := find $(SRCINCDIR) -type f \( -name '*.h' -o \
</span>                                              \( -name 'c*' ! -name '*.*' \) \)
 LIBHEADERS      := $(shell $(FIND_LIBHEADERS))
 ALLHEADERS      := $(LIBHEADERS) $(wildcard $(SRCDIR)/*.h)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-LIBSRCS         := $(wildcard $(SRCDIR)/*.c)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MULTISRCS       := $(SRCDIR)/fdopendir.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+LIBSRCS         := $(filter-out $(MULTISRCS),$(wildcard $(SRCDIR)/*.c))
</span> DLIBOBJEXT       = .dl.o
 SLIBOBJEXT       = .o
 DLIBOBJS        := $(patsubst %.c,%$(DLIBOBJEXT),$(LIBSRCS))
<span style='display:block; white-space:pre;background:#e0ffe0;'>+MULTIDLIBOBJS   := $(patsubst %.c,%$(DLIBOBJEXT),$(MULTISRCS))
</span> SLIBOBJS        := $(patsubst %.c,%$(SLIBOBJEXT),$(LIBSRCS))
<span style='display:block; white-space:pre;background:#e0ffe0;'>+MULTISLIBOBJS   := $(patsubst %.c,%$(SLIBOBJEXT),$(MULTISRCS))
</span> 
 TESTDIR          = test
 TESTNAMEPREFIX   = $(TESTDIR)/test_
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -192,6 +195,28 @@ all: dlib slib
</span> dlib: $(BUILDDLIBPATH)
 slib: $(BUILDSLIBPATH)
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Special rules for special implementations.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# For instance, functions using struct stat need to be implemented multiple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# times with different stat structs - a 32-bit-inode based one and a 64-bit-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# inode-based one.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(MULTIDLIBOBJS): %$(DLIBOBJEXT): %.c $(ALLHEADERS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Generate possibly multi-architecture object files ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) -c -I$(SRCINCDIR) $(CFLAGS) $(DLIBCFLAGS) -D__DARWIN_UNIX03=0 -D__DARWIN_64_BIT_INO_T=0 -D__DARWIN_ONLY_64_BIT_INO_T=0 $< -o $@.inode32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) -c -I$(SRCINCDIR) $(CFLAGS) $(DLIBCFLAGS) -D__DARWIN_UNIX03=1 -D__DARWIN_ONLY_UNIX_CONFORMANCE=0 -D__DARWIN_64_BIT_INO_T=0 -D__DARWIN_ONLY_64_BIT_INO_T=0 $< -o $@.inode32unix2003
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) -c -I$(SRCINCDIR) $(CFLAGS) $(DLIBCFLAGS) -D__DARWIN_UNIX03=1 -D__DARWIN_ONLY_UNIX_CONFORMANCE=1 -D__DARWIN_64_BIT_INO_T=1 -D__DARWIN_ONLY_64_BIT_INO_T=0 $< -o $@.inode64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) -c -I$(SRCINCDIR) $(CFLAGS) $(DLIBCFLAGS) -D__DARWIN_UNIX03=1 -D__DARWIN_ONLY_UNIX_CONFORMANCE=0 -D__DARWIN_64_BIT_INO_T=1 -D__DARWIN_ONLY_64_BIT_INO_T=0 $< -o $@.inode64unix2003
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # ... and split them up, because ld can only generate single-architecture files ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(call splitandfilterandmergemultiarch,$@,$(LIPO),$(RM),$(CP),$(LD),$(GREP),$(PLATFORM),$(FORCE_ARCH))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(MULTISLIBOBJS): %$(SLIBOBJEXT): %.c $(ALLHEADERS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Generate possibly multi-architecture object files ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) -c -I$(SRCINCDIR) $(CFLAGS) $(SLIBCFLAGS) -D__DARWIN_UNIX03=0 -D__DARWIN_64_BIT_INO_T=0 -D__DARWIN_ONLY_64_BIT_INO_T=0 $< -o $@.inode32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) -c -I$(SRCINCDIR) $(CFLAGS) $(SLIBCFLAGS) -D__DARWIN_UNIX03=1 -D__DARWIN_ONLY_UNIX_CONFORMANCE=0 -D__DARWIN_64_BIT_INO_T=0 -D__DARWIN_ONLY_64_BIT_INO_T=0 $< -o $@.inode32unix2003
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) -c -I$(SRCINCDIR) $(CFLAGS) $(SLIBCFLAGS) -D__DARWIN_UNIX03=1 -D__DARWIN_ONLY_UNIX_CONFORMANCE=1 -D__DARWIN_64_BIT_INO_T=1 -D__DARWIN_ONLY_64_BIT_INO_T=0 $< -o $@.inode64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) -c -I$(SRCINCDIR) $(CFLAGS) $(SLIBCFLAGS) -D__DARWIN_UNIX03=1 -D__DARWIN_ONLY_UNIX_CONFORMANCE=0 -D__DARWIN_64_BIT_INO_T=1 -D__DARWIN_ONLY_64_BIT_INO_T=0 $< -o $@.inode64unix2003
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # ... and split them up, because ld can only generate single-architecture files ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(call splitandfilterandmergemultiarch,$@,$(LIPO),$(RM),$(CP),$(LD),$(GREP),$(PLATFORM),$(FORCE_ARCH))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Generously marking all header files as potential dependencies
 $(DLIBOBJS): %$(DLIBOBJEXT): %.c $(ALLHEADERS)
        $(CC) -c -I$(SRCINCDIR) $(CFLAGS) $(DLIBCFLAGS) $< -o $@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -205,11 +230,11 @@ $(TESTOBJS_C): %.o: %.c $(ALLHEADERS)
</span> $(TESTOBJS_CPP): %.o: %.cpp $(ALLHEADERS)
        $(CXX) -c -I$(SRCINCDIR) $(CXXFLAGS) $< -o $@
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$(BUILDDLIBPATH): $(DLIBOBJS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(BUILDDLIBPATH): $(DLIBOBJS) $(MULTIDLIBOBJS)
</span>   $(MKINSTALLDIRS) $(BUILDDLIBDIR)
        $(CC) $(BUILDDLIBFLAGS) $(LDFLAGS) $^ -o $@
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$(BUILDSLIBPATH): $(SLIBOBJS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(BUILDSLIBPATH): $(SLIBOBJS) $(MULTISLIBOBJS)
</span>   $(MKINSTALLDIRS) $(BUILDSLIBDIR)
        $(RM) $@
        $(AR) $(BUILDSLIBFLAGS) $@ $^
</pre><pre style='margin:0'>

</pre>