glibc/sysdeps/unix/sysv/linux/s390
Stefan Liebler 8beba15d53 S390: Add cfi information for start routines in order to stop unwinding.
GDB failed to detect the outermost frame while showing the backtrace
within a thread:
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Before this patch, the start routines like thread_start had no cfi information.
GDB is then using the prologue unwinder if no cfi information is available.
This unwinder tries to unwind r15 and stops e.g. if r15 was updated or
on some jump-instructions.

On older glibc-versions (before commit "Remove cached PID/TID in clone"
c579f48edb), the thread_start function used
such a jump-instruction and GDB did not fail with an error.

This patch adds cfi information for _start, thread_start and __makecontext_ret
and marks r14 as undefined which marks the frame as outermost frame and GDB
stops the backtrace. Also tested different gcc versions in order to test
_Unwind_Backtrace() in libgcc as this is used by backtrace() in glibc.

ChangeLog:

	* sysdeps/s390/s390-64/start.S (_start): Add cfi information for r14.
	* sysdeps/s390/s390-32/start.S: (_start): Likewise
	* sysdeps/unix/sysv/linux/s390/s390-64/clone.S
	(thread_start): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/clone.S
	(thread_start): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
	(__makecontext_ret): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
	(__makecontext_ret): Likewise.
2017-11-21 08:45:28 +01:00
..
bits The -Wstringop-truncation option new in GCC 8 detects common misuses 2017-11-15 17:39:59 -07:00
fpu
s390-32 S390: Add cfi information for start routines in order to stop unwinding. 2017-11-21 08:45:28 +01:00
s390-64 S390: Add cfi information for start routines in order to stop unwinding. 2017-11-21 08:45:28 +01:00
sys Fix mcontext_t sigcontext namespace (bug 21457). 2017-08-30 22:02:04 +00:00
arch-fork.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
brk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
configure
configure.ac
dl-cache.h
dl-procinfo.h Add include guards to dl-procinfo.h 2017-06-07 11:11:38 +05:30
elision-conf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
elision-conf.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
elision-lock.c S390: Adjust lock elision code after review. 2017-01-20 09:53:04 +01:00
elision-timed.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
elision-trylock.c S390: Adjust lock elision code after review. 2017-01-20 09:53:04 +01:00
elision-unlock.c S390: Adjust lock elision code after review. 2017-01-20 09:53:04 +01:00
force-elision.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
htm.h S390: Adjust lock elision code after review. 2017-01-20 09:53:04 +01:00
Implies
init-first.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
jmp-unwind.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
kernel-features.h Consolidate Linux send implementation 2017-03-09 15:22:06 +01:00
ldconfig.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ldd-rewrite.sed
libanl.abilist
libc-vdso.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
localplt.data ld.so: Introduce struct dl_exception 2017-08-10 16:54:57 +02:00
longjmp_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lowlevellock.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Makefile Remove abi-*-options compiler flags 2017-08-28 17:16:53 +02:00
mmap_internal.h Consolidate Linux mmap implementation (BZ#21270) 2017-04-12 11:04:28 -03:00
nldbl-abi.h
opensock.c
pt-longjmp.c Fix s390 version of pt-longjmp.c 2017-08-09 10:47:36 +02:00
pt-vfork.S
pthread_mutex_cond_lock.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
pthread_mutex_lock.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
pthread_mutex_timedlock.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
pthread_mutex_trylock.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
readelflib.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
rt-sysdep.S
sa_len.c
semtimedop.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sigcontextinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sysconf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
system.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-ptrace-singleblock.c S390: Fix tst-ptrace-singleblock if kernel does not support PTRACE_SINGLEBLOCK. 2017-07-11 10:38:44 +02:00
ucontext_i.sym
Versions