S390: Build failure due to nptl/pt-longjmp.c changes.

Message ID mbhqaa$ldf$1@ger.gmane.org
State Superseded
Headers

Commit Message

Stefan Liebler Feb. 12, 2015, 9:04 a.m. UTC
  Hi,

i get a build-failure on s390 due to the latest change in 
nptl/pt-longjmp.c 
(https://sourceware.org/ml/libc-alpha/2015-02/msg00123.html).
The s390-version of pt-longjmp.c includes the generic one and adds an 
additional compat-version, because those symbols were introduced and 
reverted in glibc 2.19.

This patch fixes the inclusion of nptl/pt-longjmp.c and uses the 
introduced macro DEFINE_LONGJMP to generate the additional symbol for 
the compat-version.

Ok to commit?

Bye
Stefan

---
2015-02-12  Stefan Liebler  <stli@linux.vnet.ibm.com>

	* sysdeps/unix/sysv/linux/s390/pt-longjmp.c
	(__v1longjmp): Remove versioned symbol.
	(__v1siglongjmp): Remove alias and versioned symbol.
	(__v2longjmp): Use DEFINE_LONGJMP instead of alias.
	(__v2siglongjmp): Likewise.
  

Comments

Roland McGrath Feb. 12, 2015, 7:25 p.m. UTC | #1
>  #if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)

Drop the SHARED condition.  SHLIB_COMPAT already covers that.

Otherwise this looks fine to me.
  

Patch

diff --git a/sysdeps/unix/sysv/linux/s390/pt-longjmp.c b/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
index 017ea31..fddcf20 100644
--- a/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
+++ b/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
@@ -20,25 +20,14 @@ 
 
 #include  <shlib-compat.h>
 
-#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)
-	/* we need a unique name in case of symbol versioning.  */
-# define longjmp __v1longjmp
-#endif /* defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20))  */
-
 #include <nptl/pt-longjmp.c>
 
 #if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)
 /* In glibc release 2.19 new versions of longjmp-functions were introduced,
    but were reverted before 2.20. Thus both versions are the same function.  */
 
-# undef longjmp
-
-strong_alias (__v1longjmp, __v2longjmp)
-versioned_symbol (libpthread, __v1longjmp, longjmp, GLIBC_2_0);
+DEFINE_LONGJMP (__v2longjmp)
 compat_symbol (libpthread, __v2longjmp, longjmp, GLIBC_2_19);
-
-weak_alias (siglongjmp, __v1siglongjmp)
-weak_alias (siglongjmp, __v2siglongjmp)
-versioned_symbol (libpthread, __v1siglongjmp, siglongjmp, GLIBC_2_0);
+DEFINE_LONGJMP (__v2siglongjmp)
 compat_symbol (libpthread, __v2siglongjmp, siglongjmp, GLIBC_2_19);
 #endif /* defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20))  */