From 627bf322f50634e756fb656b4f5f4f5ebf5997c2 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Sat, 1 Jun 2013 18:14:29 -0500 Subject: main/libc0.9.32: avoid libgcc unwind functions in nptl Normally for 'performance', nptl uses the _Unwind_ForcedUnwind() function, which is provided by GCC. However, this function depends on libunwind tracking all register state, which neither libunwind itself (which we do not want as a core dependency) or GCC's libunwind support register state on some newer x86 CPUs fully. Thusly, we turn off the unwind-using code and return to using the traditional cleanup functions. --- main/libc0.9.32/APKBUILD | 7 ++++++- main/libc0.9.32/avoid-forced-unwind.patch | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 main/libc0.9.32/avoid-forced-unwind.patch (limited to 'main/libc0.9.32') diff --git a/main/libc0.9.32/APKBUILD b/main/libc0.9.32/APKBUILD index a7d16a3fc3..de59072ebe 100644 --- a/main/libc0.9.32/APKBUILD +++ b/main/libc0.9.32/APKBUILD @@ -4,7 +4,7 @@ pkgname=libc$_abiver _gitver= pkgver=0.9.33.2 _ver=${pkgver/_/-} -pkgrel=21 +pkgrel=22 pkgdesc="C library for developing embedded Linux systems" url=http://uclibc.org license="LGPL-2" @@ -67,6 +67,8 @@ librt-re-add-SIGCANCEL-to-the-list-of-blocked-signal-in-helper-thread.patch uClibc-0.9.33.2-define-MSG_CMSG_CLOEXEC.patch uClibc-0.9.33.2-dup3.patch + avoid-forced-unwind.patch + uclibcconfig.x86 uclibcconfig.x86_64 uclibcconfig.i486 @@ -209,6 +211,7 @@ e5352b7ebaa21e2ed787ce124ef67c9f 0001-ldd-subdepends-check-stderr.patch 7b6d467ce0cc5cf232f8526a3be5a491 uClibc-0.9.33.2-bits-time.h-sync-with-glibc-2.16.patch cbbd96f04cf17a403c1f74767e144fa2 uClibc-0.9.33.2-define-MSG_CMSG_CLOEXEC.patch 7671d02a05a074bbcbcd6193492772d6 uClibc-0.9.33.2-dup3.patch +bfe02411af06545da375f177cfaf7efe avoid-forced-unwind.patch ce8a33a31f5a53031fbad8b1d1b66d44 uclibcconfig.x86 e861a17baa541accf4d4d39a98d74c32 uclibcconfig.x86_64 ce8a33a31f5a53031fbad8b1d1b66d44 uclibcconfig.i486 @@ -249,6 +252,7 @@ b284cf0f0f19897272ca0c8e10c7aa05a837807efcaad2b44e4f1a2c2fb1bbe4 libdl.patch 1edc91ca3cc16b8786f4ea29fcf3a51db6e04bd3247e72fc3ff12496f52ad479 uClibc-0.9.33.2-bits-time.h-sync-with-glibc-2.16.patch a53bbdbe8af14cb6918836bea42ec0c85fca1a0e3de1ba3a3767d0bb97d08c92 uClibc-0.9.33.2-define-MSG_CMSG_CLOEXEC.patch cf0ce515c8d98e68cec01e805cb568371dd6f4aa21c14ea8bf841a0a0c26b358 uClibc-0.9.33.2-dup3.patch +59265ece74b907c34186d47f035c9cc3b390f19bc4ef932d915317119574e709 avoid-forced-unwind.patch 7f613b473adbbf38701125f3d298d11f91e102e5cda17eec8133e8463bdc10c9 uclibcconfig.x86 bec76f2c67c0c632b24bb8c3db01396cc56f208a8c5ca16543fd5e71050d8c88 uclibcconfig.x86_64 7f613b473adbbf38701125f3d298d11f91e102e5cda17eec8133e8463bdc10c9 uclibcconfig.i486 @@ -289,6 +293,7 @@ f6de454c16a56c5978b9e840440baf4b17cd92c30191407fd371a88a5764ea3f119a5b639ca9aab5 be0bc446a030b1e59ccd8fa564b773cf12f6aac1ecb645ceeeb54958ebd8dd8619431bc395aeb640a7701cd48af123a50814180e848385f78a7545ae4349e704 uClibc-0.9.33.2-bits-time.h-sync-with-glibc-2.16.patch 2982f918b8d73cff688fca4363eb9f165bc5383937e5d669e57c35dc2b9d4ec6efa6592ee7450f01382adaf7dbb92f6f7e623e9f885aa698c831cc7861131530 uClibc-0.9.33.2-define-MSG_CMSG_CLOEXEC.patch 1e3241a2b8332a23793da9a1dacd3622f38499f1c1a9fe67f5afc5147007693826921d9f3c7521d4bb57d868a349f911db2bb35d2e988080527cce9fb2b187dd uClibc-0.9.33.2-dup3.patch +265a805fd75197782cbfa527289966eacd5453c677a33f336cdcc80ec001a4f945bfb3348e219bc3d754a9ba9f519bf09270cc17e2f23d0575649bbf867022bd avoid-forced-unwind.patch ab04402abefad1f239d27d9638c1d8d76bc6a8edd77bbb8ed5a4b1445dbc44d709bb1b5214fc9a37a2208c2b6e92dd0a147eddea5d0b2e1ca3ec227432fe86eb uclibcconfig.x86 063899afb5f3c20e5dae1b613aa8963408b66ef21228df2500366163aeda71ca4163cbef8c3e53f389ba4a85b8eec5991667cdb31576141ce2ccbc1dc3d33cab uclibcconfig.x86_64 ab04402abefad1f239d27d9638c1d8d76bc6a8edd77bbb8ed5a4b1445dbc44d709bb1b5214fc9a37a2208c2b6e92dd0a147eddea5d0b2e1ca3ec227432fe86eb uclibcconfig.i486 diff --git a/main/libc0.9.32/avoid-forced-unwind.patch b/main/libc0.9.32/avoid-forced-unwind.patch new file mode 100644 index 0000000000..044e2ffdd7 --- /dev/null +++ b/main/libc0.9.32/avoid-forced-unwind.patch @@ -0,0 +1,10 @@ +--- uClibc-0.9.33.2.orig/Rules.mak ++++ uClibc-0.9.33.2/Rules.mak +@@ -707,7 +707,6 @@ + ifeq ($(UCLIBC_HAS_THREADS),y) + ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y) + PTNAME := nptl +- CFLAGS += -DHAVE_FORCED_UNWIND + else + ifeq ($(LINUXTHREADS_OLD),y) + PTNAME := linuxthreads.old -- cgit v1.2.3