From 8332c7e7092e40e1b2a1e4eebfd27d3f68387c37 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Mon, 30 May 2011 08:46:57 +0200 Subject: [PATCH] glibc: sync patches with Arch, build for 2.6.27 to avoid massive world rebuild. --- srcpkgs/glibc/patches/glibc-2.13-futex.patch | 33 +++++++++++++++++++ .../glibc/patches/glibc-2.13-prelink.patch | 28 ++++++++++++++++ srcpkgs/glibc/template | 11 ++++--- 3 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 srcpkgs/glibc/patches/glibc-2.13-futex.patch create mode 100644 srcpkgs/glibc/patches/glibc-2.13-prelink.patch diff --git a/srcpkgs/glibc/patches/glibc-2.13-futex.patch b/srcpkgs/glibc/patches/glibc-2.13-futex.patch new file mode 100644 index 0000000000..a0ed937938 --- /dev/null +++ b/srcpkgs/glibc/patches/glibc-2.13-futex.patch @@ -0,0 +1,33 @@ +http://sourceware.org/bugzilla/show_bug.cgi?id=12403 + +--- nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S ++++ nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +@@ -210,7 +210,7 @@ pthread_rwlock_timedrdlock: + cfi_restore(%r12) + retq + +-#ifdef __ASSUME_PRIVATE_FUTEX ++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME + cfi_adjust_cfa_offset(16) + cfi_rel_offset(%r12, 8) + cfi_rel_offset(%r13, 0) +--- nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S ++++ nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +@@ -192,7 +192,7 @@ pthread_rwlock_timedwrlock: + + 7: movq %rdx, %rax + +-#ifndef __ASSUME_PRIVATE_FUTEX ++#ifndef __ASSUME_FUTEX_CLOCK_REALTIME + addq $16, %rsp + cfi_adjust_cfa_offset(-16) + popq %r14 +@@ -207,7 +207,7 @@ pthread_rwlock_timedwrlock: + cfi_restore(%r12) + retq + +-#ifdef __ASSUME_PRIVATE_FUTEX ++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME + cfi_adjust_cfa_offset(16) + cfi_rel_offset(%r12, 8) + cfi_rel_offset(%r13, 0) diff --git a/srcpkgs/glibc/patches/glibc-2.13-prelink.patch b/srcpkgs/glibc/patches/glibc-2.13-prelink.patch new file mode 100644 index 0000000000..0d86131da6 --- /dev/null +++ b/srcpkgs/glibc/patches/glibc-2.13-prelink.patch @@ -0,0 +1,28 @@ +http://sourceware.org/bugzilla/show_bug.cgi?id=12489 + +diff --git a/elf/rtld.c b/elf/rtld.c +index 9a560b3..201c9cf 100644 +--- elf/rtld.c ++++ elf/rtld.c +@@ -2168,6 +2168,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", + we need it in the memory handling later. */ + GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist; + ++ /* Remember the last search directory added at startup, now that ++ malloc will no longer be the one from dl-minimal.c. */ ++ GLRO(dl_init_all_dirs) = GL(dl_all_dirs); ++ + if (prelinked) + { + if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL) +@@ -2288,10 +2292,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", + lossage); + } + +- /* Remember the last search directory added at startup, now that +- malloc will no longer be the one from dl-minimal.c. */ +- GLRO(dl_init_all_dirs) = GL(dl_all_dirs); +- + if (! prelinked && rtld_multiple_ref) + { + /* There was an explicit ref to the dynamic linker as a shared lib. diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template index 1586a0217f..31d51cfcb7 100644 --- a/srcpkgs/glibc/template +++ b/srcpkgs/glibc/template @@ -1,11 +1,13 @@ # Template file for 'glibc' pkgname=glibc version=2.13 -revision=2 +revision=3 distfiles="http://ftp.gnu.org/gnu/glibc/glibc-${version}.tar.bz2" build_style=custom-install short_desc="The GNU C library" maintainer="Juan RP " +homepage="http://www.gnu.org/software/libc" +license="GPL-2, LGPL-2.1, BSD" checksum=0173c92a0545e6d99a46a4fbed2da00ba26556f5c6198e2f9f1631ed5318dbb2 long_desc=" The GNU C Library is the standard system C library for all GNU systems, @@ -16,7 +18,6 @@ long_desc=" # Don't check for deps here ignore_vdeps_dir="/usr/lib/gconv" - base_chroot=yes conf_files="/etc/rpc /etc/ld.so.conf /etc/nsswitch.conf" subpackages="glibc-devel glibc-locales nscd" @@ -45,7 +46,7 @@ do_build() SHELL=/bin/bash ../configure --prefix=/usr --with-tls \ --enable-add-ons --disable-multi-arch \ - --enable-bind-now --enable-kernel=2.6.32 \ + --enable-bind-now --enable-kernel=2.6.27 \ --enable-stack-guard-randomization --disable-profile \ --without-cvs --without-gd --libexecdir=/usr/lib \ --libdir=/usr/lib --with-headers=${XBPS_MASTERDIR}/usr/include @@ -61,7 +62,7 @@ do_install() cd ${wrksrc}/build && make SHELL=/bin/bash install_root=${DESTDIR} install - # Replace hardcoded path to bash. + # ldd is a bash script, so make it run as such. . $XBPS_HELPERSDIR/replace-interpreter.sh replace_interpreter bash ${DESTDIR}/usr/bin/ldd @@ -71,7 +72,7 @@ do_install() sed -i "s|^RTLDLIST.*$|RTLDLIST=\"$rtldlist\"|" \ ${DESTDIR}/usr/bin/ldd fi - install -m644 ${FILESDIR}/nsswitch.conf ${DESTDIR}/etc/nsswitch.conf + install -m644 ${FILESDIR}/nsswitch.conf ${DESTDIR}/etc install -d ${DESTDIR}/etc/ld.so.conf.d echo "/usr/local/lib" > ${DESTDIR}/etc/ld.so.conf.d/usr_local.conf chmod 644 ${DESTDIR}/etc/ld.so.conf.d/usr_local.conf