git: 33b6e6744554 - stable/12 - Reapply r355803 (by mmel):
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 22 Dec 2021 10:05:43 UTC
The branch stable/12 has been updated by dim:
URL: https://cgit.FreeBSD.org/src/commit/?id=33b6e67445548c4a5e81fe6d626dbb29c9246042
commit 33b6e67445548c4a5e81fe6d626dbb29c9246042
Author: Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2020-08-06 19:08:28 +0000
Commit: Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2021-12-22 09:58:21 +0000
Reapply r355803 (by mmel):
Fix LLVM libunwnwind _Unwind_Backtrace symbol version for ARM.
In original GNU libgcc, _Unwind_Backtrace is published with GCC_3.3 version
for all architectures but ARM. For ARM should be publishes with GCC_4.3.0
version. This was originally omitted in r255095, fixed in r318024 and omitted
aging in LLVM libunwind implementation in r354347.
For ARM _Unwind_Backtrace should be published as default with GCC_4.3.0
version , (because this is right original version) and again as
normal(not-default) with GCC_3.3 version (to maintain ABI compatibility
compiled/linked with wrong pre r318024 libgcc)
PR: 233664
(cherry picked from commit e8141ad1df2098dd3f6d627c49ce99307315f5fd)
---
contrib/llvm-project/libunwind/src/UnwindLevel1-gcc-ext.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/contrib/llvm-project/libunwind/src/UnwindLevel1-gcc-ext.c b/contrib/llvm-project/libunwind/src/UnwindLevel1-gcc-ext.c
index 30f9cabf241f..ca1a972fc124 100644
--- a/contrib/llvm-project/libunwind/src/UnwindLevel1-gcc-ext.c
+++ b/contrib/llvm-project/libunwind/src/UnwindLevel1-gcc-ext.c
@@ -181,6 +181,10 @@ _Unwind_Backtrace(_Unwind_Trace_Fn callback, void *ref) {
}
}
}
+#ifdef __arm__
+/* Preserve legacy libgcc (pre r318024) ARM ABI mistake */
+__sym_compat(_Unwind_Backtrace, _Unwind_Backtrace, GCC_3.3);
+#endif
/// Find DWARF unwind info for an address 'pc' in some function.