From e97317c2d39689f1c7d53e8b3af64643ed5574c9 Mon Sep 17 00:00:00 2001 From: Wesley Wiser Date: Tue, 9 Nov 2021 12:28:55 -0500 Subject: Build musl dist artifacts with debuginfo enabled Since our musl targets link to a version of musl we build and bundle with the targets, if users need to debug into musl or generate backtraces which contain parts of the musl library, they will be unable to do so unless we enable and ship the debug info. This patch changes our dist builds so they enabled debug info when building musl. This patch also includes a fix for CFI detection in musl's `configure` script which has been posted upstream[1]. The net effect of this is that we now ship debug info for musl in those targets. This adds ~90kb to those artifacts but running `strip` on binaries produced removes all of that. For a "hello world" Rust binary on x86_64, the numbers are: | | debug | release | release + strip | | - | - | - | - | | without musl debuginfo | 507kb | 495kb | 410kb | | with musl debuginfo | 595kb | 584kb | 410kb | Once stripped, the final binaries are the same size (down to the byte). [1]: https://www.openwall.com/lists/musl/2021/10/21/2 --- src/ci/docker/scripts/musl-patch-configure.diff | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/ci/docker/scripts/musl-patch-configure.diff (limited to 'src/ci/docker/scripts/musl-patch-configure.diff') diff --git a/src/ci/docker/scripts/musl-patch-configure.diff b/src/ci/docker/scripts/musl-patch-configure.diff new file mode 100644 index 00000000000..6e106b4504b --- /dev/null +++ b/src/ci/docker/scripts/musl-patch-configure.diff @@ -0,0 +1,13 @@ +diff --git a/configure b/configure +index 86801281..ed2f7998 100755 +--- a/configure ++++ b/configure +@@ -398,7 +398,7 @@ test "$debug" = yes && CFLAGS_AUTO=-g + # + printf "checking whether we should preprocess assembly to add debugging information... " + if fnmatch '-g*|*\ -g*' "$CFLAGS_AUTO $CFLAGS" && +- test -f "tools/add-cfi.$ARCH.awk" && ++ test -f "$srcdir/tools/add-cfi.$ARCH.awk" && + printf ".file 1 \"srcfile.s\"\n.line 1\n.cfi_startproc\n.cfi_endproc" | $CC -g -x assembler -c -o /dev/null 2>/dev/null - + then + ADD_CFI=yes -- cgit 1.4.1-3-g733a5