glibc/sysdeps/unix/sysv/linux/powerpc
Adhemerval Zanella a43565ac44 Refactor sigcontextinfo.h
This patch refactor sigcontextinfo.h header to use SA_SIGINFO as default
for both gmon and debug implementations.  This allows simplify
profil-counter.h on Linux to use a single implementation and remove the
requirements for newer ports to redefine __sigaction/sigaction to use
SA_SIGINFO.

The GET_PC macro is also replaced with a function sigcontext_get_pc that
returns an uintptr_t instead of a void pointer.  It allows easier convertion
to integer on ILP32 architecture, such as x32, without the need to suppress
compiler warnings.

The patch also requires some refactor of register-dump.h file for some
architectures (to reflect it is now called from a sa_sigaction instead of
sa_handler signal context).

   - Alpha, i386, and s390 are straighfoward to take in consideration the
     new argument type.

   - ia64 takes in consideration the kernel pass a struct sigcontextt
     as third argument for sa_sigaction.

   - sparc take in consideration the kernel pass a pt_regs struct
     as third argument for sa_sigaction.

   - m68k dummy function is removed and the FP state is dumped on
     register_dump itself.

   - For SH the register-dump.h file is consolidate on a common implementation
     and the floating-point state is checked based on ownedfp field.

The register_dump does not change its output format in any affected
architecture.

I checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu,
arm-linux-gnueabihf, sparcv9-linux-gnu, sparc64-linux-gnu, powerpc-linux-gnu,
powerpc64-linux-gnu, and powerpc64le-linux-gnu.

I also checked the libSegFault.so through catchsegv on alpha-linux-gnu,
m68k-linux-gnu and sh4-linux-gnu to confirm the output has not changed.

	Adhemerval Zanella  <adhemerval.zanella@linaro.org>
	Florian Weimer  <fweimer@redhat.com>

	* debug/segfault.c (install_handler): Use SA_SIGINFO if defined.
	* sysdeps/generic/profil-counter.h (__profil_counter): Cast to
	uintptr_t.
	* sysdeps/generic/sigcontextinfo.h (GET_PC): Rename to
	sigcontext_get_pc and return aligned cast to uintptr_t.
	* sysdeps/mach/hurd/i386/sigcontextinfo.h (GET_PC): Likewise.
	* sysdeps/posix/profil.c (profil_count): Change PC argument to
	uintptr_t.
	(__profil): Use SA_SIGINFO.
	* sysdeps/posix/sprofil.c (profil_count): Change PCP argument to
	uintptr_t.
	(__sprofil): Use SA_SIGINFO.
	* sysdeps/unix/sysv/linux/profil-counter.h: New file.
	* sysdeps/unix/sysv/linux/aarch64/profil-counter.h: Remove file.
	* sysdeps/unix/sysv/linux/csky/profil-counter.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/profil-counter.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/profil-counter.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/profil-counter.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/profil-counter.h: Likewise.
	* sysdeps/unix/sysv/linux/nios2/profil-counter.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/profil-counter.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/profil-counter.h: Likewise.
	* sysdeps/unix/sysv/linux/riscv/profil-counter.h: Likewise.
	* sysdeps/sysv/linux/s390/s390-32/profil-counter.h: Likewise.
	* sysdeps/sysv/linux/s390/s390-64/profil-counter.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/profil-counter.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/profil-counter.h (__profil_counter):
	Assume SA_SIGINFO and use sigcontext_get_pc instead of GET_PC.
	* sysdeps/unix/sysv/linux/sparc/profil-counter.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h: Remove file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h: Likewise.
	* sysdpes/unix/sysv/linux/aarch64/sigcontextinfo.h (SIGCONTEXT,
	GET_PC, __sigaction, sigaction): Remove defines.
	(sigcontext_get_pc): New function.
	* sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/csky/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sigcontextinfo.h: Likewise.
	* sysdeps/sysv/linux/sparc/sparc32/sigcontextinfo.h: Likewise.
	* sysdeps/sysv/linux/sparc/sparc64/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/register-dump.h (register_dump):
	Handle CTX argument as ucontext_t.
	* sysdeps/unix/sysv/linux/i386/register-dump.h: Likewise.
	Likewise.
	* sysdeps/unix/sysv/linux/m68k/register-dump.h: Likewise.
	* sysdeps/sysv/linux/s390/s390-32/register-dump.h: Likewise.
	* sysdeps/sysv/linux/s390/s390-64/register-dump.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/register-dump.h: New file.
	* sysdeps/unix/sysv/linux/sh/sh4/register-dump.h: Remove File.
	* sysdeps/unix/sysv/linux/sh/sh3/register-dump.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h: Likewise.
	* sysdeps/unix/sysv/linux/Makefile (tests-internal): Add
	tst-sigcontextinfo-get_pc.
	* sysdeps/unix/sysv/linux/tst-sigcontextinfo-get_pc.c: New file.
	(CFLAGS-tst-sigcontextinfo-get_pc.c): New rule.
2019-08-23 11:30:56 -03:00
..
bits Linux: Use in-tree copy of SO_ constants for !__USE_MISC [BZ #24532] 2019-07-24 10:59:34 +02:00
powerpc32 nptl: Move pthread_attr_getdetachstate implementation into libc 2019-08-16 22:44:44 +02:00
powerpc64 nptl: Move pthread_attr_getdetachstate implementation into libc 2019-08-16 22:44:44 +02:00
sys powerpc: Fix typos and field name in comments 2019-08-22 10:26:45 -03:00
configure Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac. 2014-06-24 20:53:03 +00:00
configure.ac Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac. 2014-06-24 20:53:03 +00:00
dl-brk.S Update. 2002-04-06 01:45:15 +00:00
dl-cache.h Update. 2003-06-25 08:19:44 +00:00
dl-static.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dl-sysdep.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
elision-conf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
elision-conf.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
elision-lock.c Remove support for PowerPC SPE extension (powerpc*-*-*gnuspe*). 2019-05-22 10:05:40 -04:00
elision-timed.c nptl: Rename lll_timedlock to lll_clocklock and add clockid parameter 2019-07-12 13:36:25 +00:00
elision-trylock.c Remove support for PowerPC SPE extension (powerpc*-*-*gnuspe*). 2019-05-22 10:05:40 -04:00
elision-unlock.c Remove support for PowerPC SPE extension (powerpc*-*-*gnuspe*). 2019-05-22 10:05:40 -04:00
force-elision.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
get_timebase_freq.c powerpc: Fix static-linked version of __ppc_get_timebase_freq [BZ #24640] 2019-06-19 19:11:06 -03:00
gettimeofday.c Add missing VDSO_{NAME,HASH}_* macros and use them for PREPARE_VERSION_KNOWN 2019-06-21 10:43:22 -03:00
htm.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Implies NPTL is no longer an add-on! 2014-07-07 09:29:06 -07:00
init-first.c Add missing VDSO_{NAME,HASH}_* macros and use them for PREPARE_VERSION_KNOWN 2019-06-21 10:43:22 -03:00
ioctl.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ipc_priv.h sysvipc: Add missing bit of semtimedop s390 consolidation 2019-05-21 10:43:10 -03:00
kernel_sigaction.h m68k: Fix sigaction kernel definition (BZ #23960) 2018-12-18 16:45:10 -02:00
kernel_termios.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
kernel-features.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ldconfig.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ldd-rewrite.sed Update. 2002-09-05 10:28:51 +00:00
ldsodefs.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
libc-start.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
libc-start.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
libc-vdso.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
lowlevellock.h nptl: Rename lll_timedlock to lll_clocklock and add clockid parameter 2019-07-12 13:36:25 +00:00
Makefile powerpc: Fix static-linked version of __ppc_get_timebase_freq [BZ #24640] 2019-06-19 19:11:06 -03:00
nldbl-abi.h 2006-01-27 Dwayne Grant McConnell <decimal@us.ibm.com> 2006-01-28 00:15:15 +00:00
pt-longjmp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
pthread_attr_setstack.c PowerPC: Move remaining nptl/sysdeps/unix/sysv/linux/powerpc/ files. 2014-05-26 11:45:14 -05:00
pthread_attr_setstacksize.c PowerPC: Move remaining nptl/sysdeps/unix/sysv/linux/powerpc/ files. 2014-05-26 11:45:14 -05:00
pthread_mutex_cond_lock.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
pthread_mutex_lock.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
pthread_mutex_timedlock.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
pthread_mutex_trylock.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
readelflib.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
rt-sysdep.c Update. 2004-04-19 06:19:34 +00:00
sigcontextinfo.h Refactor sigcontextinfo.h 2019-08-23 11:30:56 -03:00
syscall.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sysconf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sysdep.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-gettimebasefreq-static.c powerpc: Fix static-linked version of __ppc_get_timebase_freq [BZ #24640] 2019-06-19 19:11:06 -03:00
test-gettimebasefreq.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-powerpc-linux-sysconf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
time.c Add missing VDSO_{NAME,HASH}_* macros and use them for PREPARE_VERSION_KNOWN 2019-06-21 10:43:22 -03:00
Versions Revert {send,sendm,recv,recvm}msg conformance changes 2016-06-10 11:58:16 -03:00