Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:GA
glibc.33856
s390-unwind-info.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File s390-unwind-info.patch of Package glibc.33856
2017-11-21 Stefan Liebler <stli@linux.vnet.ibm.com> * 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. Index: glibc-2.22/sysdeps/s390/s390-32/start.S =================================================================== --- glibc-2.22.orig/sysdeps/s390/s390-32/start.S +++ glibc-2.22/sysdeps/s390/s390-32/start.S @@ -34,6 +34,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <sysdep.h> + /* This is the canonical entry point, usually the first thing in the text segment. Most registers' values are unspecified, except for: @@ -57,6 +59,10 @@ .globl _start .type _start,@function _start: + cfi_startproc + /* Mark r14 as undefined in order to stop unwinding here! */ + cfi_undefined (r14) + /* Check if the kernel provides highgprs facility if needed by the binary. */ @@ -188,6 +194,7 @@ _start: /* crash if __libc_start_main returns */ .word 0 + cfi_endproc .Llit: #ifndef PIC .L1: .long __libc_csu_init Index: glibc-2.22/sysdeps/s390/s390-64/start.S =================================================================== --- glibc-2.22.orig/sysdeps/s390/s390-64/start.S +++ glibc-2.22/sysdeps/s390/s390-64/start.S @@ -34,6 +34,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <sysdep.h> + /* This is the canonical entry point, usually the first thing in the text segment. Most registers' values are unspecified, except for: @@ -57,6 +59,9 @@ .globl _start .type _start,@function _start: + cfi_startproc + /* Mark r14 as undefined in order to stop unwinding here! */ + cfi_undefined (r14) /* Load argc and argv from stack. */ la %r4,8(%r15) # get argv lg %r3,0(%r15) # get argc @@ -91,6 +96,8 @@ _start: /* Crash if __libc_start_main returns. */ .word 0 + cfi_endproc + /* Define a symbol for the first piece of initialized data. */ .data .globl __data_start Index: glibc-2.22/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S =================================================================== --- glibc-2.22.orig/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S +++ glibc-2.22/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S @@ -17,15 +17,9 @@ #include <sysdep.h> -/* We do not want .eh_frame info so that __makecontext_ret stops unwinding - if backtrace was called within a context created by makecontext. (There - is also no .eh_frame info for _start or thread_start.) */ -#undef cfi_startproc -#define cfi_startproc -#undef cfi_endproc -#define cfi_endproc - ENTRY(__makecontext_ret) + /* Mark r14 as undefined in order to stop unwinding here! */ + cfi_undefined (r14) basr %r14,%r7 ltr %r8,%r8 /* Check whether uc_link is 0. */ jz 1f Index: glibc-2.22/sysdeps/unix/sysv/linux/s390/s390-32/clone.S =================================================================== --- glibc-2.22.orig/sysdeps/unix/sysv/linux/s390/s390-32/clone.S +++ glibc-2.22/sysdeps/unix/sysv/linux/s390/s390-32/clone.S @@ -54,6 +54,9 @@ error: PSEUDO_END (__clone) thread_start: + cfi_startproc + /* Mark r14 as undefined in order to stop unwinding here! */ + cfi_undefined (r14) tmh %r3,1 /* CLONE_THREAD == 0x00010000 */ jne 1f lhi %r2,-1 @@ -70,4 +73,5 @@ thread_start: xc 0(4,%r15),0(%r15) basr %r14,%r1 /* jump to fn */ DO_CALL (exit, 1) + cfi_endproc weak_alias (__clone, clone) Index: glibc-2.22/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S =================================================================== --- glibc-2.22.orig/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S +++ glibc-2.22/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S @@ -17,15 +17,9 @@ #include <sysdep.h> -/* We do not want .eh_frame info so that __makecontext_ret stops unwinding - if backtrace was called within a context created by makecontext. (There - is also no .eh_frame info for _start or thread_start.) */ -#undef cfi_startproc -#define cfi_startproc -#undef cfi_endproc -#define cfi_endproc - ENTRY(__makecontext_ret) + /* Mark r14 as undefined in order to stop unwinding here! */ + cfi_undefined (r14) basr %r14,%r7 ltgr %r8,%r8 /* Check whether uc_link is 0. */ jz 1f Index: glibc-2.22/sysdeps/unix/sysv/linux/s390/s390-64/clone.S =================================================================== --- glibc-2.22.orig/sysdeps/unix/sysv/linux/s390/s390-64/clone.S +++ glibc-2.22/sysdeps/unix/sysv/linux/s390/s390-64/clone.S @@ -55,6 +55,9 @@ error: PSEUDO_END (__clone) thread_start: + cfi_startproc + /* Mark r14 as undefined in order to stop unwinding here! */ + cfi_undefined (r14) tmh %r3,1 /* CLONE_THREAD == 0x00010000 */ jne 1f lhi %r2,-1 @@ -73,4 +76,5 @@ thread_start: xc 0(8,%r15),0(%r15) basr %r14,%r1 /* jump to fn */ DO_CALL (exit, 1) + cfi_endproc weak_alias (__clone, clone)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor