diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c | 27 |
1 files changed, 23 insertions, 4 deletions
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 d04d6e5d00..bc27b08728 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c +++ b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2013 Free Software Foundation, Inc. +/* Copyright (C) 2009-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>. @@ -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,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 */ |