summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2010-12-07 14:16:09 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2010-12-09 10:28:46 +0000
commit3b1ac140b9257e9d08471c27bab898303a8ee221 (patch)
tree6760ac5aaee42ab289c19e940c73c66714e95ce5
parent89ac1ca2477d76ab74b11e30a4011e60311a7c18 (diff)
downloadaports-3b1ac140b9257e9d08471c27bab898303a8ee221.tar.bz2
aports-3b1ac140b9257e9d08471c27bab898303a8ee221.tar.xz
main/libc0.9.32: new snapshot. fix for nptl unwind_resume plt
fixes vlc segfaulting (cherry picked from commit 5d11ca20ed78fe4cf148648fd444beb45c2cbb58)
-rw-r--r--main/libc0.9.32/0001-create-DEVEL_PREFIX-MULTILIB_DIR-dir-rather-than-DEV.patch34
-rw-r--r--main/libc0.9.32/0001-libc-fix-strtoq.patch44
-rw-r--r--main/libc0.9.32/APKBUILD12
-rw-r--r--main/libc0.9.32/nptl-fix-unwind_resume-plt-calls.patch65
4 files changed, 70 insertions, 85 deletions
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 aca6c8e87..000000000
--- 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 <natanael.copa@gmail.com>
-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 <natanael.copa@gmail.com>
----
- 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 52696630b..000000000
--- 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 <natanael.copa@gmail.com>
-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 <natanael.copa@gmail.com>
----
- 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 00b704681..1454af20d 100644
--- a/main/libc0.9.32/APKBUILD
+++ b/main/libc0.9.32/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
_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 000000000..2647af915
--- /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 <timo.teras@iki.fi>
+---
+ .../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