]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Strip "__.SYMDEF*" before re-archiving in combine_libs on macOS and iOS.
authorAlexander Færøy <ahf@torproject.org>
Fri, 14 Oct 2022 10:12:46 +0000 (12:12 +0200)
committerAlexander Færøy <ahf@torproject.org>
Fri, 14 Oct 2022 10:12:46 +0000 (12:12 +0200)
This patch changes how combine_libs works on Darwin like platforms to
make sure we don't include any `__.SYMDEF` and `__.SYMDEF SORTED`
symbols on the archive before we repack and run ${RANLIB} on the
archive.

See: tpo/core/tor#40683.

scripts/build/combine_libs

index a855171dc7aedffc38ff471391882f6596a9af0e..9dec483602482f0aa42526687b466a8c1683fe3f 100755 (executable)
@@ -11,6 +11,15 @@ abspath() {
     echo "$(cd "$(dirname "$1")" >/dev/null && pwd)/$(basename "$1")"
 }
 
+apple_symdef_fix() {
+    # On modern macOS and iOS we need to remove the "__.SYMDEF" and "__.SYMDEF
+    # SORTED" before we repack the archive.
+    # See: tor#40683.
+    if [ "$(uname -s)" = "Darwin" ] ; then
+        find . -name "__.SYMDEF*" -delete
+    fi
+}
+
 TARGET=$(abspath "$1")
 
 shift
@@ -25,6 +34,7 @@ for input in "$@"; do
 done
 
 cd "$TMPDIR" >/dev/null
+apple_symdef_fix
 "${AR:-ar}" "${ARFLAGS:-cru}" library.tmp.a ./*/**
 "${RANLIB:-ranlib}" library.tmp.a
 mv -f library.tmp.a "$TARGET"