From 93a45ff1ca6d459618bb0cf93580c4b2809a4b61 Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Tue, 7 Jan 2014 09:36:31 +0100 Subject: S/390: Make jmp_buf extendible. --- .../unix/sysv/linux/s390/s390-64/____longjmp_chk.c | 25 +++++++++++++++++++--- .../unix/sysv/linux/s390/s390-64/nptl/libc.abilist | 10 +++++++++ .../linux/s390/s390-64/nptl/libpthread.abilist | 4 ++++ 3 files changed, 36 insertions(+), 3 deletions(-) (limited to 'sysdeps/unix/sysv/linux/s390/s390-64') diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c index a3b1375a0d..bc27b08728 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c +++ b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c @@ -26,8 +26,8 @@ #include #include #include - -#define __longjmp ____longjmp_chk +#include +#include #define CHECK_SP(env, guard) \ do \ @@ -51,4 +51,23 @@ } \ } while (0) -#include "__longjmp.c" + +#if defined NOT_IN_libc +/* Build a non-versioned object for rtld-*. */ +# define __longjmp ____longjmp_chk +# include "__longjmp-common.c" + +#else /* !NOT_IN_libc */ +# define __longjmp ____v2__longjmp_chk +# include "__longjmp-common.c" +# undef __longjmp + +# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_11, GLIBC_2_19) +# undef __longjmp +# define __V1_JMPBUF +# define __longjmp ____v1__longjmp_chk +# include "__longjmp-common.c" +# undef __longjmp + +# endif +#endif /* !NOT_IN_libc */ diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist index 265f66d905..05b5286058 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist @@ -95,6 +95,16 @@ GLIBC_2.17 GLIBC_2.18 GLIBC_2.18 A __cxa_thread_atexit_impl F +GLIBC_2.19 + GLIBC_2.19 A + __longjmp_chk F + __setjmp F + __sigsetjmp F + _longjmp F + _setjmp F + longjmp F + setjmp F + siglongjmp F GLIBC_2.2 GLIBC_2.2 A _Exit F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libpthread.abilist index 6613c09b06..51a8a7ff60 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libpthread.abilist @@ -12,6 +12,10 @@ GLIBC_2.18 GLIBC_2.18 A pthread_getattr_default_np F pthread_setattr_default_np F +GLIBC_2.19 + GLIBC_2.19 A + longjmp F + siglongjmp F GLIBC_2.2 GLIBC_2.2 A _IO_flockfile F -- cgit 1.4.1