diff options
author | Alan Modra <amodra@gmail.com> | 2013-08-17 18:35:40 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2013-10-04 10:38:28 +0930 |
commit | 9b874b2f1eb2550e39d3e9c38772e64a767e9de2 (patch) | |
tree | be8e92294d137841bf6130e63f823f51d41f91a9 /nptl | |
parent | be1e5d311342e08ae1f8013342df27b7ded2c156 (diff) | |
download | glibc-9b874b2f1eb2550e39d3e9c38772e64a767e9de2.tar glibc-9b874b2f1eb2550e39d3e9c38772e64a767e9de2.tar.gz glibc-9b874b2f1eb2550e39d3e9c38772e64a767e9de2.tar.bz2 glibc-9b874b2f1eb2550e39d3e9c38772e64a767e9de2.zip |
PowerPC ugly symbol versioning
http://sourceware.org/ml/libc-alpha/2013-08/msg00090.html
This patch fixes symbol versioning in setjmp/longjmp. The existing
code uses raw versions, which results in wrong symbol versioning when
you want to build glibc with a base version of 2.19 for LE.
Note that the merging the 64-bit and 32-bit versions in novmx-lonjmp.c
and pt-longjmp.c doesn't result in GLIBC_2.0 versions for 64-bit, due
to the base in shlib_versions.
* sysdeps/powerpc/longjmp.c: Use proper symbol versioning macros.
* sysdeps/powerpc/novmx-longjmp.c: Likewise.
* sysdeps/powerpc/powerpc32/bsd-_setjmp.S: Likewise.
* sysdeps/powerpc/powerpc32/bsd-setjmp.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/__longjmp.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/setjmp.S: Likewise.
* sysdeps/powerpc/powerpc32/mcount.c: Likewise.
* sysdeps/powerpc/powerpc32/setjmp.S: Likewise.
* sysdeps/powerpc/powerpc64/setjmp.S: Likewise.
* nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Likewise.
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c b/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c index ace858fd13..4ac913c3be 100644 --- a/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c +++ b/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c @@ -41,13 +41,8 @@ void __novmx_longjmp (jmp_buf env, int val) __novmx__libc_longjmp (env, val); } -# if __WORDSIZE == 64 -symbol_version (__novmx_longjmp,longjmp,GLIBC_2.3); -symbol_version (__novmx_siglongjmp,siglongjmp,GLIBC_2.3); -# else -symbol_version (__novmx_longjmp,longjmp,GLIBC_2.0); -symbol_version (__novmx_siglongjmp,siglongjmp,GLIBC_2.0); -# endif +compat_symbol (libpthread, __novmx_longjmp, longjmp, GLIBC_2_0); +compat_symbol (libpthread, __novmx_siglongjmp, siglongjmp, GLIBC_2_0); #endif /* defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)) */ void @@ -62,5 +57,5 @@ __vmx_siglongjmp (jmp_buf env, int val) __libc_siglongjmp (env, val); } -versioned_symbol (libc, __vmx_longjmp, longjmp, GLIBC_2_3_4); -versioned_symbol (libc, __vmx_siglongjmp, siglongjmp, GLIBC_2_3_4); +versioned_symbol (libpthread, __vmx_longjmp, longjmp, GLIBC_2_3_4); +versioned_symbol (libpthread, __vmx_siglongjmp, siglongjmp, GLIBC_2_3_4); |