From 82fd7314c7df8c5555dce027df6f2c98ca5a927f Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Fri, 12 Feb 2021 19:20:27 +0300 Subject: powerpc: Remove backtrace implementation The powerpc optimization to provide a fast stacktrace requires some ad-hoc code to handle Linux signal frames and the change is fragile once the kernel decides to slight change its execution sequence [1]. The generic implementation work as-is and it should be future proof since the kernel provides the expected CFI directives in vDSO shared page. Checked on powerpc-linux-gnu, powerpc64le-linux-gnu, and powerpc64-linux-gnu. [1] https://sourceware.org/pipermail/libc-alpha/2021-January/122027.html --- sysdeps/unix/sysv/linux/dl-vdso-setup.c | 11 ----------- sysdeps/unix/sysv/linux/dl-vdso-setup.h | 9 --------- sysdeps/unix/sysv/linux/powerpc/sysdep.h | 7 ------- 3 files changed, 27 deletions(-) (limited to 'sysdeps/unix') diff --git a/sysdeps/unix/sysv/linux/dl-vdso-setup.c b/sysdeps/unix/sysv/linux/dl-vdso-setup.c index 037a2774b6..b42b9dfe32 100644 --- a/sysdeps/unix/sysv/linux/dl-vdso-setup.c +++ b/sysdeps/unix/sysv/linux/dl-vdso-setup.c @@ -71,17 +71,6 @@ PROCINFO_CLASS int (*_dl_vdso_clock_getres_time64) (clockid_t, # ifdef HAVE_GET_TBFREQ PROCINFO_CLASS uint64_t (*_dl_vdso_get_tbfreq)(void) RELRO; # endif -/* The sigtramp are used on powerpc backtrace without using - INLINE_VSYSCALL, so there is no need to set their type. */ -# ifdef HAVE_SIGTRAMP_RT64 -PROCINFO_CLASS void *_dl_vdso_sigtramp_rt64 RELRO; -# endif -# ifdef HAVE_SIGTRAMP_RT32 -PROCINFO_CLASS void *_dl_vdso_sigtramp_rt32 RELRO; -# endif -# ifdef HAVE_SIGTRAMP_32 -PROCINFO_CLASS void *_dl_vdso_sigtramp_32 RELRO; -# endif #endif #undef RELRO diff --git a/sysdeps/unix/sysv/linux/dl-vdso-setup.h b/sysdeps/unix/sysv/linux/dl-vdso-setup.h index daf9873c4e..75b00a0046 100644 --- a/sysdeps/unix/sysv/linux/dl-vdso-setup.h +++ b/sysdeps/unix/sysv/linux/dl-vdso-setup.h @@ -47,15 +47,6 @@ setup_vdso_pointers (void) #ifdef HAVE_GET_TBFREQ GLRO(dl_vdso_get_tbfreq) = dl_vdso_vsym (HAVE_GET_TBFREQ); #endif -#ifdef HAVE_SIGTRAMP_RT64 - GLRO(dl_vdso_sigtramp_rt64) = dl_vdso_vsym (HAVE_SIGTRAMP_RT64); -#endif -#ifdef HAVE_SIGTRAMP_RT32 - GLRO(dl_vdso_sigtramp_rt32) = dl_vdso_vsym (HAVE_SIGTRAMP_RT32); -#endif -#ifdef HAVE_SIGTRAMP_32 - GLRO(dl_vdso_sigtramp_32) = dl_vdso_vsym (HAVE_SIGTRAMP_32); -#endif } #endif diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/sysdep.h index 4b9d43c636..ff9644d209 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sysdep.h +++ b/sysdeps/unix/sysv/linux/powerpc/sysdep.h @@ -255,11 +255,4 @@ #define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday" #define HAVE_GET_TBFREQ "__kernel_get_tbfreq" -#if defined(__PPC64__) || defined(__powerpc64__) -# define HAVE_SIGTRAMP_RT64 "__kernel_sigtramp_rt64" -#else -# define HAVE_SIGTRAMP_32 "__kernel_sigtramp32" -# define HAVE_SIGTRAMP_RT32 "__kernel_sigtramp_rt32" -#endif - #endif /* _LINUX_POWERPC_SYSDEP_H */ -- cgit v1.2.3-70-g09d2