summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/s390/s390-32
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2014-01-07 09:36:31 +0100
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>2014-01-07 09:36:31 +0100
commit93a45ff1ca6d459618bb0cf93580c4b2809a4b61 (patch)
tree01ba50a65134ba45d974f63156617392dabfd430 /sysdeps/unix/sysv/linux/s390/s390-32
parentd5780febe69c2fe42d857e2feed54e9f4ba9ab87 (diff)
S/390: Make jmp_buf extendible.
Diffstat (limited to 'sysdeps/unix/sysv/linux/s390/s390-32')
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c24
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/nptl/libpthread.abilist4
3 files changed, 35 insertions, 3 deletions
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
index e74f335768..a1b7a6a1ae 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
@@ -26,8 +26,8 @@
#include <stdint.h>
#include <signal.h>
#include <sys/syscall.h>
-
-#define __longjmp ____longjmp_chk
+#include <libc-symbols.h>
+#include <shlib-compat.h>
#define CHECK_SP(env, guard) \
do \
@@ -51,4 +51,22 @@
} \
} 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"
+
+# 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-32/nptl/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist
index b6256d5c25..18ec9944e1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist
@@ -1774,6 +1774,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
_IO_adjust_wcolumn F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libpthread.abilist
index 865364e130..699de0160c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libpthread.abilist
@@ -178,6 +178,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
__open64 F