From 3b1ac140b9257e9d08471c27bab898303a8ee221 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 7 Dec 2010 14:16:09 +0000 Subject: main/libc0.9.32: new snapshot. fix for nptl unwind_resume plt fixes vlc segfaulting (cherry picked from commit 5d11ca20ed78fe4cf148648fd444beb45c2cbb58) --- ...L_PREFIX-MULTILIB_DIR-dir-rather-than-DEV.patch | 34 ----------- main/libc0.9.32/0001-libc-fix-strtoq.patch | 44 --------------- main/libc0.9.32/APKBUILD | 12 ++-- .../nptl-fix-unwind_resume-plt-calls.patch | 65 ++++++++++++++++++++++ 4 files changed, 70 insertions(+), 85 deletions(-) delete mode 100644 main/libc0.9.32/0001-create-DEVEL_PREFIX-MULTILIB_DIR-dir-rather-than-DEV.patch delete mode 100644 main/libc0.9.32/0001-libc-fix-strtoq.patch create mode 100644 main/libc0.9.32/nptl-fix-unwind_resume-plt-calls.patch diff --git a/main/libc0.9.32/0001-create-DEVEL_PREFIX-MULTILIB_DIR-dir-rather-than-DEV.patch b/main/libc0.9.32/0001-create-DEVEL_PREFIX-MULTILIB_DIR-dir-rather-than-DEV.patch deleted file mode 100644 index aca6c8e87d..0000000000 --- a/main/libc0.9.32/0001-create-DEVEL_PREFIX-MULTILIB_DIR-dir-rather-than-DEV.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 965b6424d8288049e9802dfe505bd993b93ff009 Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Tue, 24 Aug 2010 08:13:58 +0000 -Subject: [PATCH] create DEVEL_PREFIX/MULTILIB_DIR dir rather than DEVEL_PREFIX/lib - -This fixes issue with GNU Make 3.82 when running: - - make install DESTDIR=$someplace - -Signed-off-by: Natanael Copa ---- - Makefile.in | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile.in b/Makefile.in -index 1c0e305..bffe998 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -289,10 +289,10 @@ HEADERS_RM-$(UCLIBC_SUSV4_LEGACY) += utime.h - ### ucontext.h - - ifneq ($(findstring install,$(MAKECMDGOALS)),) --$(addprefix $(PREFIX)$(DEVEL_PREFIX),include lib): -+$(addprefix $(PREFIX)$(DEVEL_PREFIX),include $(MULTILIB_DIR)): - $(do_mkdir) - # avoid warning about duplicate targets in rule or overrides --ifneq ($(abspath $(RUNTIME_PREFIX)$(MULTILIB_DIR)),$(abspath $(DEVEL_PREFIX)lib)) -+ifneq ($(abspath $(RUNTIME_PREFIX)$(MULTILIB_DIR)),$(abspath $(DEVEL_PREFIX)$(MULTILIB_DIR))) - $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR): - $(do_mkdir) - endif --- -1.7.2.2 - diff --git a/main/libc0.9.32/0001-libc-fix-strtoq.patch b/main/libc0.9.32/0001-libc-fix-strtoq.patch deleted file mode 100644 index 52696630b1..0000000000 --- a/main/libc0.9.32/0001-libc-fix-strtoq.patch +++ /dev/null @@ -1,44 +0,0 @@ -From cb7474c898b4c3aaee898231b1ea968adc2ad95e Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Fri, 26 Nov 2010 14:43:12 +0000 -Subject: [PATCH] libc: fix strtoq - -strtoq should always return a quad_t and be an alias of strtol on -64 bit and strtoll on 32 bit. - -Signed-off-by: Natanael Copa ---- - include/stdlib.h | 2 +- - libc/stdlib/stdlib.c | 3 +++ - 2 files changed, 4 insertions(+), 1 deletions(-) - -diff --git a/include/stdlib.h b/include/stdlib.h -index ce92ccd..300edf0 100644 ---- a/include/stdlib.h -+++ b/include/stdlib.h -@@ -214,7 +214,7 @@ __END_NAMESPACE_STD - - /* Convert a string to a quadword integer. */ - __extension__ --extern long long int strtoq (__const char *__restrict __nptr, -+extern quad_t strtoq (__const char *__restrict __nptr, - char **__restrict __endptr, int __base) - __THROW __nonnull ((1)) __wur; - /* Convert a string to an unsigned quadword integer. */ -diff --git a/libc/stdlib/stdlib.c b/libc/stdlib/stdlib.c -index ad0c4aa..4d608ee 100644 ---- a/libc/stdlib/stdlib.c -+++ b/libc/stdlib/stdlib.c -@@ -342,6 +342,9 @@ extern __typeof(__XL_NPP(strtol)) __XL_NPP(strtoll); - libc_hidden_proto(__XL_NPP(strtoll)) - strong_alias(__XL_NPP(strtol),__XL_NPP(strtoll)) - libc_hidden_def(__XL_NPP(strtoll)) -+#if !defined(L_strtol_l) -+strong_alias(strtol,strtoq) -+#endif - #endif - - #endif --- -1.7.3.2 - diff --git a/main/libc0.9.32/APKBUILD b/main/libc0.9.32/APKBUILD index 00b7046811..1454af20d2 100644 --- a/main/libc0.9.32/APKBUILD +++ b/main/libc0.9.32/APKBUILD @@ -1,9 +1,9 @@ # Maintainer: Natanael Copa _abiver=0.9.32 pkgname=libc$_abiver -_gitver=1011291225 +_gitver=1012071015 pkgver=${_abiver}_alpha0_git$_gitver -pkgrel=1 +pkgrel=0 pkgdesc="C library for developing embedded Linux systems" url=http://uclibc.org license="LGPL-2" @@ -21,12 +21,11 @@ _snapurl="http://git.uclibc.org/uClibc/snapshot/master.tar.bz2" _snapfile="$pkgname-$pkgver.tar.bz2" source="http://build.alpinelinux.org:8010/distfiles/$_snapfile compat-stack-guard.patch - 0001-create-DEVEL_PREFIX-MULTILIB_DIR-dir-rather-than-DEV.patch ldso-x86_64-support-protected-symbols.patch 1.patch 2.patch - 0001-libc-fix-strtoq.patch 0001-libm-x86_64-implement-fesetround.patch + nptl-fix-unwind_resume-plt-calls.patch uclibcconfig.x86 uclibcconfig.x86_64 uclibcconfig.i486 @@ -118,14 +117,13 @@ libthread_db() { mv "$pkgdir"/lib/libthread_db* "$subpkgdir"/lib/ } -md5sums="66220e34b070d7f9fc666f88956f4ef3 libc0.9.32-0.9.32_alpha0_git1011291225.tar.bz2 +md5sums="85166dc5c06591f1a9bc24ab6fca8328 libc0.9.32-0.9.32_alpha0_git1012071015.tar.bz2 4d408f72142ce55a0754948cc9cfe447 compat-stack-guard.patch -9dd8192227f54d6d3ccb49dc54137ff3 0001-create-DEVEL_PREFIX-MULTILIB_DIR-dir-rather-than-DEV.patch 84a2786fb4c89bee56607dd09b538d7b ldso-x86_64-support-protected-symbols.patch 8f55efc31c41bf70d99006a7d2f7fe1e 1.patch 350a608e3d3b148af882f6e074225465 2.patch -8064fe87497342a3ab4d8d8df7acc8c6 0001-libc-fix-strtoq.patch e0c901502602f7e9e002d910d0f32ab9 0001-libm-x86_64-implement-fesetround.patch +490c59a1e1cec40fedf72a546889d343 nptl-fix-unwind_resume-plt-calls.patch 145aaeb1833159397cfac9902e3877ab uclibcconfig.x86 cb1bcf2ff83029b6943d4799d926932b uclibcconfig.x86_64 145aaeb1833159397cfac9902e3877ab uclibcconfig.i486" diff --git a/main/libc0.9.32/nptl-fix-unwind_resume-plt-calls.patch b/main/libc0.9.32/nptl-fix-unwind_resume-plt-calls.patch new file mode 100644 index 0000000000..2647af915a --- /dev/null +++ b/main/libc0.9.32/nptl-fix-unwind_resume-plt-calls.patch @@ -0,0 +1,65 @@ +My change a49b3a18e463cbe8c94c41501e386e7f4c61609e fixed two +Unwind_Resume calls to go via PLT to avoid text relocations for PIC +builds. However, it looks the reason for upstream not using PLT calls +is that ebx gets clobbered. So we need to reload it. + +Signed-off-by: Timo Teräs +--- + .../sysv/linux/i386/i486/pthread_cond_timedwait.S | 4 ++++ + .../unix/sysv/linux/i386/i486/pthread_cond_wait.S | 18 +++++++++++------- + 2 files changed, 15 insertions(+), 7 deletions(-) + +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +index ac7983c..3b61367 100644 +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +@@ -648,6 +648,10 @@ __condvar_tw_cleanup: + + movl %esi, (%esp) + .LcallUR: ++#ifdef __PIC__ ++ call __i686.get_pc_thunk.bx ++ addl $_GLOBAL_OFFSET_TABLE_, %ebx ++#endif + call _Unwind_Resume@PLT + hlt + .LENDCODE: +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +index abc963f..a1294c5 100644 +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +@@ -535,6 +535,10 @@ __condvar_w_cleanup: + + movl %esi, (%esp) + .LcallUR: ++#ifdef __PIC__ ++ call __i686.get_pc_thunk.bx ++ addl $_GLOBAL_OFFSET_TABLE_, %ebx ++#endif + call _Unwind_Resume@PLT + hlt + .LENDCODE: +@@ -569,14 +573,14 @@ __condvar_w_cleanup: + .Lcstend: + + #ifdef __PIC__ +- .section .gnu.linkonce.t.__i686.get_pc_thunk.cx,"ax",@progbits +- .globl __i686.get_pc_thunk.cx +- .hidden __i686.get_pc_thunk.cx +- .type __i686.get_pc_thunk.cx,@function +-__i686.get_pc_thunk.cx: +- movl (%esp), %ecx; ++ .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits ++ .globl __i686.get_pc_thunk.bx ++ .hidden __i686.get_pc_thunk.bx ++ .type __i686.get_pc_thunk.bx,@function ++__i686.get_pc_thunk.bx: ++ movl (%esp), %ebx; + ret +- .size __i686.get_pc_thunk.cx,.-__i686.get_pc_thunk.cx ++ .size __i686.get_pc_thunk.bx,.-__i686.get_pc_thunk.bx + #endif + + #ifdef SHARED +-- +1.7.1 -- cgit v1.2.3