summaryrefslogtreecommitdiffstats
path: root/source/l/glibc
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/glibc')
-rw-r--r--source/l/glibc/doinst.sh-glibc38
-rw-r--r--source/l/glibc/doinst.sh-glibc-solibs38
-rw-r--r--source/l/glibc/doinst.sh-glibc-zoneinfo8
-rwxr-xr-xsource/l/glibc/glibc.SlackBuild131
-rw-r--r--source/l/glibc/glibc.disable.broken.optimized.memcpy.diff30
-rw-r--r--source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch1212
-rw-r--r--source/l/glibc/glibc.git-96611391ad8823ba58405325d78cefeae5cdf699-CVE-2010-3847b.patch27
-rw-r--r--source/l/glibc/glibc.ldd.trace.through.dynamic.linker.diff49
-rw-r--r--source/l/glibc/glibc.make-3.82.diff28
-rwxr-xr-xsource/l/glibc/profile.d/glibc.csh.new2
10 files changed, 1460 insertions, 103 deletions
diff --git a/source/l/glibc/doinst.sh-glibc b/source/l/glibc/doinst.sh-glibc
index ffc066e80..427723c2c 100644
--- a/source/l/glibc/doinst.sh-glibc
+++ b/source/l/glibc/doinst.sh-glibc
@@ -1,6 +1,6 @@
#!/bin/sh
# Copyright (C) 2002, 2005 Slackware Linux, Inc.
-# Copyright 2005, 2006, 2007 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2005, 2006, 2007, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -111,43 +111,43 @@ rm -f etc/profile.d/glibc.sh.new
# In case there's no ldconfig, make the links manually:
if [ ! -x /sbin/ldconfig ]; then
( cd lib ; rm -rf libnss_nis.so.2 )
-( cd lib ; ln -sf libnss_nis-2.11.1.so libnss_nis.so.2 )
+( cd lib ; ln -sf libnss_nis-2.13.so libnss_nis.so.2 )
( cd lib ; rm -rf libm.so.6 )
-( cd lib ; ln -sf libm-2.11.1.so libm.so.6 )
+( cd lib ; ln -sf libm-2.13.so libm.so.6 )
( cd lib ; rm -rf libnss_files.so.2 )
-( cd lib ; ln -sf libnss_files-2.11.1.so libnss_files.so.2 )
+( cd lib ; ln -sf libnss_files-2.13.so libnss_files.so.2 )
( cd lib ; rm -rf libresolv.so.2 )
-( cd lib ; ln -sf libresolv-2.11.1.so libresolv.so.2 )
+( cd lib ; ln -sf libresolv-2.13.so libresolv.so.2 )
( cd lib ; rm -rf libnsl.so.1 )
-( cd lib ; ln -sf libnsl-2.11.1.so libnsl.so.1 )
+( cd lib ; ln -sf libnsl-2.13.so libnsl.so.1 )
( cd lib ; rm -rf libutil.so.1 )
-( cd lib ; ln -sf libutil-2.11.1.so libutil.so.1 )
+( cd lib ; ln -sf libutil-2.13.so libutil.so.1 )
( cd lib ; rm -rf libnss_compat.so.2 )
-( cd lib ; ln -sf libnss_compat-2.11.1.so libnss_compat.so.2 )
+( cd lib ; ln -sf libnss_compat-2.13.so libnss_compat.so.2 )
( cd lib ; rm -rf libthread_db.so.1 )
( cd lib ; ln -sf libthread_db-1.0.so libthread_db.so.1 )
( cd lib ; rm -rf libnss_hesiod.so.2 )
-( cd lib ; ln -sf libnss_hesiod-2.11.1.so libnss_hesiod.so.2 )
+( cd lib ; ln -sf libnss_hesiod-2.13.so libnss_hesiod.so.2 )
( cd lib ; rm -rf libanl.so.1 )
-( cd lib ; ln -sf libanl-2.11.1.so libanl.so.1 )
+( cd lib ; ln -sf libanl-2.13.so libanl.so.1 )
( cd lib ; rm -rf libcrypt.so.1 )
-( cd lib ; ln -sf libcrypt-2.11.1.so libcrypt.so.1 )
+( cd lib ; ln -sf libcrypt-2.13.so libcrypt.so.1 )
( cd lib ; rm -rf libBrokenLocale.so.1 )
-( cd lib ; ln -sf libBrokenLocale-2.11.1.so libBrokenLocale.so.1 )
+( cd lib ; ln -sf libBrokenLocale-2.13.so libBrokenLocale.so.1 )
( cd lib ; rm -rf ld-linux.so.2 )
-( cd lib ; ln -sf ld-2.11.1.so ld-linux.so.2 )
+( cd lib ; ln -sf ld-2.13.so ld-linux.so.2 )
( cd lib ; rm -rf libdl.so.2 )
-( cd lib ; ln -sf libdl-2.11.1.so libdl.so.2 )
+( cd lib ; ln -sf libdl-2.13.so libdl.so.2 )
( cd lib ; rm -rf libnss_dns.so.2 )
-( cd lib ; ln -sf libnss_dns-2.11.1.so libnss_dns.so.2 )
+( cd lib ; ln -sf libnss_dns-2.13.so libnss_dns.so.2 )
( cd lib ; rm -rf libpthread.so.0 )
-( cd lib ; ln -sf libpthread-2.11.1.so libpthread.so.0 )
+( cd lib ; ln -sf libpthread-2.13.so libpthread.so.0 )
( cd lib ; rm -rf libnss_nisplus.so.2 )
-( cd lib ; ln -sf libnss_nisplus-2.11.1.so libnss_nisplus.so.2 )
+( cd lib ; ln -sf libnss_nisplus-2.13.so libnss_nisplus.so.2 )
( cd lib ; rm -rf libc.so.6 )
-( cd lib ; ln -sf libc-2.11.1.so libc.so.6 )
+( cd lib ; ln -sf libc-2.13.so libc.so.6 )
( cd lib ; rm -rf librt.so.1 )
-( cd lib ; ln -sf librt-2.11.1.so librt.so.1 )
+( cd lib ; ln -sf librt-2.13.so librt.so.1 )
fi
# More links:
diff --git a/source/l/glibc/doinst.sh-glibc-solibs b/source/l/glibc/doinst.sh-glibc-solibs
index a186da99c..adcb4131c 100644
--- a/source/l/glibc/doinst.sh-glibc-solibs
+++ b/source/l/glibc/doinst.sh-glibc-solibs
@@ -1,6 +1,6 @@
#!/bin/sh
# Copyright (C) 2002, 2005 Slackware Linux, Inc.
-# Copyright 2005, 2006 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2005, 2006, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -91,41 +91,41 @@ rm -f etc/profile.d/glibc.sh.new
# In case there's no ldconfig, make the links manually:
if [ ! -x /sbin/ldconfig ]; then
( cd lib ; rm -rf libnss_nis.so.2 )
-( cd lib ; ln -sf libnss_nis-2.11.1.so libnss_nis.so.2 )
+( cd lib ; ln -sf libnss_nis-2.13.so libnss_nis.so.2 )
( cd lib ; rm -rf libm.so.6 )
-( cd lib ; ln -sf libm-2.11.1.so libm.so.6 )
+( cd lib ; ln -sf libm-2.13.so libm.so.6 )
( cd lib ; rm -rf libnss_files.so.2 )
-( cd lib ; ln -sf libnss_files-2.11.1.so libnss_files.so.2 )
+( cd lib ; ln -sf libnss_files-2.13.so libnss_files.so.2 )
( cd lib ; rm -rf libresolv.so.2 )
-( cd lib ; ln -sf libresolv-2.11.1.so libresolv.so.2 )
+( cd lib ; ln -sf libresolv-2.13.so libresolv.so.2 )
( cd lib ; rm -rf libnsl.so.1 )
-( cd lib ; ln -sf libnsl-2.11.1.so libnsl.so.1 )
+( cd lib ; ln -sf libnsl-2.13.so libnsl.so.1 )
( cd lib ; rm -rf libutil.so.1 )
-( cd lib ; ln -sf libutil-2.11.1.so libutil.so.1 )
+( cd lib ; ln -sf libutil-2.13.so libutil.so.1 )
( cd lib ; rm -rf libnss_compat.so.2 )
-( cd lib ; ln -sf libnss_compat-2.11.1.so libnss_compat.so.2 )
+( cd lib ; ln -sf libnss_compat-2.13.so libnss_compat.so.2 )
( cd lib ; rm -rf libthread_db.so.1 )
( cd lib ; ln -sf libthread_db-1.0.so libthread_db.so.1 )
( cd lib ; rm -rf libnss_hesiod.so.2 )
-( cd lib ; ln -sf libnss_hesiod-2.11.1.so libnss_hesiod.so.2 )
+( cd lib ; ln -sf libnss_hesiod-2.13.so libnss_hesiod.so.2 )
( cd lib ; rm -rf libanl.so.1 )
-( cd lib ; ln -sf libanl-2.11.1.so libanl.so.1 )
+( cd lib ; ln -sf libanl-2.13.so libanl.so.1 )
( cd lib ; rm -rf libcrypt.so.1 )
-( cd lib ; ln -sf libcrypt-2.11.1.so libcrypt.so.1 )
+( cd lib ; ln -sf libcrypt-2.13.so libcrypt.so.1 )
( cd lib ; rm -rf libBrokenLocale.so.1 )
-( cd lib ; ln -sf libBrokenLocale-2.11.1.so libBrokenLocale.so.1 )
+( cd lib ; ln -sf libBrokenLocale-2.13.so libBrokenLocale.so.1 )
( cd lib ; rm -rf ld-linux.so.2 )
-( cd lib ; ln -sf ld-2.11.1.so ld-linux.so.2 )
+( cd lib ; ln -sf ld-2.13.so ld-linux.so.2 )
( cd lib ; rm -rf libdl.so.2 )
-( cd lib ; ln -sf libdl-2.11.1.so libdl.so.2 )
+( cd lib ; ln -sf libdl-2.13.so libdl.so.2 )
( cd lib ; rm -rf libnss_dns.so.2 )
-( cd lib ; ln -sf libnss_dns-2.11.1.so libnss_dns.so.2 )
+( cd lib ; ln -sf libnss_dns-2.13.so libnss_dns.so.2 )
( cd lib ; rm -rf libpthread.so.0 )
-( cd lib ; ln -sf libpthread-2.11.1.so libpthread.so.0 )
+( cd lib ; ln -sf libpthread-2.13.so libpthread.so.0 )
( cd lib ; rm -rf libnss_nisplus.so.2 )
-( cd lib ; ln -sf libnss_nisplus-2.11.1.so libnss_nisplus.so.2 )
+( cd lib ; ln -sf libnss_nisplus-2.13.so libnss_nisplus.so.2 )
( cd lib ; rm -rf libc.so.6 )
-( cd lib ; ln -sf libc-2.11.1.so libc.so.6 )
+( cd lib ; ln -sf libc-2.13.so libc.so.6 )
( cd lib ; rm -rf librt.so.1 )
-( cd lib ; ln -sf librt-2.11.1.so librt.so.1 )
+( cd lib ; ln -sf librt-2.13.so librt.so.1 )
fi
diff --git a/source/l/glibc/doinst.sh-glibc-zoneinfo b/source/l/glibc/doinst.sh-glibc-zoneinfo
index 7afabf898..04bfe8eff 100644
--- a/source/l/glibc/doinst.sh-glibc-zoneinfo
+++ b/source/l/glibc/doinst.sh-glibc-zoneinfo
@@ -3,21 +3,15 @@ ldconfig -r .
# Fix existing old style /etc/localtime symlink:
if [ -L etc/localtime -a ! -r etc/localtime-copied-from ]; then
mv etc/localtime etc/localtime-copied-from
- chroot . /bin/cp etc/localtime-copied-from etc/localtime
fi
# Add the default timezone in /etc, if none exists:
if [ ! -r etc/localtime ]; then
( cd etc ; rm -rf localtime localtime-copied-from )
( cd etc ; ln -sf /usr/share/zoneinfo/Factory localtime-copied-from )
- chroot . /bin/cp etc/localtime-copied-from etc/localtime
-fi
-# Add the default link in /usr/share/zoneinfo, if none exists:
-if [ ! -L usr/share/zoneinfo/localtime ]; then
- ( cd usr/share/zoneinfo ; rm -rf localtime )
- ( cd usr/share/zoneinfo ; ln -sf /etc/localtime localtime )
fi
# Make sure /etc/localtime is updated:
chroot . /bin/cp etc/localtime-copied-from etc/localtime
+# Add the default link in /usr/share/zoneinfo:
( cd usr/share/zoneinfo ; rm -rf timeconfig )
( cd usr/share/zoneinfo ; ln -sf /usr/sbin/timeconfig timeconfig )
### Make the rest of the symbolic links in the zoneinfo database:
diff --git a/source/l/glibc/glibc.SlackBuild b/source/l/glibc/glibc.SlackBuild
index c00d790ef..d3f21ae54 100755
--- a/source/l/glibc/glibc.SlackBuild
+++ b/source/l/glibc/glibc.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,9 +22,9 @@
## build glibc-$VERSION for Slackware
-VERSION=${VERSION:-2.11.1}
+VERSION=${VERSION:-2.13}
CHECKOUT=${CHECKOUT:-""}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
## Included in glibc now:
## glibc-libidn version
@@ -42,6 +42,56 @@ if [ -z "$ARCH" ]; then
esac
fi
+# I'll break this out as an option for fun :-)
+case $ARCH in
+ i386)
+ OPTIMIZ="-O3 -march=i386 -mcpu=i686"
+ LIBDIRSUFFIX=""
+ ;;
+ i486)
+ OPTIMIZ="-O3 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+ ;;
+ i586)
+ OPTIMIZ="-O3 -march=i586"
+ LIBDIRSUFFIX=""
+ ;;
+ i686)
+ OPTIMIZ="-O3 -march=i686"
+ LIBDIRSUFFIX=""
+ ;;
+ athlon)
+ OPTIMIZ="-O3 -march=athlon"
+ LIBDIRSUFFIX=""
+ ;;
+ s390)
+ OPTIMIZ="-O3"
+ LIBDIRSUFFIX=""
+ ;;
+ x86_64)
+ OPTIMIZ="-O3 -fPIC"
+ LIBDIRSUFFIX="64"
+ ;;
+ *)
+ OPTIMIZ="-O3"
+ LIBDIRSUFFIX=""
+ ;;
+esac
+
+case $ARCH in
+ x86_64)
+ TARGET=${TARGET:-x86_64}
+ ;;
+ i486)
+ # This should be i486 for all 32-bit x86 arch:
+ TARGET=${TARGET:-i486}
+ ;;
+esac
+
+# Hand off the $ARCH variable to $SLACKWARE_ARCH to avoid confusing glibc:
+SLACKWARE_ARCH=$ARCH
+unset ARCH
+
CVSVER=${VERSION}${CHECKOUT}
# NOTE!!! glibc needs to be built against the sanitized kernel headers,
@@ -58,21 +108,11 @@ mkdir -p $TMP
NUMJOBS=${NUMJOBS:--j4}
# Sanity check on the version number in the install scripts:
-if ! grep -vq libutil-$VERSION}.so $CWD/doinst.sh-glibc ; then
+if ! grep -vq libutil-${VERSION}.so $CWD/doinst.sh-glibc ; then
echo "FATAL: doinst.sh scripts have wrong version numbers."
exit 1
fi
-case $ARCH in
- x86_64)
- TARGET=${TARGET:-x86_64}
- ;;
- i486)
- # This should be i486 for all 32-bit x86 arch:
- TARGET=${TARGET:-i486}
- ;;
-esac
-
# This function fixes a doinst.sh file for x86_64.
# With thanks to Fred Emmott.
fix_doinst() {
@@ -86,7 +126,7 @@ fix_doinst() {
# Fix "( cd lib" occurrences
sed -i "s#( cd lib\$#( cd lib${LIBDIRSUFFIX}#" install/doinst.sh
- if [ "$ARCH" = "x86_64" ]; then
+ if [ "$SLACKWARE_ARCH" = "x86_64" ]; then
sed -i 's#ld-linux.so.2#ld-linux-x86-64.so.2#' install/doinst.sh
fi
}
@@ -112,6 +152,19 @@ apply_patches() {
# This reverts a patch that was made to glibc to fix "namespace leakage",
# which seems to cause some build failures (e.g. with conntrack):
zcat $CWD/glibc.revert.to.fix.build.breakages.diff.gz | patch -p1 --verbose || exit 1
+ # This partial security patch still applies and might be needed:
+ zcat $CWD/glibc.git-96611391ad8823ba58405325d78cefeae5cdf699-CVE-2010-3847b.patch.gz | patch -p1 --verbose || exit 1
+ # Make it harder for people to trick ldd into running code:
+ zcat $CWD/glibc.ldd.trace.through.dynamic.linker.diff.gz | patch -p1 --verbose || exit 1
+ # Make glibc compile with binutils using --enable-initfini-array.
+ # At this time, we do not recommend this due to probable ABI breakage.
+ # The also patch needs work before it would apply.
+ # ***NOT READY***
+ #zcat $CWD/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch.gz | patch -p1 --verbose || exit 1
+ #
+ # Avoid the Intel optimized asm routines for now because they break
+ # the flash player. We'll phase this in when it's safer to do so.
+ zcat $CWD/glibc.disable.broken.optimized.memcpy.diff.gz | patch -p1 --verbose || exit 1
# Update the timezone information.
( cd timezone
tar xzf $CWD/tzdata?????.tar.gz
@@ -128,42 +181,6 @@ apply_patches() {
)
}
-# I'll break this out as an option for fun :-)
-case $ARCH in
- i386)
- OPTIMIZ="-O3 -march=i386 -mcpu=i686"
- LIBDIRSUFFIX=""
- ;;
- i486)
- OPTIMIZ="-O3 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
- ;;
- i586)
- OPTIMIZ="-O3 -march=i586"
- LIBDIRSUFFIX=""
- ;;
- i686)
- OPTIMIZ="-O3 -march=i686"
- LIBDIRSUFFIX=""
- ;;
- athlon)
- OPTIMIZ="-O3 -march=athlon"
- LIBDIRSUFFIX=""
- ;;
- s390)
- OPTIMIZ="-O3"
- LIBDIRSUFFIX=""
- ;;
- x86_64)
- OPTIMIZ="-O3 -fPIC"
- LIBDIRSUFFIX="64"
- ;;
- *)
- OPTIMIZ="-O3"
- LIBDIRSUFFIX=""
- ;;
-esac
-
# This is going to be the initial $DESTDIR:
export PKG=$TMP/package-glibc-incoming-tree
PGLIBC=$TMP/package-glibc
@@ -232,7 +249,7 @@ fi
# Make build directory:
mkdir build-glibc-$VERSION
-cd build-glibc-$VERSION
+cd build-glibc-$VERSION || exit 1
echo "BUILDING DAS NPTL GLIBC"
CFLAGS="-g $OPTIMIZ" \
@@ -373,7 +390,7 @@ mv $PKG/usr/lib${LIBDIRSUFFIX}/lib*_p.a usr/lib${LIBDIRSUFFIX}
( cd usr/lib${LIBDIRSUFFIX} ; strip -g *.a )
mkdir install
cp -a $CWD/slack-desc.glibc-profile install/slack-desc
-makepkg -l y -c n $TMP/glibc-profile-$VERSION-$ARCH-$BUILD.txz
+makepkg -l y -c n $TMP/glibc-profile-$VERSION-$SLACKWARE_ARCH-$BUILD.txz
# THIS IS NO LONGER PACKAGED (or is it? might be better to let it be made, and then ship it or not...)
# glibc-debug:
@@ -383,7 +400,7 @@ mkdir -p usr/lib${LIBDIRSUFFIX}
mv $PKG/usr/lib${LIBDIRSUFFIX}/debug usr/lib${LIBDIRSUFFIX}
mkdir install
cp -a $CWD/slack-desc.glibc-debug install/slack-desc
-makepkg -l y -c n $TMP/glibc-debug-$VERSION-$ARCH-$BUILD.txz
+makepkg -l y -c n $TMP/glibc-debug-$VERSION-$SLACKWARE_ARCH-$BUILD.txz
## INSTEAD, NUKE THESE LIBS
#rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/debug
@@ -397,7 +414,7 @@ cp -a $PKG/usr/share/i18n usr/share
cp -a $PKG/usr/share/locale usr/share
mkdir install
cp -a $CWD/slack-desc.glibc-i18n install/slack-desc
-makepkg -l y -c n $TMP/glibc-i18n-$VERSION-$ARCH-$BUILD.txz
+makepkg -l y -c n $TMP/glibc-i18n-$VERSION-$SLACKWARE_ARCH-$BUILD.txz
# glibc-solibs:
cd $PSOLIBS
@@ -438,7 +455,7 @@ fix_doinst
# Ditch links:
find . -type l -exec rm {} \;
# Build the package:
-makepkg -l y -c n $TMP/glibc-solibs-$VERSION-$ARCH-$BUILD.txz
+makepkg -l y -c n $TMP/glibc-solibs-$VERSION-$SLACKWARE_ARCH-$BUILD.txz
# And finally, the complete "all-in-one" glibc package is created
# from whatever was leftover:
@@ -460,7 +477,7 @@ fix_doinst
mv incoming/libSegFault.so .
)
# Build the package:
-/sbin/makepkg -l y -c n $TMP/glibc-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/glibc-$VERSION-$SLACKWARE_ARCH-$BUILD.txz
# Done!
echo
diff --git a/source/l/glibc/glibc.disable.broken.optimized.memcpy.diff b/source/l/glibc/glibc.disable.broken.optimized.memcpy.diff
new file mode 100644
index 000000000..8034f1201
--- /dev/null
+++ b/source/l/glibc/glibc.disable.broken.optimized.memcpy.diff
@@ -0,0 +1,30 @@
+--- ./sysdeps/x86_64/multiarch/memcpy.S.orig 2011-01-17 22:34:07.000000000 -0600
++++ ./sysdeps/x86_64/multiarch/memcpy.S 2011-02-08 19:36:26.000000000 -0600
+@@ -32,12 +32,6 @@
+ jne 1f
+ call __init_cpu_features
+ 1: leaq __memcpy_sse2(%rip), %rax
+- testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
+- jz 2f
+- leaq __memcpy_ssse3(%rip), %rax
+- testl $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip)
+- jz 2f
+- leaq __memcpy_ssse3_back(%rip), %rax
+ 2: ret
+ END(memcpy)
+
+--- ./sysdeps/x86_64/multiarch/mempcpy.S.orig 2011-01-17 22:34:07.000000000 -0600
++++ ./sysdeps/x86_64/multiarch/mempcpy.S 2011-02-08 19:36:37.000000000 -0600
+@@ -31,12 +31,6 @@
+ jne 1f
+ call __init_cpu_features
+ 1: leaq __mempcpy_sse2(%rip), %rax
+- testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
+- jz 2f
+- leaq __mempcpy_ssse3(%rip), %rax
+- testl $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip)
+- jz 2f
+- leaq __mempcpy_ssse3_back(%rip), %rax
+ 2: ret
+ END(__mempcpy)
+
diff --git a/source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch b/source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch
new file mode 100644
index 000000000..9b58674c7
--- /dev/null
+++ b/source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch
@@ -0,0 +1,1212 @@
+From 4a531bb0b3b582cb693de9f76d2d97d970f9a5d5 Mon Sep 17 00:00:00 2001
+From: H.J. Lu <hongjiu.lu@intel.com>
+Date: Fri, 24 Dec 2010 20:14:37 -0500
+Subject: [PATCH] Remove `.ctors' and `.dtors' output sections
+
+---
+ ChangeLog | 15 ++
+ config.h.in | 3 +
+ configure | 334 +++++++++++++++++---------------
+ configure.in | 2 +
+ elf/sofini.c | 2 +
+ elf/soinit.c | 2 +
+ sysdeps/i386/init-first.c | 2 +
+ sysdeps/mach/hurd/i386/init-first.c | 2 +-
+ sysdeps/mach/hurd/powerpc/init-first.c | 2 +-
+ sysdeps/sh/init-first.c | 2 +
+ sysdeps/unix/sysv/linux/init-first.c | 2 +-
+ 11 files changed, 209 insertions(+), 159 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index 958c76a..497de67 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,18 @@
++2010-12-15 H.J. Lu <hongjiu.lu@intel.com>
++
++ * config.h.in (NO_CTORS_DTORS_SECTIONS): Define.
++ * configure.in: Define NO_CTORS_DTORS_SECTIONS if linker
++ script has SORT_BY_INIT_PRIORITY.
++ * elf/sofini.c: Remove `.ctors' and `.dtors' sections if
++ NO_CTORS_DTORS_SECTIONS is defined.
++ * elf/soinit.c: Likewise.
++ * sysdeps/i386/init-first.c: Don't call __libc_global_ctors if
++ NO_CTORS_DTORS_SECTIONS is defined.
++ * sysdeps/mach/hurd/i386/init-first.c: Likewise.
++ * sysdeps/mach/hurd/powerpc/init-first.c: Likewise.
++ * sysdeps/sh/init-first.c: Likewise.
++ * sysdeps/unix/sysv/linux/init-first.c: Likewise.
++
+ 2010-12-24 Ulrich Drepper <drepper@gmail.com>
+
+ * stdio-common/vfprintf.c (vfprintf): If printf handlers are installed
+diff --git a/config.h.in b/config.h.in
+index 18bf01a..9e797eb 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -201,6 +201,9 @@
+ /* Define if multi-arch DSOs should be generated. */
+ #undef USE_MULTIARCH
+
++/* Define if `.ctors' and `.dtors' sections shouldn't be used. */
++#undef NO_CTORS_DTORS_SECTIONS
++
+ /*
+ */
+
+diff --git a/configure b/configure
+index eae35ba..823f15e 100755
+--- a/configure
++++ b/configure
+@@ -1,14 +1,14 @@
+ #! /bin/sh
+ # From configure.in CVSid.
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.65 for GNU C Library (see version.h).
++# Generated by GNU Autoconf 2.66 for GNU C Library (see version.h).
+ #
+ # Report bugs to <glibc>.
+ #
+ #
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+-# Inc.
++# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
++# Foundation, Inc.
+ #
+ #
+ # This configure script is free software; the Free Software Foundation
+@@ -319,7 +319,7 @@ $as_echo X"$as_dir" |
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
++ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+ } # as_fn_mkdir_p
+@@ -359,19 +359,19 @@ else
+ fi # as_fn_arith
+
+
+-# as_fn_error ERROR [LINENO LOG_FD]
+-# ---------------------------------
++# as_fn_error STATUS ERROR [LINENO LOG_FD]
++# ----------------------------------------
+ # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+ # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+-# script with status $?, using 1 if that was 0.
++# script with STATUS, using 1 if that was 0.
+ as_fn_error ()
+ {
+- as_status=$?; test $as_status -eq 0 && as_status=1
+- if test "$3"; then
+- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
++ as_status=$1; test $as_status -eq 0 && as_status=1
++ if test "$4"; then
++ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+- $as_echo "$as_me: error: $1" >&2
++ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+ } # as_fn_error
+
+@@ -533,7 +533,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
+ exec 6>&1
+
+ # Name of the host.
+-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
++# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+ # so uname gets run too.
+ ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+@@ -907,7 +907,7 @@ do
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+- as_fn_error "invalid feature name: $ac_useropt"
++ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+@@ -933,7 +933,7 @@ do
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+- as_fn_error "invalid feature name: $ac_useropt"
++ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+@@ -1137,7 +1137,7 @@ do
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+- as_fn_error "invalid package name: $ac_useropt"
++ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+@@ -1153,7 +1153,7 @@ do
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+- as_fn_error "invalid package name: $ac_useropt"
++ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+@@ -1183,8 +1183,8 @@ do
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+- -*) as_fn_error "unrecognized option: \`$ac_option'
+-Try \`$0 --help' for more information."
++ -*) as_fn_error $? "unrecognized option: \`$ac_option'
++Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+@@ -1192,7 +1192,7 @@ Try \`$0 --help' for more information."
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+- as_fn_error "invalid variable name: \`$ac_envvar'" ;;
++ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+@@ -1210,13 +1210,13 @@ done
+
+ if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+- as_fn_error "missing argument to $ac_option"
++ as_fn_error $? "missing argument to $ac_option"
+ fi
+
+ if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+- fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
++ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+ fi
+@@ -1239,7 +1239,7 @@ do
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+- as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
++ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+ done
+
+ # There might be people who depend on the old broken behavior: `$host'
+@@ -1253,8 +1253,8 @@ target=$target_alias
+ if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+- If a cross compiler is detected then cross compile mode will be used." >&2
++ $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
++ If a cross compiler is detected then cross compile mode will be used" >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+@@ -1269,9 +1269,9 @@ test "$silent" = yes && exec 6>/dev/null
+ ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ ac_ls_di=`ls -di .` &&
+ ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+- as_fn_error "working directory cannot be determined"
++ as_fn_error $? "working directory cannot be determined"
+ test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+- as_fn_error "pwd does not report name of working directory"
++ as_fn_error $? "pwd does not report name of working directory"
+
+
+ # Find the source files, if location was not specified.
+@@ -1310,11 +1310,11 @@ else
+ fi
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+- as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
++ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+ fi
+ ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ ac_abs_confdir=`(
+- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
++ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+ # When building in place, set srcdir=.
+ if test "$ac_abs_confdir" = "$ac_pwd"; then
+@@ -1354,7 +1354,7 @@ Configuration:
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+- -q, --quiet, --silent do not print \`checking...' messages
++ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+@@ -1544,9 +1544,9 @@ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+ GNU C Library configure (see version.h)
+-generated by GNU Autoconf 2.65
++generated by GNU Autoconf 2.66
+
+-Copyright (C) 2009 Free Software Foundation, Inc.
++Copyright (C) 2010 Free Software Foundation, Inc.
+ This configure script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it.
+ _ACEOF
+@@ -1945,7 +1945,7 @@ ac_fn_c_check_header_compile ()
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ $as_echo_n "checking for $2... " >&6; }
+-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
++if eval "test \"\${$3+set}\"" = set; then :
+ $as_echo_n "(cached) " >&6
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -1971,7 +1971,7 @@ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+ It was created by GNU C Library $as_me (see version.h), which was
+-generated by GNU Autoconf 2.65. Invocation command line was
++generated by GNU Autoconf 2.66. Invocation command line was
+
+ $ $0 $@
+
+@@ -2081,11 +2081,9 @@ trap 'exit_status=$?
+ {
+ echo
+
+- cat <<\_ASBOX
+-## ---------------- ##
++ $as_echo "## ---------------- ##
+ ## Cache variables. ##
+-## ---------------- ##
+-_ASBOX
++## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+ (
+@@ -2119,11 +2117,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ )
+ echo
+
+- cat <<\_ASBOX
+-## ----------------- ##
++ $as_echo "## ----------------- ##
+ ## Output variables. ##
+-## ----------------- ##
+-_ASBOX
++## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+@@ -2136,11 +2132,9 @@ _ASBOX
+ echo
+
+ if test -n "$ac_subst_files"; then
+- cat <<\_ASBOX
+-## ------------------- ##
++ $as_echo "## ------------------- ##
+ ## File substitutions. ##
+-## ------------------- ##
+-_ASBOX
++## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+@@ -2154,11 +2148,9 @@ _ASBOX
+ fi
+
+ if test -s confdefs.h; then
+- cat <<\_ASBOX
+-## ----------- ##
++ $as_echo "## ----------- ##
+ ## confdefs.h. ##
+-## ----------- ##
+-_ASBOX
++## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+@@ -2213,7 +2205,12 @@ _ACEOF
+ ac_site_file1=NONE
+ ac_site_file2=NONE
+ if test -n "$CONFIG_SITE"; then
+- ac_site_file1=$CONFIG_SITE
++ # We do not want a PATH search for config.site.
++ case $CONFIG_SITE in #((
++ -*) ac_site_file1=./$CONFIG_SITE;;
++ */*) ac_site_file1=$CONFIG_SITE;;
++ *) ac_site_file1=./$CONFIG_SITE;;
++ esac
+ elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+@@ -2228,7 +2225,11 @@ do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+- . "$ac_site_file"
++ . "$ac_site_file" \
++ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error $? "failed to load site script $ac_site_file
++See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ done
+
+@@ -2304,7 +2305,7 @@ if $ac_cache_corrupted; then
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+ $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+- as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
++ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ fi
+ ## -------------------- ##
+ ## Main body of script. ##
+@@ -2322,16 +2323,22 @@ ac_config_headers="$ac_config_headers config.h"
+
+ ac_aux_dir=
+ for ac_dir in scripts "$srcdir"/scripts; do
+- for ac_t in install-sh install.sh shtool; do
+- if test -f "$ac_dir/$ac_t"; then
+- ac_aux_dir=$ac_dir
+- ac_install_sh="$ac_aux_dir/$ac_t -c"
+- break 2
+- fi
+- done
++ if test -f "$ac_dir/install-sh"; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh="$ac_aux_dir/install-sh -c"
++ break
++ elif test -f "$ac_dir/install.sh"; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh="$ac_aux_dir/install.sh -c"
++ break
++ elif test -f "$ac_dir/shtool"; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh="$ac_aux_dir/shtool install -c"
++ break
++ fi
+ done
+ if test -z "$ac_aux_dir"; then
+- as_fn_error "cannot find install-sh, install.sh, or shtool in scripts \"$srcdir\"/scripts" "$LINENO" 5
++ as_fn_error $? "cannot find install-sh, install.sh, or shtool in scripts \"$srcdir\"/scripts" "$LINENO" 5
+ fi
+
+ # These three variables are undocumented and unsupported,
+@@ -2351,7 +2358,7 @@ subdirs="$subdirs "
+
+ # Make sure we can run config.sub.
+ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+- as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
++ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+ $as_echo_n "checking build system type... " >&6; }
+@@ -2362,16 +2369,16 @@ else
+ test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+ test "x$ac_build_alias" = x &&
+- as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
++ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+- as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
++ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+ $as_echo "$ac_cv_build" >&6; }
+ case $ac_cv_build in
+ *-*-*) ;;
+-*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
++*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+ esac
+ build=$ac_cv_build
+ ac_save_IFS=$IFS; IFS='-'
+@@ -2396,7 +2403,7 @@ else
+ ac_cv_host=$ac_cv_build
+ else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+- as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
++ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ fi
+
+ fi
+@@ -2404,7 +2411,7 @@ fi
+ $as_echo "$ac_cv_host" >&6; }
+ case $ac_cv_host in
+ *-*-*) ;;
+-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
++*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+ esac
+ host=$ac_cv_host
+ ac_save_IFS=$IFS; IFS='-'
+@@ -2721,8 +2728,8 @@ fi
+
+ test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error "no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." "$LINENO" 5; }
++as_fn_error $? "no acceptable C compiler found in \$PATH
++See \`config.log' for more details" "$LINENO" 5; }
+
+ # Provide some information about the compiler.
+ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+@@ -2792,8 +2799,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
+
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error "cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." "$LINENO" 5; }
++as_fn_error $? "cannot compute suffix of object files: cannot compile
++See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext
+ fi
+@@ -3185,8 +3192,8 @@ if $ac_preproc_ok; then :
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error "C preprocessor \"$CPP\" fails sanity check
+-See \`config.log' for more details." "$LINENO" 5; }
++as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
++See \`config.log' for more details" "$LINENO" 5; }
+ fi
+
+ ac_ext=c
+@@ -3455,7 +3462,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
+- as_fn_error "you must configure in a separate build directory" "$LINENO" 5
++ as_fn_error $? "you must configure in a separate build directory" "$LINENO" 5
+ fi
+
+ # This will get text that should go into config.make.
+@@ -3767,7 +3774,7 @@ fi
+ if test x$nss_crypt = xyes; then
+ nss_includes=-I$(nss-config --includedir 2>/dev/null)
+ if test $? -ne 0; then
+- as_fn_error "cannot find include directory with nss-config" "$LINENO" 5
++ as_fn_error $? "cannot find include directory with nss-config" "$LINENO" 5
+ fi
+ old_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $nss_includes"
+@@ -3782,7 +3789,7 @@ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ libc_cv_nss_crypt=yes
+ else
+- as_fn_error "
++ as_fn_error $? "
+ cannot find NSS headers with lowlevel hash function interfaces" "$LINENO" 5
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+@@ -3804,7 +3811,7 @@ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+ libc_cv_nss_crypt=yes
+ else
+- as_fn_error "
++ as_fn_error $? "
+ cannot link program using lowlevel NSS hash functions" "$LINENO" 5
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+@@ -3880,7 +3887,7 @@ submachine=
+ # Check whether --with-cpu was given.
+ if test "${with_cpu+set}" = set; then :
+ withval=$with_cpu; case "$withval" in
+- yes|'') as_fn_error "--with-cpu requires an argument" "$LINENO" 5 ;;
++ yes|'') as_fn_error $? "--with-cpu requires an argument" "$LINENO" 5 ;;
+ no) ;;
+ *) submachine="$withval" ;;
+ esac
+@@ -3913,14 +3920,14 @@ if test x"$add_ons" != x; then
+ # Some sanity checks
+ case "$f" in
+ crypt)
+- as_fn_error "
++ as_fn_error $? "
+ *** It seems that you're using an old \`crypt' add-on. crypt is now
+ *** part of glibc and using the old add-on will not work with this
+ *** release. Start again with fresh sources and without the old
+ *** \`crypt' add-on." "$LINENO" 5
+ ;;
+ localedata)
+- as_fn_error "
++ as_fn_error $? "
+ *** It seems that you're using an old \`localedata' add-on. localedata
+ *** is now part of glibc and using the old add-on will not work with
+ *** this release. Start again with fresh sources and without the old
+@@ -3947,7 +3954,7 @@ if test x"$add_ons" != x; then
+ if test -d "$libc_add_on"; then
+ libc_add_on="`pwd`/$libc_add_on"
+ else
+- as_fn_error "add-on directory \"$libc_add_on\" does not exist" "$LINENO" 5
++ as_fn_error $? "add-on directory \"$libc_add_on\" does not exist" "$LINENO" 5
+ fi
+ }
+ libc_add_on_srcdir=$srcdir/$libc_add_on
+@@ -3966,7 +3973,7 @@ $as_echo "$as_me: running configure fragment for add-on $libc_add_on" >&6;}
+ test -z "$libc_add_on" || {
+ configured_add_ons="$configured_add_ons $libc_add_on"
+ if test "x$libc_add_on_canonical" = xunknown; then
+- as_fn_error "fragment must set \$libc_add_on_canonical" "$LINENO" 5
++ as_fn_error $? "fragment must set \$libc_add_on_canonical" "$LINENO" 5
+ fi
+ for d in $libc_add_on_subdirs; do
+ case "$libc_add_on" in
+@@ -3991,13 +3998,13 @@ $d-srcdir = $subdir_srcdir"
+ done
+ for d in $libc_add_on_config_subdirs; do
+ case "$d" in
+- /*) as_fn_error "fragment uses absolute path in \$libc_add_on_config_subdirs" "$LINENO" 5 ;;
++ /*) as_fn_error $? "fragment uses absolute path in \$libc_add_on_config_subdirs" "$LINENO" 5 ;;
+ esac
+ if test ! -d "$libc_add_on_srcdir/$d"; then
+- as_fn_error "fragment wants to configure missing directory $d" "$LINENO" 5
++ as_fn_error $? "fragment wants to configure missing directory $d" "$LINENO" 5
+ fi
+ case "$libc_add_on" in
+- /*) as_fn_error "relative path required for add-on using \$libc_add_on_config_subdirs" "$LINENO" 5 ;;
++ /*) as_fn_error $? "relative path required for add-on using \$libc_add_on_config_subdirs" "$LINENO" 5 ;;
+ esac
+ subdirs="$subdirs $libc_add_on/$d"
+ done
+@@ -4174,7 +4181,7 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_global_directive" >&5
+ $as_echo "$libc_cv_asm_global_directive" >&6; }
+ if test $libc_cv_asm_global_directive = UNKNOWN; then
+- as_fn_error "cannot determine asm global directive" "$LINENO" 5
++ as_fn_error $? "cannot determine asm global directive" "$LINENO" 5
+ else
+ cat >>confdefs.h <<_ACEOF
+ #define ASM_GLOBAL_DIRECTIVE ${libc_cv_asm_global_directive}
+@@ -4220,7 +4227,7 @@ fi
+
+ if test x"$libc_cv_asm_gnu_indirect_function" != xyes -a x"$libc_cv_asm_type_prefix" = xno; then
+ if test x"$multi_arch" = xyes; then
+- as_fn_error "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
++ as_fn_error $? "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
+ else
+ multi_arch=no
+ fi
+@@ -4359,13 +4366,13 @@ fi
+
+
+ if test -z "$os_used" && test "$os" != none; then
+- as_fn_error "Operating system $os is not supported." "$LINENO" 5
++ as_fn_error $? "Operating system $os is not supported." "$LINENO" 5
+ fi
+ if test -z "$machine_used" && test "$machine" != none; then
+- as_fn_error "The $machine is not supported." "$LINENO" 5
++ as_fn_error $? "The $machine is not supported." "$LINENO" 5
+ fi
+ if test -z "$submachine_used" && test -n "$submachine"; then
+- as_fn_error "The $submachine subspecies of $host_cpu is not supported." "$LINENO" 5
++ as_fn_error $? "The $submachine subspecies of $host_cpu is not supported." "$LINENO" 5
+ fi
+
+
+@@ -4492,7 +4499,7 @@ for add_on in $add_ons; do
+ case "$configured_add_ons " in
+ *" $add_on "*) ;;
+ *|'')
+- as_fn_error "add-on $add_on has no configure fragment or sysdeps tree" "$LINENO" 5
++ as_fn_error $? "add-on $add_on has no configure fragment or sysdeps tree" "$LINENO" 5
+ ;;
+ esac
+ continue
+@@ -4978,7 +4985,7 @@ fi
+
+
+ if test "$PWD_P" = no; then
+- as_fn_error "*** A pwd binary could not be found." "$LINENO" 5
++ as_fn_error $? "*** A pwd binary could not be found." "$LINENO" 5
+ fi
+
+ # These programs are version sensitive.
+@@ -5367,7 +5374,7 @@ if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
+ aux_missing="$aux_missing autoconf"
+ fi
+
+-test -n "$critic_missing" && as_fn_error "
++test -n "$critic_missing" && as_fn_error $? "
+ *** These critical programs are missing or too old:$critic_missing
+ *** Check the INSTALL file for required versions." "$LINENO" 5
+
+@@ -5450,7 +5457,7 @@ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_library_path_setting" >&5
+ $as_echo "$ld_library_path_setting" >&6; }
+ if test "$ld_library_path_setting" != "ok"; then
+-as_fn_error "
++as_fn_error $? "
+ *** LD_LIBRARY_PATH shouldn't contain the current directory when
+ *** building glibc. Please change the environment variable
+ *** and run configure again." "$LINENO" 5
+@@ -6053,7 +6060,7 @@ EOF
+ test $ac_status = 0; }; }; then
+ libc_cv_asm_protected_directive=yes
+ else
+- as_fn_error "assembler support for symbol visibility is required" "$LINENO" 5
++ as_fn_error $? "assembler support for symbol visibility is required" "$LINENO" 5
+ fi
+ rm -f conftest*
+ fi
+@@ -6089,7 +6096,7 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_visibility_attribute" >&5
+ $as_echo "$libc_cv_visibility_attribute" >&6; }
+ if test $libc_cv_visibility_attribute != yes; then
+- as_fn_error "compiler support for visibility attribute is required" "$LINENO" 5
++ as_fn_error $? "compiler support for visibility attribute is required" "$LINENO" 5
+ fi
+ fi
+
+@@ -6121,7 +6128,7 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_broken_visibility_attribute" >&5
+ $as_echo "$libc_cv_broken_visibility_attribute" >&6; }
+ if test $libc_cv_broken_visibility_attribute = yes; then
+- as_fn_error "working compiler support for visibility attribute is required" "$LINENO" 5
++ as_fn_error $? "working compiler support for visibility attribute is required" "$LINENO" 5
+ fi
+ fi
+
+@@ -6156,7 +6163,7 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_broken_alias_attribute" >&5
+ $as_echo "$libc_cv_broken_alias_attribute" >&6; }
+ if test $libc_cv_broken_alias_attribute = yes; then
+- as_fn_error "working alias attribute support required" "$LINENO" 5
++ as_fn_error $? "working alias attribute support required" "$LINENO" 5
+ fi
+
+ if test $libc_cv_visibility_attribute = yes; then
+@@ -6214,7 +6221,15 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_initfini_array" >&5
+ $as_echo "$libc_cv_initfini_array" >&6; }
+ if test $libc_cv_initfini_array != yes; then
+- as_fn_error "Need linker with .init_array/.fini_array support." "$LINENO" 5
++ as_fn_error $? "Need linker with .init_array/.fini_array support." "$LINENO" 5
++ elif { ac_try='${CC-cc} -Wl,--verbose 2>&1|grep SORT_BY_INIT_PRIORITY 1>&5'
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; }; then
++ $as_echo "#define NO_CTORS_DTORS_SECTIONS 1" >>confdefs.h
++
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libunwind-support in compiler" >&5
+@@ -6262,7 +6277,7 @@ EOF
+ then
+ libc_cv_z_nodelete=yes
+ else
+- as_fn_error "linker with -z nodelete support required" "$LINENO" 5
++ as_fn_error $? "linker with -z nodelete support required" "$LINENO" 5
+ fi
+ rm -f conftest*
+ fi
+@@ -6289,7 +6304,7 @@ EOF
+ then
+ libc_cv_z_nodlopen=yes
+ else
+- as_fn_error "linker with -z nodlopen support required" "$LINENO" 5
++ as_fn_error $? "linker with -z nodlopen support required" "$LINENO" 5
+ fi
+ rm -f conftest*
+ fi
+@@ -6316,7 +6331,7 @@ EOF
+ then
+ libc_cv_z_initfirst=yes
+ else
+- as_fn_error "linker with -z initfirst support required" "$LINENO" 5
++ as_fn_error $? "linker with -z initfirst support required" "$LINENO" 5
+ fi
+ rm -f conftest*
+ fi
+@@ -6352,7 +6367,7 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_z_relro" >&5
+ $as_echo "$libc_cv_z_relro" >&6; }
+ if test "$libc_cv_z_relro" = no; then
+- as_fn_error "linker with -z relro support required" "$LINENO" 5
++ as_fn_error $? "linker with -z relro support required" "$LINENO" 5
+ fi
+ ;;
+ *) ;;
+@@ -7202,7 +7217,7 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_submachine" >&5
+ $as_echo "$libc_cv_cc_submachine" >&6; }
+ if test "x$libc_cv_cc_submachine" = xno; then
+- as_fn_error "${CC-cc} does not support $submachine" "$LINENO" 5
++ as_fn_error $? "${CC-cc} does not support $submachine" "$LINENO" 5
+ fi
+ fi
+
+@@ -7322,7 +7337,7 @@ $as_echo "$have_selinux" >&6; }
+
+ if test x$with_selinux = xyes ; then
+ if test x$have_selinux = xno ; then
+- as_fn_error "SELinux explicitly required, but sufficiently recent SELinux library not found" "$LINENO" 5
++ as_fn_error $? "SELinux explicitly required, but sufficiently recent SELinux library not found" "$LINENO" 5
+ fi
+ fi
+ fi
+@@ -7486,7 +7501,7 @@ esac
+ done
+ IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+- as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
++ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+ else
+ ac_cv_path_GREP=$GREP
+@@ -7552,7 +7567,7 @@ esac
+ done
+ IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
++ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+ else
+ ac_cv_path_EGREP=$EGREP
+@@ -7684,8 +7699,7 @@ do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+ "
+-eval as_val=\$$as_ac_Header
+- if test "x$as_val" = x""yes; then :
++if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+@@ -7710,9 +7724,8 @@ else
+ if test "$ac_cv_type_long_double" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-{ as_fn_set_status 77
+-as_fn_error "cannot compute sizeof (long double)
+-See \`config.log' for more details." "$LINENO" 5; }; }
++as_fn_error 77 "cannot compute sizeof (long double)
++See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_long_double=0
+ fi
+@@ -7943,6 +7956,7 @@ DEFS=-DHAVE_CONFIG_H
+
+ ac_libobjs=
+ ac_ltlibobjs=
++U=
+ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+@@ -8104,19 +8118,19 @@ export LANGUAGE
+ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+-# as_fn_error ERROR [LINENO LOG_FD]
+-# ---------------------------------
++# as_fn_error STATUS ERROR [LINENO LOG_FD]
++# ----------------------------------------
+ # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+ # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+-# script with status $?, using 1 if that was 0.
++# script with STATUS, using 1 if that was 0.
+ as_fn_error ()
+ {
+- as_status=$?; test $as_status -eq 0 && as_status=1
+- if test "$3"; then
+- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
++ as_status=$1; test $as_status -eq 0 && as_status=1
++ if test "$4"; then
++ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+- $as_echo "$as_me: error: $1" >&2
++ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+ } # as_fn_error
+
+@@ -8312,7 +8326,7 @@ $as_echo X"$as_dir" |
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
++ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+ } # as_fn_mkdir_p
+@@ -8366,7 +8380,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ # values after options handling.
+ ac_log="
+ This file was extended by GNU C Library $as_me (see version.h), which was
+-generated by GNU Autoconf 2.65. Invocation command line was
++generated by GNU Autoconf 2.66. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+@@ -8434,10 +8448,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ ac_cs_version="\\
+ GNU C Library config.status (see version.h)
+-configured by $0, generated by GNU Autoconf 2.65,
++configured by $0, generated by GNU Autoconf 2.66,
+ with options \\"\$ac_cs_config\\"
+
+-Copyright (C) 2009 Free Software Foundation, Inc.
++Copyright (C) 2010 Free Software Foundation, Inc.
+ This config.status script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it."
+
+@@ -8492,7 +8506,7 @@ do
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+- as_fn_error "ambiguous option: \`$1'
++ as_fn_error $? "ambiguous option: \`$1'
+ Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+@@ -8501,7 +8515,7 @@ Try \`$0 --help' for more information.";;
+ ac_cs_silent=: ;;
+
+ # This is an error.
+- -*) as_fn_error "unrecognized option: \`$1'
++ -*) as_fn_error $? "unrecognized option: \`$1'
+ Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+@@ -8560,7 +8574,7 @@ do
+ "${config_makefile}") CONFIG_FILES="$CONFIG_FILES ${config_makefile}" ;;
+ "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+
+- *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
++ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+ done
+
+@@ -8598,7 +8612,7 @@ $debug ||
+ {
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
++} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+
+ # Set up the scripts for CONFIG_FILES section.
+ # No need to generate them if there are no CONFIG_FILES.
+@@ -8615,7 +8629,7 @@ if test "x$ac_cr" = x; then
+ fi
+ ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+ if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+- ac_cs_awk_cr='\r'
++ ac_cs_awk_cr='\\r'
+ else
+ ac_cs_awk_cr=$ac_cr
+ fi
+@@ -8629,18 +8643,18 @@ _ACEOF
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+ } >conf$$subs.sh ||
+- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
++ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ ac_delim='%!_!# '
+ for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+@@ -8729,20 +8743,28 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ else
+ cat
+ fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+- || as_fn_error "could not setup config files machinery" "$LINENO" 5
++ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+ _ACEOF
+
+-# VPATH may cause trouble with some makes, so we remove $(srcdir),
+-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
++# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
++# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+ # trailing colons and then remove the whole line if VPATH becomes empty
+ # (actually we leave an empty line to preserve line numbers).
+ if test "x$srcdir" = x.; then
+- ac_vpsub='/^[ ]*VPATH[ ]*=/{
+-s/:*\$(srcdir):*/:/
+-s/:*\${srcdir}:*/:/
+-s/:*@srcdir@:*/:/
+-s/^\([^=]*=[ ]*\):*/\1/
++ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
++h
++s///
++s/^/:/
++s/[ ]*$/:/
++s/:\$(srcdir):/:/g
++s/:\${srcdir}:/:/g
++s/:@srcdir@:/:/g
++s/^:*//
+ s/:*$//
++x
++s/\(=[ ]*\).*/\1/
++G
++s/\n//
+ s/^[^=]*=[ ]*$//
+ }'
+ fi
+@@ -8770,7 +8792,7 @@ for ac_last_try in false false :; do
+ if test -z "$ac_t"; then
+ break
+ elif $ac_last_try; then
+- as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
++ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+@@ -8855,7 +8877,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ _ACAWK
+ _ACEOF
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+- as_fn_error "could not setup config headers machinery" "$LINENO" 5
++ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+ fi # test -n "$CONFIG_HEADERS"
+
+
+@@ -8868,7 +8890,7 @@ do
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+- :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
++ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+@@ -8896,7 +8918,7 @@ do
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+- as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
++ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+@@ -8923,7 +8945,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$tmp/stdin" \
+- || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+@@ -9054,22 +9076,22 @@ s&@INSTALL@&$ac_INSTALL&;t t
+ $ac_datarootdir_hack
+ "
+ eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+- || as_fn_error "could not create $ac_file" "$LINENO" 5
++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+-which seems to be undefined. Please make sure it is defined." >&5
++which seems to be undefined. Please make sure it is defined" >&5
+ $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+-which seems to be undefined. Please make sure it is defined." >&2;}
++which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$tmp/stdin"
+ case $ac_file in
+ -) cat "$tmp/out" && rm -f "$tmp/out";;
+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ esac \
+- || as_fn_error "could not create $ac_file" "$LINENO" 5
++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+@@ -9080,19 +9102,19 @@ which seems to be undefined. Please make sure it is defined." >&2;}
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+ } >"$tmp/config.h" \
+- || as_fn_error "could not create $ac_file" "$LINENO" 5
++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+ $as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$tmp/config.h" "$ac_file" \
+- || as_fn_error "could not create $ac_file" "$LINENO" 5
++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+- || as_fn_error "could not create -" "$LINENO" 5
++ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+ ;;
+
+@@ -9118,7 +9140,7 @@ _ACEOF
+ ac_clean_files=$ac_clean_files_save
+
+ test $ac_write_fail = 0 ||
+- as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
++ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+ # configure is writing to config.log, and then calls config.status.
+@@ -9139,7 +9161,7 @@ if test "$no_create" != yes; then
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+- $ac_cs_success || as_fn_exit $?
++ $ac_cs_success || as_fn_exit 1
+ fi
+
+ #
+@@ -9280,7 +9302,7 @@ $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cach
+ # The eval makes quoting arguments work.
+ eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
+ --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
+- as_fn_error "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
++ as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
+ fi
+
+ cd "$ac_popdir"
+diff --git a/configure.in b/configure.in
+index d8cd5f1..ad25b9b 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1497,6 +1497,8 @@ EOF
+ rm -f conftest*])
+ if test $libc_cv_initfini_array != yes; then
+ AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
++ elif AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep SORT_BY_INIT_PRIORITY 1>&AS_MESSAGE_LOG_FD]); then
++ AC_DEFINE(NO_CTORS_DTORS_SECTIONS)
+ fi
+
+ AC_CACHE_CHECK(for libunwind-support in compiler,
+diff --git a/elf/sofini.c b/elf/sofini.c
+index 5e06f0c..13e74b7 100644
+--- a/elf/sofini.c
++++ b/elf/sofini.c
+@@ -1,12 +1,14 @@
+ /* Finalizer module for ELF shared C library. This provides terminating
+ null pointer words in the `.ctors' and `.dtors' sections. */
+
++#ifndef NO_CTORS_DTORS_SECTIONS
+ static void (*const __CTOR_END__[1]) (void)
+ __attribute__ ((used, section (".ctors")))
+ = { 0 };
+ static void (*const __DTOR_END__[1]) (void)
+ __attribute__ ((used, section (".dtors")))
+ = { 0 };
++#endif
+
+ /* Terminate the frame unwind info section with a 4byte 0 as a sentinel;
+ this would be the 'length' field in a real FDE. */
+diff --git a/elf/soinit.c b/elf/soinit.c
+index 6fecbb5..1db676a 100644
+--- a/elf/soinit.c
++++ b/elf/soinit.c
+@@ -3,6 +3,7 @@
+ the `.ctors' and `.dtors' sections so the lists are terminated, and
+ calling those lists of functions. */
+
++#ifndef NO_CTORS_DTORS_SECTIONS
+ #include <libc-internal.h>
+ #include <stdlib.h>
+
+@@ -40,3 +41,4 @@ __libc_fini (void)
+
+ void (*_fini_ptr) (void) __attribute__ ((section (".fini_array")))
+ = &__libc_fini;
++#endif
+diff --git a/sysdeps/i386/init-first.c b/sysdeps/i386/init-first.c
+index c6355a8..2af042f 100644
+--- a/sysdeps/i386/init-first.c
++++ b/sysdeps/i386/init-first.c
+@@ -59,7 +59,9 @@ _init (int argc, ...)
+ {
+ init (&argc);
+
++#ifndef NO_CTORS_DTORS_SECTIONS
+ __libc_global_ctors ();
++#endif
+ }
+ #endif
+
+diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c
+index f9a7a58..60823bd 100644
+--- a/sysdeps/mach/hurd/i386/init-first.c
++++ b/sysdeps/mach/hurd/i386/init-first.c
+@@ -92,7 +92,7 @@ posixland_init (int argc, char **argv, char **envp)
+ __getopt_clean_environment (envp);
+ #endif
+
+-#ifdef SHARED
++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
+ __libc_global_ctors ();
+ #endif
+ }
+diff --git a/sysdeps/mach/hurd/powerpc/init-first.c b/sysdeps/mach/hurd/powerpc/init-first.c
+index 20fa1d4..21b5054 100644
+--- a/sysdeps/mach/hurd/powerpc/init-first.c
++++ b/sysdeps/mach/hurd/powerpc/init-first.c
+@@ -82,7 +82,7 @@ posixland_init (int argc, char **argv, char **envp)
+ __getopt_clean_environment (__environ);
+ #endif
+
+-#ifdef SHARED
++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
+ __libc_global_ctors ();
+ #endif
+ }
+diff --git a/sysdeps/sh/init-first.c b/sysdeps/sh/init-first.c
+index d816625..1f3a821 100644
+--- a/sysdeps/sh/init-first.c
++++ b/sysdeps/sh/init-first.c
+@@ -59,7 +59,9 @@ _init (int argc, ...)
+ {
+ init (&argc);
+
++#ifndef NO_CTORS_DTORS_SECTIONS
+ __libc_global_ctors ();
++#endif
+ }
+ #endif
+
+diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c
+index 7b2333d..a60212f 100644
+--- a/sysdeps/unix/sysv/linux/init-first.c
++++ b/sysdeps/unix/sysv/linux/init-first.c
+@@ -93,7 +93,7 @@ _init (int argc, char **argv, char **envp)
+ __getopt_clean_environment (envp);
+ #endif
+
+-#ifdef SHARED
++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
+ __libc_global_ctors ();
+ #endif
+ }
+--
+1.7.3.4
+
diff --git a/source/l/glibc/glibc.git-96611391ad8823ba58405325d78cefeae5cdf699-CVE-2010-3847b.patch b/source/l/glibc/glibc.git-96611391ad8823ba58405325d78cefeae5cdf699-CVE-2010-3847b.patch
new file mode 100644
index 000000000..b33b5a0db
--- /dev/null
+++ b/source/l/glibc/glibc.git-96611391ad8823ba58405325d78cefeae5cdf699-CVE-2010-3847b.patch
@@ -0,0 +1,27 @@
+From 96611391ad8823ba58405325d78cefeae5cdf699 Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Thu, 9 Dec 2010 15:00:59 +0100
+Subject: [PATCH] Ignore origin of privileged program
+
+---
+ ChangeLog | 5 +++++
+ elf/dl-object.c | 3 +++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/elf/dl-object.c b/elf/dl-object.c
+index 5d15ce1..a34e902 100644
+--- a/elf/dl-object.c
++++ b/elf/dl-object.c
+@@ -220,6 +220,9 @@ _dl_new_object (char *realname, const char *libname, int type,
+ out:
+ new->l_origin = origin;
+ }
++ else if (INTUSE(__libc_enable_secure) && type == lt_executable)
++ /* The origin of a privileged program cannot be trusted. */
++ new->l_origin = (char *) -1;
+
+ return new;
+ }
+--
+1.7.3.4
+
diff --git a/source/l/glibc/glibc.ldd.trace.through.dynamic.linker.diff b/source/l/glibc/glibc.ldd.trace.through.dynamic.linker.diff
new file mode 100644
index 000000000..6b1f5c843
--- /dev/null
+++ b/source/l/glibc/glibc.ldd.trace.through.dynamic.linker.diff
@@ -0,0 +1,49 @@
+2009-11-08 Aurelien Jarno <aurelien@aurel32.net>
+
+ * elf/ldd.bash.in: also handle error code 126 (ld.so non
+ executable). Always trace dynamic library dependencies through
+ the dynamic linker.
+
+--- a/elf/ldd.bash.in
++++ b/elf/ldd.bash.in
+@@ -153,8 +153,6 @@ for file do
+ echo "ldd: ${file}:" $"not regular file" >&2
+ result=1
+ elif test -r "$file"; then
+- test -x "$file" || echo 'ldd:' $"\
+-warning: you do not have execution permission for" "\`$file'" >&2
+ RTLD=
+ ret=1
+ for rtld in ${RTLDLIST}; do
+@@ -167,28 +165,16 @@ warning: you do not have execution permission for" "\`$file'" >&2
+ fi
+ done
+ case $ret in
+- 0)
+- # If the program exits with exit code 5, it means the process has been
+- # invoked with __libc_enable_secure. Fall back to running it through
+- # the dynamic linker.
+- try_trace "$file"
+- rc=$?
+- if [ $rc = 5 ]; then
+- try_trace "$RTLD" "$file"
+- rc=$?
+- fi
+- [ $rc = 0 ] || result=1
++ 0|2)
++ try_trace "$RTLD" "$file" || result=1
+ ;;
+- 1)
++ 1|126)
+ # This can be a non-ELF binary or no binary at all.
+ nonelf "$file" || {
+ echo $" not a dynamic executable"
+ result=1
+ }
+ ;;
+- 2)
+- try_trace "$RTLD" "$file" || result=1
+- ;;
+ *)
+ echo 'ldd:' ${RTLD} $"exited with unknown exit code" "($ret)" >&2
+ exit 1
diff --git a/source/l/glibc/glibc.make-3.82.diff b/source/l/glibc/glibc.make-3.82.diff
new file mode 100644
index 000000000..56b0675b3
--- /dev/null
+++ b/source/l/glibc/glibc.make-3.82.diff
@@ -0,0 +1,28 @@
+Submitted By: Matt Burgess <matthew_at_linuxfromscratch_dot_org>
+Date: 2010-07-26
+Initial Package Version: 2.11.2
+Upstream Status: Not submitted
+Origin: Denis Onischenko
+ (http://www.mail-archive.com/help-make@gnu.org/msg08847.html)
+Description: Fixes an incompatibility with Make-3.82.
+
+diff -Naur glibc-2.11.2.orig/manual/Makefile glibc-2.11.2/manual/Makefile
+--- glibc-2.11.2.orig/manual/Makefile 2010-05-19 20:38:20.000000000 +0000
++++ glibc-2.11.2/manual/Makefile 2010-07-26 06:51:27.049899308 +0000
+@@ -232,9 +232,13 @@
+ .PHONY: stubs
+ stubs: $(objpfx)stubs
+ endif
+-$(objpfx)stubs ../po/manual.pot $(objpfx)stamp%:
+- $(make-target-directory)
+- touch $@
++$(objpfx)stubs ../po/manual.pot:
++ $(make-target-directory)
++ touch $@
++
++$(objpfx)stamp%:
++ $(make-target-directory)
++ touch $@
+
+ # Make the target directory if it doesn't exist, using the `mkinstalldirs'
+ # script that does `mkdir -p' even if `mkdir' doesn't support that flag.
diff --git a/source/l/glibc/profile.d/glibc.csh.new b/source/l/glibc/profile.d/glibc.csh.new
index adcc4060b..1f33e9663 100755
--- a/source/l/glibc/profile.d/glibc.csh.new
+++ b/source/l/glibc/profile.d/glibc.csh.new
@@ -6,4 +6,4 @@
# get away with running broken programs with this setting,
# but at a possible performance and security cost.
#
-#setenv MALLOC_CHECK_=1
+#setenv MALLOC_CHECK_ 1