From 560562e36a27da267f2f4f7989806790192888ef Mon Sep 17 00:00:00 2001 From: root Date: Mon, 31 Oct 2011 23:14:48 +0000 Subject: Mon Oct 31 23:14:48 UTC 2011 --- multilib/lib32-glibc/PKGBUILD | 49 ++++++++++------------ multilib/lib32-glibc/glibc-2.14-libdl-crash.patch | 2 +- .../lib32-glibc/glibc-2.14-revert-4768ae77.patch | 37 ++++++++++++++++ multilib/lib32-glibc/lib32-glibc.conf | 1 + 4 files changed, 62 insertions(+), 27 deletions(-) create mode 100644 multilib/lib32-glibc/glibc-2.14-revert-4768ae77.patch (limited to 'multilib/lib32-glibc') diff --git a/multilib/lib32-glibc/PKGBUILD b/multilib/lib32-glibc/PKGBUILD index b06cd23f4..48057fdec 100644 --- a/multilib/lib32-glibc/PKGBUILD +++ b/multilib/lib32-glibc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 55393 2011-09-11 20:34:00Z heftig $ +# $Id: PKGBUILD 57526 2011-10-30 06:49:02Z allan $ # Maintainer: Jan "heftig" Steffens # Contributor: Jan de Groot # Contributor: Allan McRae @@ -8,9 +8,9 @@ _pkgbasename=glibc pkgname=lib32-$_pkgbasename -pkgver=2.14 -pkgrel=6 -_glibcdate=20110908 +pkgver=2.14.1 +pkgrel=1 +_glibcdate=20111025 pkgdesc="GNU C Library for multilib" arch=('x86_64') url="http://www.gnu.org/software/libc" @@ -25,25 +25,23 @@ source=(ftp://ftp.archlinux.org/other/glibc/${_pkgbasename}-${pkgver}_${_glibcda glibc-2.12.1-static-shared-getpagesize.patch glibc-2.12.2-ignore-origin-of-privileged-program.patch glibc-2.13-futex.patch - glibc-2.13-dlclose-search-reset.patch glibc-2.14-libdl-crash.patch - glibc-2.14-avoid-assertion-on-empty-dns-answer.patch + glibc-2.14-revert-4768ae77.patch glibc-2.14-reexport-rpc-interface.patch glibc-2.14-reinstall-nis-rpc-headers.patch lib32-glibc.conf) -md5sums=('069069eb9100cc7affd7ad884cb3c3e9' +md5sums=('c52a15134dfa9f2c94f2ccd4cb155cf1' '4dadb9203b69a3210d53514bb46f41c3' '0c5540efc51c0b93996c51b57a8540ae' '40cd342e21f71f5e49e32622b25acc52' 'a3ac6f318d680347bb6e2805d42b73b2' 'b042647ea7d6f22ad319e12e796bd13e' '7d0154b7e17ea218c9fa953599d24cc4' - '22d09c58718fb3d1d31c3a6c14ca6886' - 'cea62cc6b903d222c5f26e05a3c0e0e6' - '13728807283f111e5d9d38cf38e0a461' + '6970bcfeb3bf88913436d5112d16f588' + '7da8c554a3b591c7401d7023b1928afc' 'c5de2a946215d647c8af5432ec4b0da0' '55febbb72139ac7b65757df085024b83' - '6e052f1cb693d5d3203f50f9d4e8c33b') + 'a8f4549c716cd37244fbf1ed059497f8') build() { cd ${srcdir}/glibc @@ -69,17 +67,16 @@ build() { # http://sourceware.org/bugzilla/show_bug.cgi?id=12403 patch -Np1 -i ${srcdir}/glibc-2.13-futex.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=593675 - # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=2f811bf8 (only fedora branch...) - patch -Np1 -i ${srcdir}/glibc-2.13-dlclose-search-reset.patch - # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (only fedora branch...) # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch + # Revert commit causing issues with crappy DNS servers... + # Will be removed when workaround becomes annoying to maintain - USE A BETTER DNS SERVER! + # Note that both these patches do not fix the issue completely: # http://sourceware.org/bugzilla/show_bug.cgi?id=13013 # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=032c0ee3 (only fedora branch...) - patch -Np1 -i ${srcdir}/glibc-2.14-avoid-assertion-on-empty-dns-answer.patch + patch -Np1 -i ${srcdir}/glibc-2.14-revert-4768ae77.patch # re-export RPC interface until libtirpc is ready as a replacement # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (only fedora branch...) @@ -96,7 +93,7 @@ build() { # Hack to fix NPTL issues with Xen, only required on 32bit platforms export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs" - echo "slibdir=/usr/lib32" >> configparms + echo "slibdir=/lib32" >> configparms # remove hardening options from CFLAGS for building libraries CFLAGS=${CFLAGS/-fstack-protector/} @@ -110,7 +107,7 @@ build() { --with-tls --with-__thread \ --enable-bind-now --without-gd \ --without-cvs --disable-profile \ - --disable-multi-arch i686-unknown-linux-gnu + --enable-multi-arch i686-unknown-linux-gnu # build libraries with hardening disabled echo "build-programs=no" >> configparms @@ -150,19 +147,19 @@ package() { strip $STRIP_BINARIES usr/lib32/getconf/* strip $STRIP_STATIC usr/lib32/*.a \ - usr/lib32/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so + lib32/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so - strip $STRIP_SHARED usr/lib32/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \ - usr/lib32/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \ - usr/lib32/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \ - usr/lib32/{libmemusage,libpcprofile,libSegFault}.so \ + strip $STRIP_SHARED lib32/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \ + lib32/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \ + lib32/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \ + lib32/{libmemusage,libpcprofile,libSegFault}.so \ usr/lib32/{pt_chown,{audit,gconv}/*.so} # Dynamic linker - install -d -m755 ${pkgdir}/lib - ln -s ../usr/lib32/ld-linux.so.2 ${pkgdir}/lib/ + mkdir ${pkgdir}/lib + ln -s ../lib32/ld-linux.so.2 ${pkgdir}/lib/ - # Add /usr/lib32 to the default library search path + # Add lib32 paths to the default library search path install -Dm644 "$srcdir/lib32-glibc.conf" "$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf" # Symlink /usr/lib32/locale to /usr/lib/locale diff --git a/multilib/lib32-glibc/glibc-2.14-libdl-crash.patch b/multilib/lib32-glibc/glibc-2.14-libdl-crash.patch index ee29f8c20..6c9d2718e 100644 --- a/multilib/lib32-glibc/glibc-2.14-libdl-crash.patch +++ b/multilib/lib32-glibc/glibc-2.14-libdl-crash.patch @@ -55,7 +55,7 @@ index 9e30594..3890d00 100644 if (old_l_initfini != NULL) - map->l_orig_initfini = old_l_initfini; + _dl_scope_free (old_l_initfini); - } + diff --git a/elf/dl-libc.c b/elf/dl-libc.c index 7be9483..a13fce3 100644 --- a/elf/dl-libc.c diff --git a/multilib/lib32-glibc/glibc-2.14-revert-4768ae77.patch b/multilib/lib32-glibc/glibc-2.14-revert-4768ae77.patch new file mode 100644 index 000000000..11f087cb7 --- /dev/null +++ b/multilib/lib32-glibc/glibc-2.14-revert-4768ae77.patch @@ -0,0 +1,37 @@ +diff -Naur glibc-orig//resolv/res_send.c glibc/resolv/res_send.c +--- glibc-orig//resolv/res_send.c 2011-06-10 18:59:03.041436996 +1000 ++++ glibc/resolv/res_send.c 2011-06-10 19:08:09.379309323 +1000 +@@ -549,7 +549,7 @@ + ns, ansp, ansp2, nansp2, resplen2); + if (n < 0) + return (-1); +- if (n == 0 && (buf2 == NULL || *resplen2 == 0)) ++ if (n == 0) + goto next_ns; + } else { + /* Use datagrams. */ +@@ -559,7 +559,7 @@ + ansp2, nansp2, resplen2); + if (n < 0) + return (-1); +- if (n == 0 && (buf2 == NULL || *resplen2 == 0)) ++ if (n == 0) + goto next_ns; + if (v_circuit) + // XXX Check whether both requests failed or +@@ -1275,14 +1275,10 @@ + (*thisresplenp > *thisanssizp) + ? *thisanssizp : *thisresplenp); + +- if (recvresp1 || (buf2 != NULL && recvresp2)) { +- *resplen2 = 0; ++ if (recvresp1 || (buf2 != NULL && recvresp2)) + return resplen; +- } + if (buf2 != NULL) + { +- /* No data from the first reply. */ +- resplen = 0; + /* We are waiting for a possible second reply. */ + if (hp->id == anhp->id) + recvresp1 = 1; diff --git a/multilib/lib32-glibc/lib32-glibc.conf b/multilib/lib32-glibc/lib32-glibc.conf index 9b08c3f43..a1c8c4199 100644 --- a/multilib/lib32-glibc/lib32-glibc.conf +++ b/multilib/lib32-glibc/lib32-glibc.conf @@ -1 +1,2 @@ +/lib32 /usr/lib32 -- cgit v1.2.3-54-g00ecf