Skip to content

Commit

Permalink
Update libunwind to 1.8.1 (#54796)
Browse files Browse the repository at this point in the history
Not sure whether the static lzma patch should be included for our source
build. I copied it from the Yggdrasil builder but notably that enables
minidebuginfo whereas we disable that, and I _think_ that's what lzma is
used for.
  • Loading branch information
ararslan authored Jun 14, 2024
1 parent e7d8e57 commit d654415
Show file tree
Hide file tree
Showing 8 changed files with 227 additions and 42 deletions.
52 changes: 26 additions & 26 deletions deps/checksums/unwind
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
LibUnwind.v1.7.2+2.aarch64-linux-gnu.tar.gz/md5/2c8bdfc891b817cdcebad5cec3fe03ba
LibUnwind.v1.7.2+2.aarch64-linux-gnu.tar.gz/sha512/c06eb08411c9759b7d0043258e239620eebac36b573c58d91f5cd3c6b801a33fb42833c21e0badcd958085adb1eddcf3d37386143b7584fd2c0631efa225acce
LibUnwind.v1.7.2+2.aarch64-linux-musl.tar.gz/md5/3233eec783f73a9723f5c9c06a4085e9
LibUnwind.v1.7.2+2.aarch64-linux-musl.tar.gz/sha512/91b5f6eba193b6c2abaac30ad805003142dd48b8bbda36c9d50e7802a17abf04f95b5d21c3d842697653834ee2c21c222f0b96d8f142a99f3819a58493817474
LibUnwind.v1.7.2+2.armv6l-linux-gnueabihf.tar.gz/md5/75dc5ea25f5055959d348523ed6f1bdb
LibUnwind.v1.7.2+2.armv6l-linux-gnueabihf.tar.gz/sha512/315e3e05caec95a81fef570aee3328f4f8b617a9567249b7e535a3b4246f9a39c6bc45dc0f3c061e6a796b94d839c308f0bba083a06093df4a9932328e1c6dee
LibUnwind.v1.7.2+2.armv6l-linux-musleabihf.tar.gz/md5/99b02885777f3954cb9569849304f6fc
LibUnwind.v1.7.2+2.armv6l-linux-musleabihf.tar.gz/sha512/b73ab8472cf60fb9e88d391543e5349246d05b90fa6b0ea793fca0e1a67ce91cc8f12a09c9e4594add5264c0363b157b879b89ce881ae33f0f7e3315b56aec5e
LibUnwind.v1.7.2+2.armv7l-linux-gnueabihf.tar.gz/md5/ce447b3e3a9e8f990f914faa6cb37db0
LibUnwind.v1.7.2+2.armv7l-linux-gnueabihf.tar.gz/sha512/efb8aff3a23dbbc8b65414f7f39af4a664311120f2da61b7b70dd8c7da30230582d8256c2b5421e00b2d70062e767694e358dafbbae83a69f550a5d0ac6a62b9
LibUnwind.v1.7.2+2.armv7l-linux-musleabihf.tar.gz/md5/535b71f32d85b18208b911a13a9a0672
LibUnwind.v1.7.2+2.armv7l-linux-musleabihf.tar.gz/sha512/267b72cdb3fe1fc63031fe76fd3ffc3afc97775a541dc2357df4f849d585064c0492b82ef3c16efce0f0573778ee56ed7886e97c6591f7a8cda27f705b0b65e4
LibUnwind.v1.7.2+2.i686-linux-gnu.tar.gz/md5/97b6867d8d20abef8b96f5fc17e932b9
LibUnwind.v1.7.2+2.i686-linux-gnu.tar.gz/sha512/ff48995503447288945dab6f32f85801b81be98ec9f5bcc933305230befb51a9c0aeb588e722ebde3694cc9e73ee6b443ae5eedec352c5c166603dca8c23c559
LibUnwind.v1.7.2+2.i686-linux-musl.tar.gz/md5/3864ac880d38adb276e353904bf2b18d
LibUnwind.v1.7.2+2.i686-linux-musl.tar.gz/sha512/36198cf175d6db1dfbb43ed498ad25eab2392958f21fc8a83aafdb4f54aacf8c3a473d313b117a835c81e56b7a20ff2bf152dee8f4280cdf7ef0e751d736a362
LibUnwind.v1.7.2+2.powerpc64le-linux-gnu.tar.gz/md5/b4e6b56f160be18abbaac5f36d161753
LibUnwind.v1.7.2+2.powerpc64le-linux-gnu.tar.gz/sha512/354f92c8658b465545b2ae77826f0ae4580084ec3e7723900e064245bdb0c38bc8dc9dc04bc505e83879d8bb3d2291493c091e83929aba23d42c99dc622a2bf0
LibUnwind.v1.7.2+2.x86_64-linux-gnu.tar.gz/md5/1d82791f522deadb3bc3232997d094be
LibUnwind.v1.7.2+2.x86_64-linux-gnu.tar.gz/sha512/9603731e4f40c89b6a157c754c1e89ca7c38349e2099e072957123967e6d9c8bd7df1725afc9ffe1c9137ada6e364deb19b4b91fc19d099d7acf1bced3caf2e0
LibUnwind.v1.7.2+2.x86_64-linux-musl.tar.gz/md5/278dd4a9d36169b3c7719ac83f3d3fed
LibUnwind.v1.7.2+2.x86_64-linux-musl.tar.gz/sha512/68952cbc9ac3e379412bc8482379621809bdd1d77095a44f18b96ff5f58bc338e502305941db0cfae0b68d4ee3719d7db898b64ccd815f1b71110cbc49a4b11f
LibUnwind.v1.7.2+2.x86_64-unknown-freebsd.tar.gz/md5/d043be8787b39d5e9a467bd8ff90be1d
LibUnwind.v1.7.2+2.x86_64-unknown-freebsd.tar.gz/sha512/44fda1ffe4a3f4d442dcccb414efe6c0d6ab895f619d74f4aa8cdcef26d9388d7b6975cb43fc18b207df1f2e61faf3555d65db8597f85e3ab4b053be5ce72e66
libunwind-1.7.2.tar.gz/md5/35799cd8e475d3e157230ad2590c10f1
libunwind-1.7.2.tar.gz/sha512/903f7e26c7d4c22e6ef4fe8954ca0f153fdf346cec40e1e8f7ab966d251110f4deb0a84d1fd150aee194ed966b5c1e01ee27c821cd043859852da33a94faae1f
LibUnwind.v1.8.1+0.aarch64-linux-gnu.tar.gz/md5/e25a186941b2bedeb4a0fca60b1e5d1b
LibUnwind.v1.8.1+0.aarch64-linux-gnu.tar.gz/sha512/4b488ef13b1b09d37dd2d2f62647e6407404730beb8cab58263c2d8e9db3716bfdb8949eca8ebb126eb22a3fcd81deb7ea0774fe7527ba7374f76047fe03abd7
LibUnwind.v1.8.1+0.aarch64-linux-musl.tar.gz/md5/75fea80870d951a5e87d37bc67e52cfb
LibUnwind.v1.8.1+0.aarch64-linux-musl.tar.gz/sha512/efb54577cddaf5e7930b15cdd98ed88e4d60ba3a1fe0097b2a64a868f92177985c71a86cfb40475976005ab55a01401960afa9c20649b1e34ea02ef262caa046
LibUnwind.v1.8.1+0.armv6l-linux-gnueabihf.tar.gz/md5/30f3077b185f6e51b8b6ddfddcb8effb
LibUnwind.v1.8.1+0.armv6l-linux-gnueabihf.tar.gz/sha512/524810edbcfcba4938cb63c325905569b7d232dd8b02856e5f1592d7e36620c3ee166c0c788e42a14abc281c41723f49563f59d8cf5175ae1c3605ec29a97b9f
LibUnwind.v1.8.1+0.armv6l-linux-musleabihf.tar.gz/md5/087d263a8edacec1b79d4eccef03ab53
LibUnwind.v1.8.1+0.armv6l-linux-musleabihf.tar.gz/sha512/bad2bea6f98ed9e0ac293ab3cd7873d2c164616bd09103ad773300da1875e28ac51744809629d01b69744c610d93c90cc48ec4c81411b5d3f036db86e098adcd
LibUnwind.v1.8.1+0.armv7l-linux-gnueabihf.tar.gz/md5/218f8a37d910bcfaba1bbeb9f61593a1
LibUnwind.v1.8.1+0.armv7l-linux-gnueabihf.tar.gz/sha512/1912b7aa4bbcaca3facad13bf9a8a8b4bb42183b9c542c6b51f0f4a715c27b7583dcf36f49a1fac9787ba7b39728a5d1a151661a570ef637d1080c11d5426fc4
LibUnwind.v1.8.1+0.armv7l-linux-musleabihf.tar.gz/md5/c2582785ca7dc2edbc529a93ea0f4120
LibUnwind.v1.8.1+0.armv7l-linux-musleabihf.tar.gz/sha512/ae5414a274d973623070402806eb279dd2ab708c801fa7f24ba9b8066e7fc13ae9ebe1f331f76dd54a4eba572e87117c57d502190b63978af87d7fa35a011632
LibUnwind.v1.8.1+0.i686-linux-gnu.tar.gz/md5/324ae0c4916a435a6746ca77a1034b58
LibUnwind.v1.8.1+0.i686-linux-gnu.tar.gz/sha512/fe5ac30e6cdda9f99c873a7af60407c5f1ca1d17396ab46679df56093fea37289e802dd53ed083a4963f7439a1887b4d401a9ab489bdeddd2d003b761af84c1c
LibUnwind.v1.8.1+0.i686-linux-musl.tar.gz/md5/0495beea1d8e5e4572f32830125cb329
LibUnwind.v1.8.1+0.i686-linux-musl.tar.gz/sha512/3db7f9241e11e139f02239826a65f40d77d968aa7dde574cf91759706dc9a5c97fb055b34ec011f9ac085eec121c3807e9c873773d1ab091a5a7180200ea73ec
LibUnwind.v1.8.1+0.powerpc64le-linux-gnu.tar.gz/md5/1f0feb7cced4b847295dff4c1cd0dde1
LibUnwind.v1.8.1+0.powerpc64le-linux-gnu.tar.gz/sha512/88707b4a45e3de2901a343f20a35d2003d24db6604a5194712a3a687299b98e7507934a1bd4d7a21f84f089e0378964334c483f10311dd1bfbaa5d8b42ab9f76
LibUnwind.v1.8.1+0.x86_64-linux-gnu.tar.gz/md5/a03c84494c04ba08fa7e314584d28945
LibUnwind.v1.8.1+0.x86_64-linux-gnu.tar.gz/sha512/eb97ec8cf03fc5cb77a6218fcc4f1ef1266e66a774dea34e1d1fb7f89c026287bb4bd09de0b61a83b42495b8b4d5be475a61b4df68c83bfb33be2145ed659627
LibUnwind.v1.8.1+0.x86_64-linux-musl.tar.gz/md5/194654cfd8d202599b7096783659c0ab
LibUnwind.v1.8.1+0.x86_64-linux-musl.tar.gz/sha512/f39f8d0488ec02d9693b4a17ca73ec683ea062cfc67400d02e1e38bfeb43c371068742379d5e17f8c8b4ab478de48f91284e17b0e1b94e09d1a64713276326c7
LibUnwind.v1.8.1+0.x86_64-unknown-freebsd.tar.gz/md5/6453d66204ba5fb941046afd85345b90
LibUnwind.v1.8.1+0.x86_64-unknown-freebsd.tar.gz/sha512/77e67c3ddda5eaee0e8b127ad8e2ad41add4410e356c4e4b9bc46eb19871b91d006a59009d9948c4cc0951c2d9e956a99c946a60ba47ceb7f827b2897d6939e5
libunwind-1.8.1.tar.gz/md5/10c96118ff30b88c9eeb6eac8e75599d
libunwind-1.8.1.tar.gz/sha512/aba7b578c1b8cbe78f05b64e154f3530525f8a34668b2a9f1ee6acb4b22c857befe34ad4e9e8cca99dbb66689d41bc72060a8f191bd8be232725d342809431b3
157 changes: 157 additions & 0 deletions deps/patches/libunwind-aarch64-inline-asm.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
From 6ae71b3ea71bff0f38c7a6a05beda30b7dce1ef6 Mon Sep 17 00:00:00 2001
From: Stephen Webb <[email protected]>
Date: Mon, 22 Apr 2024 15:56:54 -0400
Subject: [PATCH] Rework inline aarch64 as for setcontext

Modern GC and clang were barfing on the inline asm constraints for the
aarch64-linux setcontext() replacement. Reformulated the asm code to
reduce the required constraints.
---
src/aarch64/Gos-linux.c | 115 +++++++++++++++++++++-------------------
1 file changed, 61 insertions(+), 54 deletions(-)

diff --git a/src/aarch64/Gos-linux.c b/src/aarch64/Gos-linux.c
index 7cd8c879f..1e4949623 100644
--- a/src/aarch64/Gos-linux.c
+++ b/src/aarch64/Gos-linux.c
@@ -2,6 +2,7 @@
Copyright (C) 2008 CodeSourcery
Copyright (C) 2011-2013 Linaro Limited
Copyright (C) 2012 Tommi Rantala <[email protected]>
+ Copyright 2024 Stephen M. Webb <[email protected]>

This file is part of libunwind.

@@ -28,6 +29,28 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */

#ifndef UNW_REMOTE_ONLY

+/* Magic constants generated from gen-offsets.c */
+#define SC_R0_OFF "8"
+#define SC_R2_OFF "24"
+#define SC_R18_OFF "152"
+#define SC_R20_OFF "168"
+#define SC_R22_OFF "184"
+#define SC_R24_OFF "200"
+#define SC_R26_OFF "216"
+#define SC_R28_OFF "232"
+#define SC_R30_OFF "248"
+
+#define FP_R08_OFF "80"
+#define FP_R09_OFF "88"
+#define FP_R10_OFF "96"
+#define FP_R11_OFF "104"
+#define FP_R12_OFF "112"
+#define FP_R13_OFF "120"
+#define FP_R14_OFF "128"
+#define FP_R15_OFF "136"
+
+#define SC_SP_OFF "0x100"
+
HIDDEN int
aarch64_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg)
{
@@ -36,65 +59,49 @@ aarch64_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg)

if (c->sigcontext_format == AARCH64_SCF_NONE)
{
+
+ /*
+ * This is effectively the old POSIX setcontext().
+ *
+ * This inline asm is broken up to use local scratch registers for the
+ * uc_mcontext.regs and FPCTX base addresses because newer versions of GCC
+ * and clang barf on too many constraints (gh-702) when the C array
+ * elements are used directly.
+ *
+ * Clobbers aren't required for the inline asm because they just convince
+ * the compiler to save those registers and they never get restored
+ * becauise the asm ends with a plain ol' ret.
+ */
+ register void* uc_mcontext __asm__ ("x5") = (void*) &uc->uc_mcontext;
+ register void* fpctx __asm__ ("x4") = (void*) GET_FPCTX(uc);
+
/* Since there are no signals involved here we restore EH and non scratch
registers only. */
__asm__ __volatile__ (
- "ldr x0, %[x0]\n\t"
- "ldr x1, %[x1]\n\t"
- "ldr x2, %[x2]\n\t"
- "ldr x3, %[x3]\n\t"
- "ldr x19, %[x19]\n\t"
- "ldr x20, %[x20]\n\t"
- "ldr x21, %[x21]\n\t"
- "ldr x22, %[x22]\n\t"
- "ldr x23, %[x23]\n\t"
- "ldr x24, %[x24]\n\t"
- "ldr x25, %[x25]\n\t"
- "ldr x26, %[x26]\n\t"
- "ldr x27, %[x27]\n\t"
- "ldr x28, %[x28]\n\t"
- "ldr x29, %[x29]\n\t"
- "ldr x30, %[x30]\n\t"
- "ldr d8, %[d8]\n\t"
- "ldr d9, %[d9]\n\t"
- "ldr d10, %[d10]\n\t"
- "ldr d11, %[d11]\n\t"
- "ldr d12, %[d12]\n\t"
- "ldr d13, %[d13]\n\t"
- "ldr d14, %[d14]\n\t"
- "ldr d15, %[d15]\n\t"
- "ldr x5, %[sp]\n\t"
+ "ldp x0, x1, [x5, " SC_R0_OFF "]\n\t"
+ "ldp x2, x3, [x5, " SC_R2_OFF "]\n\t"
+ "ldp x18, x19, [x5, " SC_R18_OFF "]\n\t"
+ "ldp x20, x21, [x5, " SC_R20_OFF "]\n\t"
+ "ldp x22, x23, [x5, " SC_R22_OFF "]\n\t"
+ "ldp x24, x25, [x5, " SC_R24_OFF "]\n\t"
+ "ldp x26, x27, [x5, " SC_R26_OFF "]\n\t"
+ "ldp x28, x29, [x5, " SC_R28_OFF "]\n\t"
+ "ldr x30, [x5, " SC_R30_OFF "]\n\t"
+ "ldr d8, [x4, " FP_R08_OFF "]\n\t"
+ "ldr d9, [x4, " FP_R09_OFF "]\n\t"
+ "ldr d10, [x4, " FP_R10_OFF "]\n\t"
+ "ldr d11, [x4, " FP_R11_OFF "]\n\t"
+ "ldr d12, [x4, " FP_R12_OFF "]\n\t"
+ "ldr d13, [x4, " FP_R13_OFF "]\n\t"
+ "ldr d14, [x4, " FP_R14_OFF "]\n\t"
+ "ldr d15, [x4, " FP_R15_OFF "]\n\t"
+ "ldr x5, [x5, " SC_SP_OFF "]\n\t"
"mov sp, x5\n\t"
"ret\n"
- :
- : [x0] "m"(uc->uc_mcontext.regs[0]),
- [x1] "m"(uc->uc_mcontext.regs[1]),
- [x2] "m"(uc->uc_mcontext.regs[2]),
- [x3] "m"(uc->uc_mcontext.regs[3]),
- [x19] "m"(uc->uc_mcontext.regs[19]),
- [x20] "m"(uc->uc_mcontext.regs[20]),
- [x21] "m"(uc->uc_mcontext.regs[21]),
- [x22] "m"(uc->uc_mcontext.regs[22]),
- [x23] "m"(uc->uc_mcontext.regs[23]),
- [x24] "m"(uc->uc_mcontext.regs[24]),
- [x25] "m"(uc->uc_mcontext.regs[25]),
- [x26] "m"(uc->uc_mcontext.regs[26]),
- [x27] "m"(uc->uc_mcontext.regs[27]),
- [x28] "m"(uc->uc_mcontext.regs[28]),
- [x29] "m"(uc->uc_mcontext.regs[29]), /* FP */
- [x30] "m"(uc->uc_mcontext.regs[30]), /* LR */
- [d8] "m"(GET_FPCTX(uc)->vregs[8]),
- [d9] "m"(GET_FPCTX(uc)->vregs[9]),
- [d10] "m"(GET_FPCTX(uc)->vregs[10]),
- [d11] "m"(GET_FPCTX(uc)->vregs[11]),
- [d12] "m"(GET_FPCTX(uc)->vregs[12]),
- [d13] "m"(GET_FPCTX(uc)->vregs[13]),
- [d14] "m"(GET_FPCTX(uc)->vregs[14]),
- [d15] "m"(GET_FPCTX(uc)->vregs[15]),
- [sp] "m"(uc->uc_mcontext.sp)
- : "x0", "x1", "x2", "x3", "x19", "x20", "x21", "x22", "x23", "x24",
- "x25", "x26", "x27", "x28", "x29", "x30"
- );
+ :
+ : [uc_mcontext] "r"(uc_mcontext),
+ [fpctx] "r"(fpctx)
+ );
}
else
{
20 changes: 20 additions & 0 deletions deps/patches/libunwind-configure-static-lzma.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--- configure.orig 2023-06-04 05:19:04
+++ configure 2023-06-07 08:35:11
@@ -18117,7 +18117,7 @@
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
-LIBS="-llzma $LIBS"
+LIBS="-L${libdir} -l:liblzma.a $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

@@ -18148,7 +18148,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_mf_is_supported" >&5
$as_echo "$ac_cv_lib_lzma_lzma_mf_is_supported" >&6; }
if test "x$ac_cv_lib_lzma_lzma_mf_is_supported" = xyes; then :
- LIBLZMA=-llzma
+ LIBLZMA="-L${libdir} -l:liblzma.a"

$as_echo "#define HAVE_LZMA 1" >>confdefs.h

20 changes: 10 additions & 10 deletions deps/patches/libunwind-revert_prelink_unwind.patch
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
From 7ae19a08467254f0b3d7a513ef82651b283f38a9 Mon Sep 17 00:00:00 2001
From 3af39d34f576890e7f1f3e97cc1cb45b4b76aa47 Mon Sep 17 00:00:00 2001
From: Tim Besard <[email protected]>
Date: Wed, 27 Sep 2023 12:51:59 +0000
Date: Tue, 16 Jan 2024 09:49:21 -0800
Subject: [PATCH] Revert "Fix unwinding of pre-linked libraries"

This reverts commit a4014f33775321b4106a1134b89020a7774902dd,
Expand All @@ -13,7 +13,7 @@ which regresses unwinding on FreeBSD (JuliaLang/julia#51467).
4 files changed, 8 insertions(+), 38 deletions(-)

diff --git a/include/dwarf.h b/include/dwarf.h
index dd9014b7..312166cd 100644
index 4fd1dba0..3fc6bce2 100644
--- a/include/dwarf.h
+++ b/include/dwarf.h
@@ -371,8 +371,6 @@ struct unw_debug_frame_list
Expand All @@ -38,7 +38,7 @@ index a26f2c99..c902ccd9 100644
{
unw_dyn_proc_info_t pi;
diff --git a/src/dwarf/Gfind_proc_info-lsb.c b/src/dwarf/Gfind_proc_info-lsb.c
index 8ead48f0..154e9b5a 100644
index c11345e8..c701ccfb 100644
--- a/src/dwarf/Gfind_proc_info-lsb.c
+++ b/src/dwarf/Gfind_proc_info-lsb.c
@@ -108,17 +108,13 @@ linear_search (unw_addr_space_t as, unw_word_t ip,
Expand All @@ -58,7 +58,7 @@ index 8ead48f0..154e9b5a 100644
ei.image = NULL;
- *load_offset = 0;

ret = elf_w (load_debuglink) (file, &ei, is_local);
ret = elf_w (load_debuginfo) (file, &ei, is_local);
if (ret != 0)
@@ -193,20 +189,6 @@ load_debug_frame (const char *file, char **buf, size_t *bufsize, int is_local,
#if defined(SHF_COMPRESSED)
Expand All @@ -78,7 +78,7 @@ index 8ead48f0..154e9b5a 100644
- break;
- }
-
munmap(ei.image, ei.size);
mi_munmap(ei.image, ei.size);
return 0;
}
@@ -259,7 +241,6 @@ locate_debug_info (unw_addr_space_t as, unw_word_t addr, unw_word_t segbase,
Expand Down Expand Up @@ -125,7 +125,7 @@ index 8ead48f0..154e9b5a 100644
{
- e = lookup (table, table_len, ip - ip_base - di->load_offset);
+ e = lookup (table, table_len, ip - ip_base);
if (e && &e[1] < &table[table_len / sizeof (unw_word_t)])
if (e && &e[1] < &table[table_len / sizeof (struct table_entry)])
- last_ip = e[1].start_ip_offset + ip_base + di->load_offset;
+ last_ip = e[1].start_ip_offset + ip_base;
else
Expand Down Expand Up @@ -171,10 +171,10 @@ index 8ead48f0..154e9b5a 100644
pi->last_ip = last_ip;
#else
diff --git a/src/dwarf/Gfind_unwind_table.c b/src/dwarf/Gfind_unwind_table.c
index fb20fea0..62feb26c 100644
index a7c4dfd3..2b503ea9 100644
--- a/src/dwarf/Gfind_unwind_table.c
+++ b/src/dwarf/Gfind_unwind_table.c
@@ -193,7 +193,6 @@ dwarf_find_unwind_table (struct elf_dyn_info *edi, unw_addr_space_t as,
@@ -197,7 +197,6 @@ dwarf_find_unwind_table (struct elf_dyn_info *edi,

edi->di_cache.start_ip = start_ip;
edi->di_cache.end_ip = end_ip;
Expand All @@ -183,5 +183,5 @@ index fb20fea0..62feb26c 100644
edi->di_cache.u.rti.name_ptr = 0;
/* two 32-bit values (ip_offset/fde_offset) per table-entry: */
--
2.41.0
2.43.0

12 changes: 10 additions & 2 deletions deps/unwind.mk
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,22 @@ $(SRCCACHE)/libunwind-$(UNWIND_VER)/source-extracted: $(SRCCACHE)/libunwind-$(UN
checksum-unwind: $(SRCCACHE)/libunwind-$(UNWIND_VER).tar.gz
$(JLCHECKSUM) $<

$(SRCCACHE)/libunwind-$(UNWIND_VER)/libunwind-revert_prelink_unwind.patch-applied: $(SRCCACHE)/libunwind-$(UNWIND_VER)/source-extracted
$(SRCCACHE)/libunwind-$(UNWIND_VER)/libunwind-configure-static-lzma.patch-applied: $(SRCCACHE)/libunwind-$(UNWIND_VER)/source-extracted
cd $(SRCCACHE)/libunwind-$(UNWIND_VER) && patch -p0 -f -u -l < $(SRCDIR)/patches/libunwind-configure-static-lzma.patch
echo 1 > $@

$(SRCCACHE)/libunwind-$(UNWIND_VER)/libunwind-revert_prelink_unwind.patch-applied: $(SRCCACHE)/libunwind-$(UNWIND_VER)/libunwind-configure-static-lzma.patch-applied
cd $(SRCCACHE)/libunwind-$(UNWIND_VER) && patch -p1 -f -u -l < $(SRCDIR)/patches/libunwind-revert_prelink_unwind.patch
echo 1 > $@

$(SRCCACHE)/libunwind-$(UNWIND_VER)/libunwind-aarch64-inline-asm.patch-applied: $(SRCCACHE)/libunwind-$(UNWIND_VER)/libunwind-revert_prelink_unwind.patch-applied
cd $(SRCCACHE)/libunwind-$(UNWIND_VER) && patch -p1 -f -u -l < $(SRCDIR)/patches/libunwind-aarch64-inline-asm.patch
echo 1 > $@

# note minidebuginfo requires liblzma, which we do not have a source build for
# (it will be enabled in BinaryBuilder-based downloads however)
# since https://github.com/JuliaPackaging/Yggdrasil/commit/0149e021be9badcb331007c62442a4f554f3003c
$(BUILDDIR)/libunwind-$(UNWIND_VER)/build-configured: $(SRCCACHE)/libunwind-$(UNWIND_VER)/source-extracted $(SRCCACHE)/libunwind-$(UNWIND_VER)/libunwind-revert_prelink_unwind.patch-applied
$(BUILDDIR)/libunwind-$(UNWIND_VER)/build-configured: $(SRCCACHE)/libunwind-$(UNWIND_VER)/source-extracted $(SRCCACHE)/libunwind-$(UNWIND_VER)/libunwind-aarch64-inline-asm.patch-applied
mkdir -p $(dir $@)
cd $(dir $@) && \
$(dir $<)/configure $(CONFIGURE_COMMON) CPPFLAGS="$(CPPFLAGS) $(LIBUNWIND_CPPFLAGS)" CFLAGS="$(CFLAGS) $(LIBUNWIND_CFLAGS)" --enable-shared --disable-minidebuginfo --disable-tests --enable-zlibdebuginfo --disable-conservative-checks
Expand Down
4 changes: 2 additions & 2 deletions deps/unwind.version
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
UNWIND_JLL_NAME := LibUnwind

## source build
UNWIND_VER_TAG := 1.7.2
UNWIND_VER := 1.7.2
UNWIND_VER_TAG := 1.8.1
UNWIND_VER := 1.8.1
2 changes: 1 addition & 1 deletion stdlib/LibUnwind_jll/Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "LibUnwind_jll"
uuid = "745a5e78-f969-53e9-954f-d19f2f74f4e3"
version = "1.7.2+2"
version = "1.8.1+0"

[deps]
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
Expand Down
2 changes: 1 addition & 1 deletion stdlib/Manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ version = "2.0.1+16"
[[deps.LibUnwind_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "745a5e78-f969-53e9-954f-d19f2f74f4e3"
version = "1.7.2+2"
version = "1.8.1+0"

[[deps.Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
Expand Down

0 comments on commit d654415

Please sign in to comment.