From patchwork Mon Nov 14 14:57:53 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 17455 Received: (qmail 71432 invoked by alias); 14 Nov 2016 14:57:57 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 71421 invoked by uid 89); 14 Nov 2016 14:57:56 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.7 required=5.0 tests=BAYES_00, KAM_LAZY_DOMAIN_SECURITY, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=1085, 2.20, strong_alias, stap-probe.h X-HELO: mx1.redhat.com Date: Mon, 14 Nov 2016 15:57:53 +0100 To: libc-alpha@sourceware.org Subject: [PATCH] s390x: Add hidden definition for __sigsetjmp User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Message-Id: <20161114145753.3DF6D439942E0@oldenburg.str.redhat.com> From: fweimer@redhat.com (Florian Weimer) 2016-11-14 Florian Weimer * sysdeps/s390/s390-64/setjmp.S (NEED_COMPAT_SYMBOLS): New macro. (libc_hidden_def): Remove redefinition. (__sigsetjmp): Add hidden definition. * sysdeps/s390/s390-32/setjmp.S (NEED_COMPAT_SYMBOLS): New macro. (libc_hidden_def): Remove redefinition. (__sigsetjmp): Add hidden definition. diff --git a/sysdeps/s390/s390-32/setjmp.S b/sysdeps/s390/s390-32/setjmp.S index dbacb0f..c460b5e 100644 --- a/sysdeps/s390/s390-32/setjmp.S +++ b/sysdeps/s390/s390-32/setjmp.S @@ -24,17 +24,15 @@ #include #include -#if !IS_IN (rtld) -# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) - /* we need a unique name in case of symbol versioning. */ -# define setjmp __v1setjmp -# define _setjmp __v1_setjmp -# define __sigsetjmp __v1__sigsetjmp - -# undef libc_hidden_def -# define libc_hidden_def(name) strong_alias(_setjmp, __GI__setjmp) -# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ -#endif /* !IS_IN (rtld) */ +#if !IS_IN (rtld) && defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) +# define NEED_COMPAT_SYMBOLS 1 +/* We need a unique name in case of symbol versioning. */ +# define setjmp __v1setjmp +# define _setjmp __v1_setjmp +# define __sigsetjmp __v1__sigsetjmp +#else +# define NEED_COMPAT_SYMBOLS 0 +#endif /* We include the BSD entry points here as well. */ ENTRY (setjmp) @@ -47,7 +45,11 @@ ENTRY(_setjmp) lhi %r3,0 /* second argument of zero */ j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */ END (_setjmp) +#if NEED_COMPAT_SYMBOLS +strong_alias (_setjmp, __GI__setjmp) +#else libc_hidden_def (_setjmp) +#endif ENTRY(__setjmp) lhi %r3,0 /* second argument of zero */ @@ -92,15 +94,19 @@ ENTRY(__sigsetjmp) .L1: .long __sigjmp_save #endif END (__sigsetjmp) +#if NEED_COMPAT_SYMBOLS +strong_alias (__sigsetjmp, __GI___sigsetjmp) +#else +libc_hidden_def (__sigsetjmp) +#endif -#if !IS_IN (rtld) -# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) +#if NEED_COMPAT_SYMBOLS /* In glibc release 2.19 new versions of setjmp-functions were introduced, but were reverted before 2.20. Thus both versions are the same function. */ -# undef setjmp -# undef _setjmp -# undef __sigsetjmp +# undef setjmp +# undef _setjmp +# undef __sigsetjmp strong_alias (__v1setjmp, __v2setjmp); versioned_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0); @@ -113,5 +119,4 @@ compat_symbol (libc, __v2_setjmp, _setjmp, GLIBC_2_19); strong_alias (__v1__sigsetjmp, __v2__sigsetjmp); versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0); compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19); -# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ -#endif /* if !IS_IN (rtld) */ +#endif /* NEED_COMPAT_SYMBOLS */ diff --git a/sysdeps/s390/s390-64/setjmp.S b/sysdeps/s390/s390-64/setjmp.S index bbcb70d..09f1a8d 100644 --- a/sysdeps/s390/s390-64/setjmp.S +++ b/sysdeps/s390/s390-64/setjmp.S @@ -24,17 +24,15 @@ #include #include -#if !IS_IN (rtld) -# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) - /* we need a unique name in case of symbol versioning. */ -# define setjmp __v1setjmp -# define _setjmp __v1_setjmp -# define __sigsetjmp __v1__sigsetjmp - -# undef libc_hidden_def -# define libc_hidden_def(name) strong_alias(_setjmp, __GI__setjmp) -# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ -#endif /* !IS_IN (rtld) */ +#if !IS_IN (rtld) && defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) +# define NEED_COMPAT_SYMBOLS 1 +/* We need a unique name in case of symbol versioning. */ +# define setjmp __v1setjmp +# define _setjmp __v1_setjmp +# define __sigsetjmp __v1__sigsetjmp +#else +# define NEED_COMPAT_SYMBOLS 0 +#endif /* We include the BSD entry points here as well. */ ENTRY (setjmp) @@ -47,7 +45,11 @@ ENTRY(_setjmp) slgr %r3,%r3 /* Second argument of zero. */ j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */ END (_setjmp) +#if NEED_COMPAT_SYMBOLS +strong_alias (_setjmp, __GI__setjmp) +#else libc_hidden_def (_setjmp) +#endif ENTRY(__setjmp) slgr %r3,%r3 /* Second argument of zero. */ @@ -87,15 +89,19 @@ ENTRY(__sigsetjmp) jg __sigjmp_save #endif END (__sigsetjmp) +#if NEED_COMPAT_SYMBOLS +strong_alias (__sigsetjmp, __GI___sigsetjmp) +#else +libc_hidden_def (__sigsetjmp) +#endif -#if !IS_IN (rtld) -# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) +#if NEED_COMPAT_SYMBOLS /* In glibc release 2.19 new versions of setjmp-functions were introduced, but were reverted before 2.20. Thus both versions are the same function. */ -# undef setjmp -# undef _setjmp -# undef __sigsetjmp +# undef setjmp +# undef _setjmp +# undef __sigsetjmp strong_alias (__v1setjmp, __v2setjmp); versioned_symbol (libc, __v1setjmp, setjmp, GLIBC_2_0); @@ -108,5 +114,4 @@ compat_symbol (libc, __v2_setjmp, _setjmp, GLIBC_2_19); strong_alias (__v1__sigsetjmp, __v2__sigsetjmp); versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0); compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19); -# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */ -#endif /* if !IS_IN (rtld) */ +#endif /* NEED_COMPAT_SYMBOLS */