Use x86_64 backtrace as generic version

System Internals / glibc - Joseph Myers [codesourcery.com] - 21 March 2018 17:25 EDT

No glibc configuration uses the present debug/backtrace.c, whereas several #include the x86_64 version. The x86_64 version is effectively a generic one (using _Unwind_Backtrace from libgcc, which works much more reliably than the built-in functions used by debug/backtrace.c). This patch moves it to debug/backtrace.c and removes all the #includes of the x86_64 version from other architectures which are no longer required.

I do not know whether all the other architecture-specific backtrace implementations that are based on _Unwind_Backtrace are required, or whether, where their differences from the generic version do something useful, suitable hooks could be added to the generic version to reduce the duplication involved.

Tested with build-many-glibcs.py that installed stripped shared libraries are unchanged by this patch.

- sysdeps/x86_64/backtrace.c: Move to ....
- debug/backtrace.c: ... here.
- sysdeps/aarch64/backtrace.c: Remove file.
- sysdeps/alpha/backtrace.c: Likewise.
- sysdeps/hppa/backtrace.c: Likewise.
- sysdeps/ia64/backtrace.c: Likewise.
- sysdeps/mips/backtrace.c: Likewise.
- sysdeps/nios2/backtrace.c: Likewise.
- sysdeps/riscv/backtrace.c: Likewise.
- sysdeps/sh/backtrace.c: Likewise.
- sysdeps/tile/backtrace.c: Likewise.

ffec7b2740 Use x86_64 backtrace as generic version.
ChangeLog | 14 ++++
debug/backtrace.c | 158 ++++++++++++++++++++++++++++----------------
sysdeps/aarch64/backtrace.c | 1 -
sysdeps/alpha/backtrace.c | 1 -
sysdeps/hppa/backtrace.c | 1 -
sysdeps/ia64/backtrace.c | 1 -
sysdeps/mips/backtrace.c | 1 -
sysdeps/nios2/backtrace.c | 1 -
sysdeps/riscv/backtrace.c | 1 -
sysdeps/sh/backtrace.c | 1 -
sysdeps/tile/backtrace.c | 1 -
sysdeps/x86_64/backtrace.c | 134 -------------------------------------
12 files changed, 115 insertions(+), 200 deletions(-)

Upstream: sourceware.org


  • Share