glibc: update to 2.16.0

This commit is contained in:
Juergen Daubert 2012-08-08 10:08:54 +02:00
parent c0dcc2b3e8
commit d16a2ba7d6
4 changed files with 253 additions and 1855 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,8 @@
6c8b3f5c56d80eba760cc896e7462b0e Optimize-__getpagesize-a-bit.patch
e0043f4f8e1aa61acc62fdf0f4d6133d glibc-2.12.2.tar.xz
6144e4b4074fc01deea1549de4920df1 glibc-fedora_i686.patch
e9da82fa084dff26de7c484ce0c89a9a glibc-ignore_origin.patch
80b181b02ab249524ec92822c0174cf7 glibc-2.16.0.tar.xz
7e6a5a13c37f93213db9803d9790b7de glibc-resolv_assert.patch
96156bec8e05de67384dc93e72bdc313 host.conf
fbbc215a9b15ba4846f326cc88108057 hosts
34fe6c5433cd6cda30123b7bb73ef378 kernel-headers-2.6.35.tar.xz
35fdea271c1c6a870fb48f56ab603bf0 kernel-headers-3.4.7.tar.xz
f7fefce570a3c776e26e778c5e401490 ld.so.conf
75931315bf9bc9be15a5e25e4ddd5f0d nsswitch.conf
acf9daad1ee85de5efd3543965596a63 resolv.conf

View File

@ -3,43 +3,42 @@
# Maintainer: CRUX System Team, core-ports at crux dot nu
name=glibc
version=2.12.2
release=2
source=(http://ftp.gnu.org/gnu/glibc/glibc-$version.tar.xz
http://crux.nu/files/distfiles/kernel-headers-2.6.35.tar.xz
glibc-fedora_i686.patch
glibc-ignore_origin.patch
Optimize-__getpagesize-a-bit.patch
hosts resolv.conf nsswitch.conf host.conf ld.so.conf)
version=2.16.0
release=1
source=(http://ftp.gnu.org/gnu/glibc/glibc-$version.tar.xz \
http://crux.nu/files/distfiles/kernel-headers-3.4.7.tar.xz \
hosts resolv.conf nsswitch.conf host.conf ld.so.conf \
$name-resolv_assert.patch)
build() {
# install kernel headers
mkdir $PKG/usr/
cp -r kernel-headers-2.6.35/include $PKG/usr
chown root:root $PKG/usr
# install kernel headers
mkdir $PKG/usr/
cp -r kernel-headers-3.4.7/include $PKG/usr
chown root:root $PKG/usr
patch -p1 -d $name-$version -i $SRC/$name-fedora_i686.patch
patch -R -p1 -d $name-$version -i $SRC/Optimize-__getpagesize-a-bit.patch
patch -p1 -d $name-$version -i $SRC/$name-ignore_origin.patch
patch -p1 -d $name-$version -i $SRC/$name-resolv_assert.patch
mkdir build
cd build
../$name-$version/configure --prefix=/usr \
--libexecdir=/usr/lib \
--with-headers=$PKG/usr/include \
--with-tls \
--enable-kernel=2.6.27 \
--enable-add-ons \
--disable-profile \
--without-gd
make
#make check
make install_root=$PKG install
mkdir build
cd build
../$name-$version/configure --prefix=/usr \
--libexecdir=/usr/lib \
--with-headers=$PKG/usr/include \
--with-tls \
--enable-kernel=2.6.39 \
--enable-add-ons \
--disable-profile \
--without-gd \
--enable-obsolete-rpc
make
#make check
make install_root=$PKG install
cp $SRC/{hosts,resolv.conf,nsswitch.conf,host.conf,ld.so.conf} $PKG/etc
ln -sf ../usr/share/zoneinfo/UTC $PKG/etc/localtime
mkdir -p $PKG/etc/ld.so.conf.d $PKG/usr/lib/locale
touch $PKG/etc/ld.so.cache
cp $SRC/{hosts,resolv.conf,nsswitch.conf,host.conf,ld.so.conf} $PKG/etc
ln -sf ../usr/share/zoneinfo/UTC $PKG/etc/localtime
mkdir -p $PKG/etc/ld.so.conf.d $PKG/usr/lib/locale
touch $PKG/etc/ld.so.cache
rm -rf $PKG/usr/share/{info,locale}
rm -rf $PKG/usr/share/{info,locale} \
$PKG/usr/bin/tzselect \
$PKG/usr/sbin/z{dump,ic}
}

View File

@ -0,0 +1,61 @@
# http://sourceware.org/bugzilla/show_bug.cgi?id=13013
2011-07-21 Aurelien Jarno <aurel32@debian.org>
* resolv/res_query.c(__libc_res_nquery): Assign hp and hp2
depending n and resplen2 to catch cases where answer
equals answerp2.
diff --git a/resolv/res_query.c b/resolv/res_query.c
index 2f7cfaa..405fa68 100644
--- a/resolv/res_query.c
+++ b/resolv/res_query.c
@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp,
int *resplen2)
{
HEADER *hp = (HEADER *) answer;
+ HEADER *hp2;
int n, use_malloc = 0;
u_int oflags = statp->_flags;
@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp,
/* __libc_res_nsend might have reallocated the buffer. */
hp = (HEADER *) *answerp;
- /* We simplify the following tests by assigning HP to HP2. It
- is easy to verify that this is the same as ignoring all
- tests of HP2. */
- HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp;
-
- if (n < (int) sizeof (HEADER) && answerp2 != NULL
- && *resplen2 > (int) sizeof (HEADER))
+ /* We simplify the following tests by assigning HP to HP2 or
+ vice versa. It is easy to verify that this is the same as
+ ignoring all tests of HP or HP2. */
+ if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER))
{
- /* Special case of partial answer. */
- assert (hp != hp2);
- hp = hp2;
+ hp2 = hp;
}
- else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER)
- && n > (int) sizeof (HEADER))
+ else
{
- /* Special case of partial answer. */
- assert (hp != hp2);
- hp2 = hp;
+ hp2 = (HEADER *) *answerp2;
+ if (n < (int) sizeof (HEADER))
+ {
+ hp = hp2;
+ }
}
+ /* Make sure both hp and hp2 are defined */
+ assert((hp != NULL) && (hp2 != NULL));
+
if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0)
&& (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) {
#ifdef DEBUG