diff options
author | William Pitcock <nenolod@dereferenced.org> | 2013-06-01 18:14:29 -0500 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2013-06-01 18:27:51 -0500 |
commit | b2d7566437b898c68bec55b901e110c89f34e6dd (patch) | |
tree | 5b292fb3a446efcc881c143b4ae27a6fa0fd0a54 | |
parent | 1b470212e01628bd3bccc6f84d13adbc89273812 (diff) | |
download | alpine_aports-b2d7566437b898c68bec55b901e110c89f34e6dd.tar.bz2 alpine_aports-b2d7566437b898c68bec55b901e110c89f34e6dd.tar.xz alpine_aports-b2d7566437b898c68bec55b901e110c89f34e6dd.zip |
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.
Conflicts:
main/libc0.9.32/APKBUILD
-rw-r--r-- | main/libc0.9.32/APKBUILD | 7 | ||||
-rw-r--r-- | main/libc0.9.32/avoid-forced-unwind.patch | 10 |
2 files changed, 16 insertions, 1 deletions
diff --git a/main/libc0.9.32/APKBUILD b/main/libc0.9.32/APKBUILD index 20c1864007..b9dd37d516 100644 --- a/main/libc0.9.32/APKBUILD +++ b/main/libc0.9.32/APKBUILD | |||
@@ -4,7 +4,7 @@ pkgname=libc$_abiver | |||
4 | _gitver= | 4 | _gitver= |
5 | pkgver=0.9.33.2 | 5 | pkgver=0.9.33.2 |
6 | _ver=${pkgver/_/-} | 6 | _ver=${pkgver/_/-} |
7 | pkgrel=20 | 7 | pkgrel=21 |
8 | pkgdesc="C library for developing embedded Linux systems" | 8 | pkgdesc="C library for developing embedded Linux systems" |
9 | url=http://uclibc.org | 9 | url=http://uclibc.org |
10 | license="LGPL-2" | 10 | license="LGPL-2" |
@@ -63,6 +63,8 @@ librt-re-add-SIGCANCEL-to-the-list-of-blocked-signal-in-helper-thread.patch | |||
63 | 0001-ldd-subdepends-check-stderr.patch | 63 | 0001-ldd-subdepends-check-stderr.patch |
64 | 0001-stdio-inline-getchar-putchar.patch | 64 | 0001-stdio-inline-getchar-putchar.patch |
65 | 65 | ||
66 | avoid-forced-unwind.patch | ||
67 | |||
66 | uclibcconfig.x86 | 68 | uclibcconfig.x86 |
67 | uclibcconfig.x86_64 | 69 | uclibcconfig.x86_64 |
68 | uclibcconfig.i486 | 70 | uclibcconfig.i486 |
@@ -206,6 +208,7 @@ ffe7564afe846026a278dd8c0251ace9 uclibc-rtld_next-fix.patch | |||
206 | 747efb42244760ad3ae72a42b18ec8c3 libdl.patch | 208 | 747efb42244760ad3ae72a42b18ec8c3 libdl.patch |
207 | e5352b7ebaa21e2ed787ce124ef67c9f 0001-ldd-subdepends-check-stderr.patch | 209 | e5352b7ebaa21e2ed787ce124ef67c9f 0001-ldd-subdepends-check-stderr.patch |
208 | 851808f9ec347dce3407d0ad4cb5ee49 0001-stdio-inline-getchar-putchar.patch | 210 | 851808f9ec347dce3407d0ad4cb5ee49 0001-stdio-inline-getchar-putchar.patch |
211 | bfe02411af06545da375f177cfaf7efe avoid-forced-unwind.patch | ||
209 | ce8a33a31f5a53031fbad8b1d1b66d44 uclibcconfig.x86 | 212 | ce8a33a31f5a53031fbad8b1d1b66d44 uclibcconfig.x86 |
210 | e861a17baa541accf4d4d39a98d74c32 uclibcconfig.x86_64 | 213 | e861a17baa541accf4d4d39a98d74c32 uclibcconfig.x86_64 |
211 | ce8a33a31f5a53031fbad8b1d1b66d44 uclibcconfig.i486 | 214 | ce8a33a31f5a53031fbad8b1d1b66d44 uclibcconfig.i486 |
@@ -243,6 +246,7 @@ b4cd24a506f4f286144080b3e95a2999efb4ec58e759255e82e09a1d7c353549 0001-libm-x86_ | |||
243 | b284cf0f0f19897272ca0c8e10c7aa05a837807efcaad2b44e4f1a2c2fb1bbe4 libdl.patch | 246 | b284cf0f0f19897272ca0c8e10c7aa05a837807efcaad2b44e4f1a2c2fb1bbe4 libdl.patch |
244 | 2ec9f978c34e2ce573fc9dc91c70b170c0b7699fd393d0e93b9f1cd312af7532 0001-ldd-subdepends-check-stderr.patch | 247 | 2ec9f978c34e2ce573fc9dc91c70b170c0b7699fd393d0e93b9f1cd312af7532 0001-ldd-subdepends-check-stderr.patch |
245 | 703799e579e4c28eda028b49f8212c4d4447ffbcf83fadf48ee10db4eceaa0c4 0001-stdio-inline-getchar-putchar.patch | 248 | 703799e579e4c28eda028b49f8212c4d4447ffbcf83fadf48ee10db4eceaa0c4 0001-stdio-inline-getchar-putchar.patch |
249 | 59265ece74b907c34186d47f035c9cc3b390f19bc4ef932d915317119574e709 avoid-forced-unwind.patch | ||
246 | 7f613b473adbbf38701125f3d298d11f91e102e5cda17eec8133e8463bdc10c9 uclibcconfig.x86 | 250 | 7f613b473adbbf38701125f3d298d11f91e102e5cda17eec8133e8463bdc10c9 uclibcconfig.x86 |
247 | bec76f2c67c0c632b24bb8c3db01396cc56f208a8c5ca16543fd5e71050d8c88 uclibcconfig.x86_64 | 251 | bec76f2c67c0c632b24bb8c3db01396cc56f208a8c5ca16543fd5e71050d8c88 uclibcconfig.x86_64 |
248 | 7f613b473adbbf38701125f3d298d11f91e102e5cda17eec8133e8463bdc10c9 uclibcconfig.i486 | 252 | 7f613b473adbbf38701125f3d298d11f91e102e5cda17eec8133e8463bdc10c9 uclibcconfig.i486 |
@@ -280,6 +284,7 @@ f6de454c16a56c5978b9e840440baf4b17cd92c30191407fd371a88a5764ea3f119a5b639ca9aab5 | |||
280 | 5e03d0a81145e572463642dd90aefe700979df7e5be9e2d3b029a7ff21f5b79064f97676c069cd287e6319b9c9a28ab5703bcc547f901e2d90cb09f85ca74ac6 libdl.patch | 284 | 5e03d0a81145e572463642dd90aefe700979df7e5be9e2d3b029a7ff21f5b79064f97676c069cd287e6319b9c9a28ab5703bcc547f901e2d90cb09f85ca74ac6 libdl.patch |
281 | 8a3d1ecc97e297be1b998a1117d41ae852a9c3d5e3c8ec0a760d8c29a11107c13875ecda2a7e091efded4e8a454669c9c23a28a7bf564348671e8bf4473b74aa 0001-ldd-subdepends-check-stderr.patch | 285 | 8a3d1ecc97e297be1b998a1117d41ae852a9c3d5e3c8ec0a760d8c29a11107c13875ecda2a7e091efded4e8a454669c9c23a28a7bf564348671e8bf4473b74aa 0001-ldd-subdepends-check-stderr.patch |
282 | 984b9ec269ba679d8ad94f62187b0966347adf2b3daea64588f0884df81534687c8e7dad141ad48ff6332334eb3bd158bdd4d2ee22526255105b427cd334ff77 0001-stdio-inline-getchar-putchar.patch | 286 | 984b9ec269ba679d8ad94f62187b0966347adf2b3daea64588f0884df81534687c8e7dad141ad48ff6332334eb3bd158bdd4d2ee22526255105b427cd334ff77 0001-stdio-inline-getchar-putchar.patch |
287 | 265a805fd75197782cbfa527289966eacd5453c677a33f336cdcc80ec001a4f945bfb3348e219bc3d754a9ba9f519bf09270cc17e2f23d0575649bbf867022bd avoid-forced-unwind.patch | ||
283 | ab04402abefad1f239d27d9638c1d8d76bc6a8edd77bbb8ed5a4b1445dbc44d709bb1b5214fc9a37a2208c2b6e92dd0a147eddea5d0b2e1ca3ec227432fe86eb uclibcconfig.x86 | 288 | ab04402abefad1f239d27d9638c1d8d76bc6a8edd77bbb8ed5a4b1445dbc44d709bb1b5214fc9a37a2208c2b6e92dd0a147eddea5d0b2e1ca3ec227432fe86eb uclibcconfig.x86 |
284 | 063899afb5f3c20e5dae1b613aa8963408b66ef21228df2500366163aeda71ca4163cbef8c3e53f389ba4a85b8eec5991667cdb31576141ce2ccbc1dc3d33cab uclibcconfig.x86_64 | 289 | 063899afb5f3c20e5dae1b613aa8963408b66ef21228df2500366163aeda71ca4163cbef8c3e53f389ba4a85b8eec5991667cdb31576141ce2ccbc1dc3d33cab uclibcconfig.x86_64 |
285 | ab04402abefad1f239d27d9638c1d8d76bc6a8edd77bbb8ed5a4b1445dbc44d709bb1b5214fc9a37a2208c2b6e92dd0a147eddea5d0b2e1ca3ec227432fe86eb uclibcconfig.i486 | 290 | 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 @@ | |||
1 | --- uClibc-0.9.33.2.orig/Rules.mak | ||
2 | +++ uClibc-0.9.33.2/Rules.mak | ||
3 | @@ -707,7 +707,6 @@ | ||
4 | ifeq ($(UCLIBC_HAS_THREADS),y) | ||
5 | ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y) | ||
6 | PTNAME := nptl | ||
7 | - CFLAGS += -DHAVE_FORCED_UNWIND | ||
8 | else | ||
9 | ifeq ($(LINUXTHREADS_OLD),y) | ||
10 | PTNAME := linuxthreads.old | ||