diff options
author | Rogerio Alves <rcardoso@linux.vnet.ibm.com> | 2018-07-16 15:07:10 -0300 |
---|---|---|
committer | Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> | 2018-07-16 16:08:41 -0300 |
commit | 52b2a80fae89d2a99ac3d1866a73c8bbf7b608ff (patch) | |
tree | c861930d393bdd30c0cbdc7346aa388cee7eebf2 /sysdeps/powerpc/powerpc64/Makefile | |
parent | 3ae725dfb6d7f61447d27d00ed83e573bd5454f4 (diff) | |
download | glibc-52b2a80fae89d2a99ac3d1866a73c8bbf7b608ff.tar.gz glibc-52b2a80fae89d2a99ac3d1866a73c8bbf7b608ff.tar.xz glibc-52b2a80fae89d2a99ac3d1866a73c8bbf7b608ff.zip |
powerpc64: Always restore TOC on longjmp [BZ #21895]
This patch changes longjmp to always restore the TOC pointer (r2 register) to the caller frame on powerpc64 and powerpc64le. This is related to bug 21895 that reports a situation where you have a static longjmp to a shared object file. [BZ #21895] * sysdeps/powerpc/powerpc64/__longjmp-common.S: Remove condition code for restoring r2 in longjmp. * sysdeps/powerpc/powerpc64/Makefile: Added tst-setjmp-bug21895-static to test list. Added rules to build test tst-setjmp-bug21895-static. Added module setjmp-bug21895 and rules to build a shared object from it. * sysdeps/powerpc/powerpc64/setjmp-bug21895.c: New test file. * sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c: New test file. Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Diffstat (limited to 'sysdeps/powerpc/powerpc64/Makefile')
-rw-r--r-- | sysdeps/powerpc/powerpc64/Makefile | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/Makefile b/sysdeps/powerpc/powerpc64/Makefile index 9d15db0328..a0bd0c9504 100644 --- a/sysdeps/powerpc/powerpc64/Makefile +++ b/sysdeps/powerpc/powerpc64/Makefile @@ -47,3 +47,15 @@ ifeq ($(subdir),gmon) CFLAGS-mcount.c += $(no-special-regs) sysdep_routines += ppc-mcount endif + +ifeq ($(subdir),setjmp) +tests += tst-setjmp-bug21895-static +tests-static += tst-setjmp-bug21895-static +modules-names += setjmp-bug21895 + +$(objpfx)tst-setjmp-bug21895-static: $(common-objpfx)dlfcn/libdl.a +$(objpfx)tst-setjmp-bug21895-static.out: $(objpfx)setjmp-bug21895.so + +tst-setjmp-bug21895-static-ENV = \ + LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)setjmp:$(common-objpfx)elf +endif |