diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2013-04-29 09:04:48 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2013-04-29 09:08:03 +0000 |
commit | 49dabb360ce6c2d5a6d4e1eefc136be8a9bfd1e7 (patch) | |
tree | 26f835b50a98c39c5265828ae48899d0e7bdd073 /main | |
parent | 3dc4cfbfd38fcf233232f22583a6f635eb148e0e (diff) | |
download | aports-49dabb360ce6c2d5a6d4e1eefc136be8a9bfd1e7.tar.bz2 aports-49dabb360ce6c2d5a6d4e1eefc136be8a9bfd1e7.tar.xz |
main/libc0.9.32: another dlopen/dlclose patch from Timo
This should fix issue with sdl[1] and apps that does lots of dlopen/dlclose calls
with complicated deps.
[1] see commit be91866229a76e73f1ecdbdbfec83b8e69cb6e69
Diffstat (limited to 'main')
-rw-r--r-- | main/libc0.9.32/APKBUILD | 6 | ||||
-rw-r--r-- | main/libc0.9.32/libdl.patch | 26 |
2 files changed, 31 insertions, 1 deletions
diff --git a/main/libc0.9.32/APKBUILD b/main/libc0.9.32/APKBUILD index 18045134e9..0fb825929b 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=16 +pkgrel=17 pkgdesc="C library for developing embedded Linux systems" url=http://uclibc.org license="LGPL-2" @@ -59,6 +59,7 @@ librt-re-add-SIGCANCEL-to-the-list-of-blocked-signal-in-helper-thread.patch 560-res_init_asterisk.patch 0001-libm-x86_64-implement-fegetround.patch + libdl.patch uclibcconfig.x86 uclibcconfig.x86_64 @@ -200,6 +201,7 @@ da043a65003ac29ca8b96f416e7752ee 0002-libc-sysdeps-add-get-make-set-swap-contex ffe7564afe846026a278dd8c0251ace9 uclibc-rtld_next-fix.patch 1c4199349874608161575f047c32be02 560-res_init_asterisk.patch 2e27c00c1af216eb5fb3aef81d7ba515 0001-libm-x86_64-implement-fegetround.patch +5612e64d2c047906ecb4bac31de85d56 libdl.patch ce8a33a31f5a53031fbad8b1d1b66d44 uclibcconfig.x86 e861a17baa541accf4d4d39a98d74c32 uclibcconfig.x86_64 ce8a33a31f5a53031fbad8b1d1b66d44 uclibcconfig.i486 @@ -234,6 +236,7 @@ ba5b0cb1c42bb221a38cc3b22e150a08e64952716d24a4af3b61036b23d60bfd 0003-pread-pwr 16ace72a805b39a623364cfd1e884e6d9f19bb85f650a03712e4104533f5186f uclibc-rtld_next-fix.patch d7f11efbce5c4ef27849e7a3cd370be86540c635effd51d5374194b65c7c7e83 560-res_init_asterisk.patch b4cd24a506f4f286144080b3e95a2999efb4ec58e759255e82e09a1d7c353549 0001-libm-x86_64-implement-fegetround.patch +7bd1993fc8b5f548017d48797bf2bf2e4f46c6296c26299fc9825271baf6c9d4 libdl.patch 7f613b473adbbf38701125f3d298d11f91e102e5cda17eec8133e8463bdc10c9 uclibcconfig.x86 bec76f2c67c0c632b24bb8c3db01396cc56f208a8c5ca16543fd5e71050d8c88 uclibcconfig.x86_64 7f613b473adbbf38701125f3d298d11f91e102e5cda17eec8133e8463bdc10c9 uclibcconfig.i486 @@ -268,6 +271,7 @@ f6de454c16a56c5978b9e840440baf4b17cd92c30191407fd371a88a5764ea3f119a5b639ca9aab5 8068fb6f40c370f3fd6cf05f39c0d8f54adb442faf279fa14a7f7d0e14a49f9220aacae9617460ccea71824e2f1272faf5bf1dab12ffeeb42129869c8b61c30d uclibc-rtld_next-fix.patch 3d06e204dcca1f570356c42b9a3265448217668db7df4c9641dccd14190d7578df8be1fc1a6d7824544736348bd54f816d10b49b860b9c390d109803f3ea5b6a 560-res_init_asterisk.patch 72e1aa3bb6b97c86d2539c370d47da5aa6b9ef80f1514229bf6acb366f91b87b55207c904f228cce6156cba8b10cf1318d00a69f677e498235ac69f10bf5c240 0001-libm-x86_64-implement-fegetround.patch +846fe451b75f5e7440358b0fcbc0c4607b4cc1a9101a481bd372374e8c63938d5b70b52119593b1a49dcc9acc5eb085a0a301faaca84864ed6f37dfec6f4a18e libdl.patch ab04402abefad1f239d27d9638c1d8d76bc6a8edd77bbb8ed5a4b1445dbc44d709bb1b5214fc9a37a2208c2b6e92dd0a147eddea5d0b2e1ca3ec227432fe86eb uclibcconfig.x86 063899afb5f3c20e5dae1b613aa8963408b66ef21228df2500366163aeda71ca4163cbef8c3e53f389ba4a85b8eec5991667cdb31576141ce2ccbc1dc3d33cab uclibcconfig.x86_64 ab04402abefad1f239d27d9638c1d8d76bc6a8edd77bbb8ed5a4b1445dbc44d709bb1b5214fc9a37a2208c2b6e92dd0a147eddea5d0b2e1ca3ec227432fe86eb uclibcconfig.i486 diff --git a/main/libc0.9.32/libdl.patch b/main/libc0.9.32/libdl.patch new file mode 100644 index 0000000000..f8a90ffa16 --- /dev/null +++ b/main/libc0.9.32/libdl.patch @@ -0,0 +1,26 @@ +diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c +index 95a0650..3cfcb85 100644 +--- a/ldso/libdl/libdl.c ++++ b/ldso/libdl/libdl.c +@@ -544,8 +544,18 @@ static void *do_dlopen(const char *libname, int flag) + * to the GOT tables. We need to do this in reverse order so that COPY + * directives work correctly */ + +- /* Get the tail of the list */ +- for (ls = &_dl_loaded_modules->symbol_scope; ls && ls->next; ls = ls->next); ++ /* Extend the global scope by adding the local scope of the dlopened DSO. ++ * But only if it's not there. It can happen under certain cases that the ++ * DSO had refcount = 0, but was already loaded. (NODELETE flag is set, or ++ * it is pulled in via both NEEDED dependency and explicit dlopen()). */ ++ for (ls = &_dl_loaded_modules->symbol_scope; ; ls = ls->next) { ++ if (ls == &dyn_chain->dyn->symbol_scope) ++ break; ++ if (ls->next == NULL) { ++ ls->next = &dyn_chain->dyn->symbol_scope; ++ break; ++ } ++ } + + /* Extend the global scope by adding the local scope of the dlopened DSO. */ + ls->next = &dyn_chain->dyn->symbol_scope; + |