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
This commit is contained in:
Dimitry Andric 2020-08-06 19:08:28 +00:00
parent 998a72c55d
commit e8141ad1df
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/projects/clang1100-import/; revision=363976

View File

@ -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.