<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch add-legacy-libsystem-dylib
in repository macports-legacy-support.
</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/dd8cdf455b772b3fb7eaba4e74c60377969b9bd5">https://github.com/macports/macports-legacy-support/commit/dd8cdf455b772b3fb7eaba4e74c60377969b9bd5</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit dd8cdf455b772b3fb7eaba4e74c60377969b9bd5
</span>Author: Chris Jones <jonesc@hep.phy.cam.ac.uk>
AuthorDate: Sun Apr 25 15:46:22 2021 +0100
<span style='display:block; white-space:pre;color:#404040;'> Add additional dynamic library that includes the legacy symbols but in addition re-exports libSystem.B
</span>---
Makefile | 31 ++++++++++++++++++++++++++++---
README.md | 8 +++++++-
2 files changed, 35 insertions(+), 4 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 2d8da8c..3998749 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;'>@@ -22,21 +22,31 @@ LIBDIR = $(PREFIX)/lib
</span> AREXT = .a
SOEXT = .dylib
LIBNAME = MacportsLegacySupport
<span style='display:block; white-space:pre;background:#e0ffe0;'>+SYSLIBNAME = MacportsLegacySystem.B
</span> DLIBFILE = lib$(LIBNAME)$(SOEXT)
SLIBFILE = lib$(LIBNAME)$(AREXT)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+SYSLIBFILE = lib$(SYSLIBNAME)$(SOEXT)
</span> DLIBPATH = $(LIBDIR)/$(DLIBFILE)
SLIBPATH = $(LIBDIR)/$(SLIBFILE)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+SYSLIBPATH = $(LIBDIR)/$(SYSLIBFILE)
</span> BUILDDLIBDIR = lib
BUILDSLIBDIR = lib
BUILDDLIBPATH = $(BUILDDLIBDIR)/$(DLIBFILE)
BUILDSLIBPATH = $(BUILDSLIBDIR)/$(SLIBFILE)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+BUILDSYSLIBPATH = $(BUILDDLIBDIR)/$(SYSLIBFILE)
</span> BUILDDLIBFLAGS = -dynamiclib -headerpad_max_install_names \
-install_name @executable_path/../$(BUILDDLIBPATH) \
-current_version 1.0 -compatibility_version 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+BUILDSYSLIBFLAGS = -dynamiclib -headerpad_max_install_names \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -install_name @executable_path/../$(BUILDSYSLIBPATH) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -current_version 1.0 -compatibility_version 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SYSREEXPORTFLAG = -Wl,-reexport_library /usr/lib/libSystem.B.dylib
</span> BUILDSLIBFLAGS = -qs
POSTINSTALL = install_name_tool
POSTINSTALLFLAGS = -id $(DLIBPATH)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+MAX_DARWIN_REEXPORT ?= 19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> FORCE_ARCH ?=
ARCHFLAGS ?=
LIPO ?= lipo
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -193,9 +203,10 @@ define splitandfilterandmergemultiarch
</span> fi
endef
<span style='display:block; white-space:pre;background:#ffe0e0;'>-all: dlib slib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+all: dlib slib syslib
</span> dlib: $(BUILDDLIBPATH)
slib: $(BUILDSLIBPATH)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+syslib: $(BUILDSYSLIBPATH)
</span>
# Special rules for special implementations.
# For instance, functions using struct stat need to be implemented multiple
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -236,6 +247,13 @@ $(BUILDDLIBPATH): $(DLIBOBJS) $(MULTIDLIBOBJS)
</span> $(MKINSTALLDIRS) $(BUILDDLIBDIR)
$(CC) $(BUILDDLIBFLAGS) $(LDFLAGS) $^ -o $@
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Wrapped libSystem relies on reexport which does not work on Darwin20+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(BUILDSYSLIBPATH): $(DLIBOBJS) $(MULTIDLIBOBJS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ifeq ($(shell test $(PLATFORM) -le $(MAX_DARWIN_REEXPORT); echo $$?),0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(MKINSTALLDIRS) $(BUILDDLIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(CC) $(BUILDSYSLIBFLAGS) $(LDFLAGS) $(SYSREEXPORTFLAG) $^ -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> $(BUILDSLIBPATH): $(SLIBOBJS) $(MULTISLIBOBJS)
$(MKINSTALLDIRS) $(BUILDSLIBDIR)
$(RM) $@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -281,13 +299,20 @@ install-headers:
</span> $(INSTALL_DATA) $(SRCINCDIR)/"$$h" $(DESTDIR)$(PKGINCDIR)/"$$h"; \
done
<span style='display:block; white-space:pre;background:#ffe0e0;'>-install-lib: install-dlib install-slib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+install-lib: install-dlib install-slib install-syslib
</span>
install-dlib: $(BUILDDLIBPATH)
$(MKINSTALLDIRS) $(DESTDIR)$(LIBDIR)
$(INSTALL_PROGRAM) $(BUILDDLIBPATH) $(DESTDIR)$(LIBDIR)
$(POSTINSTALL) $(POSTINSTALLFLAGS) $(DESTDIR)$(DLIBPATH)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+install-syslib: $(BUILDSYSLIBPATH)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ifeq ($(shell test $(PLATFORM) -le $(MAX_DARWIN_REEXPORT); echo $$?),0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(MKINSTALLDIRS) $(DESTDIR)$(LIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(INSTALL_PROGRAM) $(BUILDSYSLIBPATH) $(DESTDIR)$(LIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(POSTINSTALL) $(POSTINSTALLFLAGS) $(DESTDIR)$(SYSLIBPATH)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> install-slib: $(BUILDSLIBPATH)
$(MKINSTALLDIRS) $(DESTDIR)$(LIBDIR)
$(INSTALL_DATA) $(BUILDSLIBPATH) $(DESTDIR)$(LIBDIR)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -296,7 +321,7 @@ test check: $(TESTRUNS) test_cmath
</span>
clean:
$(RM) $(foreach D,$(SRCDIR) $(TESTDIR),$D/*.o $D/*.o.* $D/*.d)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- $(RM) $(BUILDDLIBPATH) $(BUILDSLIBPATH) $(TESTPRGS) test/test_cmath_*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(RM) $(BUILDDLIBPATH) $(BUILDSLIBPATH) $(BUILDSYSLIBPATH) $(TESTPRGS) test/test_cmath_*
</span> @$(RMDIR) $(BUILDDLIBDIR) $(BUILDSLIBDIR)
.PHONY: all dlib slib clean check test $(TESTRUNS) test_cmath
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/README.md b/README.md
</span><span style='display:block; white-space:pre;color:#808080;'>index 2ff47b9..92d7b6c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/README.md
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/README.md
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,9 +1,15 @@
</span> # MacPorts Support for Legacy OSX Versions
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Installs wrapper headers and a library of functions that add common
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Installs wrapper headers and library functions that add common
</span> functions missing in various older OSX releases to bring them
approximately up to current expected standards.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+Three different libraries are provided
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ - libMacportsLegacySupport.a - A static library with the missing functions for the given OS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ - libMacportsLegacySupport.dylib - A dynamic library with the missing functions for the given OS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ - libMacportsLegacySystem.B.dylib - Similar to libMacportsLegacySupport.dylib but in addition re-exports the symbols from libSystem.B.dylib.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> To use this library within [MacPorts](https://github.com/macports)
add the `legacysupport` PortGroup to the Portfile. This will add the
required include paths and libraries to allow the library to do it's
</pre><pre style='margin:0'>
</pre>