Use LIBGCC_S_SO in x86_64 backtrace.

The x86_64 backtrace implementation is used as a generic
implementation (unwinding via unwind info and _Unwind_Backtrace) by
various other architectures.  This patch makes it more generic by
making it use LIBGCC_S_SO from gnu/lib-names.h instead of hardcoding
the libgcc_s.so.1 name, so that it can also be used on hppa which uses
libgcc_s.so.4.

Tested for x86_64.

	* sysdeps/x86_64/backtrace.c: Include <gnu/lib-names.h>.
	(init): Use LIBGCC_S_SO not hardcoded "libgcc_s.so.1".
This commit is contained in:
Joseph Myers 2018-01-16 20:53:03 +00:00
parent 10d200dbac
commit 4942c4ea48
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2018-01-16 Joseph Myers <joseph@codesourcery.com>
* sysdeps/x86_64/backtrace.c: Include <gnu/lib-names.h>.
(init): Use LIBGCC_S_SO not hardcoded "libgcc_s.so.1".
2018-01-16 Florian Weimer <fweimer@redhat.com>
* nptl/Makefile [$(have-cxx-thread_local)] (tests-unsupported):

View File

@ -20,6 +20,7 @@
#include <libc-lock.h>
#include <dlfcn.h>
#include <execinfo.h>
#include <gnu/lib-names.h>
#include <stdlib.h>
#include <unwind.h>
@ -49,7 +50,7 @@ dummy_getcfa (struct _Unwind_Context *ctx __attribute__ ((unused)))
static void
init (void)
{
libgcc_handle = __libc_dlopen ("libgcc_s.so.1");
libgcc_handle = __libc_dlopen (LIBGCC_S_SO);
if (libgcc_handle == NULL)
return;