summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenda Xu <heroxbd@gentoo.org>2012-05-18 17:36:48 +0900
committerBenda Xu <heroxbd@gentoo.org>2012-05-18 17:36:48 +0900
commitfb26a5c2df5e1fde31491ebeff69112712008353 (patch)
tree2f8414516404877c9df8e29df0c2b2536ab2bd5c /sys-libs
downloadandroid-fb26a5c2df5e1fde31491ebeff69112712008353.tar.gz
android-fb26a5c2df5e1fde31491ebeff69112712008353.tar.bz2
android-fb26a5c2df5e1fde31491ebeff69112712008353.zip
initial commit
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/glibc/ChangeLog1043
-rw-r--r--sys-libs/glibc/ChangeLog-20072665
-rw-r--r--sys-libs/glibc/Manifest76
-rw-r--r--sys-libs/glibc/files/2.10/glibc-2.10-gentoo-chk_fail.c315
-rw-r--r--sys-libs/glibc/files/2.10/glibc-2.10-hardened-configure-picdefault.patch30
-rw-r--r--sys-libs/glibc/files/2.10/glibc-2.10-hardened-inittls-nosysenter.patch274
-rw-r--r--sys-libs/glibc/files/2.10/glibc-2.10-hardened-ssp-compat.patch168
-rw-r--r--sys-libs/glibc/files/2.11/glibc-2.11-hardened-pie.patch40
-rw-r--r--sys-libs/glibc/files/2.12/glibc-2.12-hardened-pie.patch39
-rw-r--r--sys-libs/glibc/files/2.3.3/glibc-2.3.3-localedef-fix-trampoline.patch68
-rw-r--r--sys-libs/glibc/files/2.5/glibc-2.5-gentoo-stack_chk_fail.c311
-rw-r--r--sys-libs/glibc/files/2.5/glibc-2.5-hardened-configure-picdefault.patch29
-rw-r--r--sys-libs/glibc/files/2.5/glibc-2.5-hardened-inittls-nosysenter.patch283
-rw-r--r--sys-libs/glibc/files/2.5/glibc-2.5-hardened-pie.patch39
-rw-r--r--sys-libs/glibc/files/2.6/glibc-2.6-gentoo-stack_chk_fail.c321
-rw-r--r--sys-libs/glibc/files/2.6/glibc-2.6-hardened-inittls-nosysenter.patch273
-rw-r--r--sys-libs/glibc/files/2.7/glibc-2.7-hardened-inittls-nosysenter.patch273
-rw-r--r--sys-libs/glibc/files/eblits/common.eblit285
-rw-r--r--sys-libs/glibc/files/eblits/common.eblit~287
-rw-r--r--sys-libs/glibc/files/eblits/pkg_postinst.eblit29
-rw-r--r--sys-libs/glibc/files/eblits/pkg_preinst.eblit83
-rw-r--r--sys-libs/glibc/files/eblits/pkg_setup.eblit122
-rw-r--r--sys-libs/glibc/files/eblits/src_compile.eblit212
-rw-r--r--sys-libs/glibc/files/eblits/src_compile.eblit~208
-rw-r--r--sys-libs/glibc/files/eblits/src_install.eblit230
-rw-r--r--sys-libs/glibc/files/eblits/src_install.eblit~252
-rw-r--r--sys-libs/glibc/files/eblits/src_test.eblit42
-rw-r--r--sys-libs/glibc/files/eblits/src_unpack.eblit185
-rwxr-xr-xsys-libs/glibc/files/nscd64
-rw-r--r--sys-libs/glibc/files/nsswitch.conf24
-rw-r--r--sys-libs/glibc/glibc-2.10.1-r1.ebuild236
-rw-r--r--sys-libs/glibc/glibc-2.11.3.ebuild239
-rw-r--r--sys-libs/glibc/glibc-2.12.1-r3.ebuild253
-rw-r--r--sys-libs/glibc/glibc-2.12.2.ebuild253
-rw-r--r--sys-libs/glibc/glibc-2.13-r2.ebuild251
-rw-r--r--sys-libs/glibc/glibc-2.13-r4.ebuild251
-rw-r--r--sys-libs/glibc/glibc-2.14.1-r1.ebuild264
-rw-r--r--sys-libs/glibc/glibc-2.14.1-r2.ebuild264
-rw-r--r--sys-libs/glibc/glibc-2.14.1.ebuild259
-rw-r--r--sys-libs/glibc/glibc-2.14.ebuild259
-rw-r--r--sys-libs/glibc/glibc-2.15.ebuild250
-rw-r--r--sys-libs/glibc/glibc-2.9_p20081201-r3.ebuild226
-rw-r--r--sys-libs/glibc/glibc-9999.ebuild244
-rw-r--r--sys-libs/glibc/metadata.xml9
-rw-r--r--sys-libs/talloc/ChangeLog91
-rw-r--r--sys-libs/talloc/Manifest4
-rw-r--r--sys-libs/talloc/metadata.xml13
-rw-r--r--sys-libs/talloc/talloc-2.0.5.ebuild31
-rw-r--r--sys-libs/uclibc/Manifest3
-rw-r--r--sys-libs/uclibc/files/uclibc-0.9.33_microblaze-any-endian.patch30
-rw-r--r--sys-libs/uclibc/uclibc-0.9.33.ebuild374
51 files changed, 12074 insertions, 0 deletions
diff --git a/sys-libs/glibc/ChangeLog b/sys-libs/glibc/ChangeLog
new file mode 100644
index 0000000..c0b5bc0
--- /dev/null
+++ b/sys-libs/glibc/ChangeLog
@@ -0,0 +1,1043 @@
+# ChangeLog for sys-libs/glibc
+# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.827 2012/03/26 22:23:52 vapier Exp $
+
+ 26 Mar 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.15.ebuild:
+ Add patch from upstream for libmemusage.so on arm targets #409721 by
+ Alexander Holler.
+
+ 24 Mar 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.14.1-r2.ebuild:
+ Should build for alpha/arm/hppa now.
+
+ 23 Mar 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.14.1-r1.ebuild,
+ glibc-2.14.1-r2.ebuild, glibc-2.15.ebuild:
+ Make sure we disable the x32 patch for non-x86_64 targets too.
+
+ 23 Mar 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.15.ebuild:
+ Update hashes to match official release tarballs.
+
+ 16 Feb 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.11.3.ebuild,
+ glibc-2.12.2.ebuild, glibc-2.13-r4.ebuild, glibc-2.14.1-r2.ebuild,
+ glibc-2.15.ebuild:
+ Add patch from upstream for building s390x with older binutils #365999 by
+ Alon Bar-Lev and #403713 by Raúl Porcel.
+
+ 16 Feb 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.15.ebuild,
+ files/eblits/src_unpack.eblit:
+ Use unpacker eclass for xz tarballs.
+
+ 14 Feb 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.13-r4.ebuild:
+ Add patch from upstream glibc for hppa libm builds #401675 by Jeroen Roovers.
+
+ 27 Jan 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.15.ebuild:
+ Push out updated fix for libm crashes #399251.
+
+ 17 Jan 2012; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.9_p20081201-r3.ebuild, glibc-2.10.1-r1.ebuild, glibc-2.11.3.ebuild,
+ glibc-2.12.1-r3.ebuild, glibc-2.12.2.ebuild, glibc-2.13-r2.ebuild,
+ glibc-2.13-r4.ebuild, glibc-2.14.ebuild, glibc-2.14.1.ebuild,
+ glibc-2.14.1-r1.ebuild, glibc-2.14.1-r2.ebuild, glibc-2.15.ebuild,
+ glibc-9999.ebuild, files/eblits/src_compile.eblit:
+ Drop gettext dep (cannot think of a reason for it), and drop USE=nls since
+ the --disable-nls flag has not been in the glibc source for quite some time
+ #398981 by Maxim Kammerer.
+
+ 16 Jan 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.15.ebuild:
+ Update x32 patchset #398895 by Chris Smith.
+
+ 15 Jan 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.15.ebuild:
+ Post some fixes from upstrea/suse.
+
+ 13 Jan 2012; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit:
+ Output more FLAG variables in our ABI summary, and make sure to reset LDFLAGS
+ when building the target headers for cross-compilers #395619 by Thomas Sachau
+ and Nathan Phillip Brink.
+
+*glibc-2.15 (13 Jan 2012)
+
+ 13 Jan 2012; Mike Frysinger <vapier@gentoo.org> +glibc-2.15.ebuild,
+ glibc-9999.ebuild, files/eblits/src_unpack.eblit:
+ Version bump. Add xz tarball support so we can upload our own release
+ tarballs early without conflicting with official ones. Drop coreutils static
+ checks since latest glibc versions no longer have that bug.
+
+ 03 Jan 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.13-r2.ebuild,
+ glibc-2.13-r4.ebuild, glibc-2.14.ebuild, glibc-2.14.1.ebuild,
+ glibc-2.14.1-r1.ebuild, glibc-2.14.1-r2.ebuild:
+ Block older versions of patch so we don't have to test against them #397489
+ by Brian Harring.
+
+ 03 Jan 2012; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.9_p20081201-r3.ebuild:
+ Push out a few updated patches.
+
+ 02 Jan 2012; Andreas K. Huettel <dilfridge@gentoo.org> +ChangeLog-2007:
+ Split ChangeLog.
+
+*glibc-2.14.1-r2 (01 Jan 2012)
+
+ 01 Jan 2012; Mike Frysinger <vapier@gentoo.org> +glibc-2.14.1-r2.ebuild:
+ Workaround POSIX I/O issues #370413, and add fix for tzfile security issues
+ #393477, and a few other random fixes.
+
+ 29 Dec 2011; Mark Loeser <halcy0n@gentoo.org> glibc-2.13-r4.ebuild:
+ Stable for ppc/ppc64; bug #382377
+
+ 22 Dec 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit,
+ files/eblits/src_install.eblit:
+ Pull out the cross-compiler prefix handling into alt_prefix to simplify
+ places that need to mess with paths under it.
+
+ 14 Dec 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/pkg_setup.eblit:
+ Also filter out glibc binaries when looking for __guard #394453#5 by Michael
+ Haubenwallner.
+
+ 12 Dec 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/pkg_setup.eblit:
+ Reduce the scope of the __guard checking, and filter out more files w/ROOT
+ #394453#3 by Andrea Zuccherelli.
+
+ 12 Dec 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/pkg_setup.eblit,
+ files/eblits/src_compile.eblit, files/eblits/src_unpack.eblit:
+ Run scanelf on systems when upgrading to look for old __guard symbols #394453
+ by morlix.
+
+ 12 Dec 2011; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit, files/eblits/src_install.eblit:
+ Install all the same files with the cross-compiler so people can re-use it
+ with native installs.
+
+ 11 Dec 2011; Raúl Porcel <armin76@gentoo.org> glibc-2.13-r4.ebuild:
+ alpha/ia64/sparc stable wrt #382377
+
+ 11 Dec 2011; Pawel Hajdan jr <phajdan.jr@gentoo.org> glibc-2.13-r4.ebuild:
+ x86 stable wrt bug #382377
+
+ 09 Dec 2011; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_install.eblit:
+ Symlink /lib to the default ABI, not to a hardcoded default.
+
+ 04 Dec 2011; Markos Chandras <hwoarang@gentoo.org> glibc-2.13-r4.ebuild:
+ Stable on amd64 wrt bug #382377
+
+ 03 Dec 2011; Markus Meier <maekke@gentoo.org> glibc-2.13-r4.ebuild:
+ arm stable, bug #382377
+
+*glibc-2.14.1-r1 (29 Nov 2011)
+
+ 29 Nov 2011; Mike Frysinger <vapier@gentoo.org> +glibc-2.14.1-r1.ebuild:
+ Add patch for resolver asserts #391673, and experimental x32 support.
+
+ 24 Nov 2011; Jeroen Roovers <jer@gentoo.org> glibc-2.13-r4.ebuild:
+ Stable for HPPA (bug #382377).
+
+ 22 Nov 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.14.ebuild,
+ glibc-2.14.1.ebuild:
+ Move to official ports addon, and move into ~arch.
+
+ 19 Nov 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.12.2.ebuild:
+ Mark s390 stable to match latest ibm dev stream.
+
+ 17 Nov 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit:
+ When we filter flags, make sure we update CFLAGS_x86 to avoid endlessly
+ appending it as reported by Anush Elangovan.
+
+ 16 Nov 2011; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.9_p20081201-r3.ebuild, glibc-2.10.1-r1.ebuild, glibc-2.11.3.ebuild,
+ glibc-2.12.1-r3.ebuild, glibc-2.12.2.ebuild, glibc-2.13-r2.ebuild,
+ glibc-2.13-r4.ebuild, glibc-2.14.ebuild, glibc-2.14.1.ebuild,
+ glibc-9999.ebuild, files/eblits/common.eblit, files/eblits/pkg_preinst.eblit,
+ files/eblits/pkg_setup.eblit, files/eblits/src_install.eblit, metadata.xml:
+ Convert USE=nptlonly to USE=linuxthreads.
+
+*glibc-2.14.1 (08 Nov 2011)
+
+ 08 Nov 2011; Mike Frysinger <vapier@gentoo.org> +glibc-2.14.1.ebuild:
+ Version bump.
+
+ 11 Oct 2011; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit, files/eblits/src_install.eblit:
+ Do not force "lib" symlinks for cross-compiling setups. Follow the same code
+ paths as native builds.
+
+ 29 Sep 2011; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.9_p20081201-r3.ebuild, glibc-2.10.1-r1.ebuild, glibc-2.11.3.ebuild,
+ glibc-2.12.1-r3.ebuild, glibc-2.12.2.ebuild, glibc-2.13-r2.ebuild,
+ glibc-2.13-r4.ebuild, glibc-2.14.ebuild, glibc-9999.ebuild:
+ Drop gcc-config dep since toolchain.eclass now forces a recent one, and
+ change sandbox requirement into a blocker on older versions to make
+ installing into empty ROOTs simpler.
+
+ 19 Sep 2011; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit:
+ Disable forced --hash-style=both linker flags from configure.
+
+ 03 Sep 2011; Tomáš Chvátal <scarabeus@gentoo.org> metadata.xml:
+ Drop unused local descs.
+
+ 01 Sep 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.14.ebuild:
+ Re-export rpc logic with a patch from Fedora until we can get the tree sorted
+ out (which will probably be a ways out).
+
+*glibc-9999 (23 Aug 2011)
+
+ 23 Aug 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.14.ebuild,
+ +glibc-9999.ebuild, files/eblits/src_unpack.eblit:
+ Add support for live git builds.
+
+ 23 Aug 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.14.ebuild:
+ Add ports tarball from upstream glibc-2.14 tag.
+
+ 23 Aug 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.14.ebuild:
+ Back out ports change ... not ready for it just yet.
+
+ 23 Aug 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.14.ebuild:
+ Grab a few more fixes from upstream git/tracker.
+
+ 19 Aug 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit:
+ Make sync_fetch_and_add warnings a little more user friendly.
+
+*glibc-2.13-r4 (13 Jul 2011)
+
+ 13 Jul 2011; Mike Frysinger <vapier@gentoo.org> -glibc-2.13-r3.ebuild,
+ +glibc-2.13-r4.ebuild:
+ Add fix from upstream for other half of ldso breakage #374107 by Juergen
+ Rose.
+
+ 13 Jul 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.14.ebuild:
+ Add fix for dlclose weirdness #364077.
+
+ 08 Jul 2011; Samuli Suominen <ssuominen@gentoo.org>
+ files/eblits/src_install.eblit:
+ Convert "hasq" to "has".
+
+*glibc-2.13-r3 (05 Jul 2011)
+
+ 05 Jul 2011; Mike Frysinger <vapier@gentoo.org> +glibc-2.13-r3.ebuild:
+ Push out accumulated fixes.
+
+ 05 Jul 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.10.1-r1.ebuild:
+ Add make-3.82 patch to older version too #373837 by Raúl Porcel.
+
+ 26 Jun 2011; Raúl Porcel <armin76@gentoo.org> glibc-2.12.2.ebuild:
+ arm stable
+
+ 18 Jun 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.14.ebuild:
+ Hopefully fix crash in resolver #371617 by Daniel Kluev.
+
+ 11 Jun 2011; Raúl Porcel <armin76@gentoo.org> glibc-2.12.2.ebuild:
+ ia64/sparc stable wrt #356913
+
+ 06 Jun 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.14.ebuild:
+ Fix crash with upstream libdl until they can sort things out.
+
+*glibc-2.14 (01 Jun 2011)
+
+ 01 Jun 2011; Mike Frysinger <vapier@gentoo.org> +glibc-2.14.ebuild:
+ Version bump.
+
+ 24 May 2011; Kacper Kowalik <xarthisius@gentoo.org> glibc-2.12.2.ebuild:
+ ppc/ppc64 stable wrt #356913
+
+ 24 May 2011; Jeroen Roovers <jer@gentoo.org> glibc-2.12.2.ebuild:
+ Stable for HPPA (bug #356913).
+
+ 24 May 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.12.2.ebuild:
+ Update hppa patch #368079 by Jeroen Roovers.
+
+ 19 May 2011; Markos Chandras <hwoarang@gentoo.org> glibc-2.12.2.ebuild:
+ Stable on amd64 wrt bug #356913
+
+ 19 May 2011; Thomas Kahle <tomka@gentoo.org> glibc-2.12.2.ebuild:
+ x86 stable per bug 356913
+
+ 20 Apr 2011; Ulrich Mueller <ulm@gentoo.org> glibc-2.9_p20081201-r3.ebuild,
+ glibc-2.10.1-r1.ebuild, glibc-2.11.3.ebuild, glibc-2.12.1-r3.ebuild,
+ glibc-2.12.2.ebuild, glibc-2.13-r2.ebuild:
+ Don't PROVIDE virtual/libc, bug 359001.
+
+ 10 Apr 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.13-r2.ebuild:
+ Fix building on hppa systems (DEFAULT_STACK_PERMS).
+
+ 03 Apr 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.13-r2.ebuild:
+ Add fixes to make alpha work.
+
+ 26 Mar 2011; Tobias Klausmann <klausman@gentoo.org> glibc-2.13-r2.ebuild:
+ Looks like 2.13 might be terminally broken on alpha, removing keyword for now
+
+ 20 Mar 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit:
+ Make sure the forced CC comes from the target and not the host so
+ cross-compiling picks up the right value.
+
+ 20 Mar 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit,
+ files/eblits/pkg_setup.eblit:
+ Check for the __sync_fetch_and_add symbol directly rather than trying to mess
+ with the defines in the CPP output #199334 by Xavier Neys.
+
+ 18 Mar 2011; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_install.eblit:
+ Only generate /lib symlinks when SYMLINK_LIB is used.
+
+ 18 Mar 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit:
+ Stick the ABI flags into CC so that they are used at all steps -- compiler,
+ assemble, and link.
+
+*glibc-2.13-r2 (11 Mar 2011)
+
+ 11 Mar 2011; Mike Frysinger <vapier@gentoo.org> +glibc-2.13-r2.ebuild:
+ Update many ports, more static fixes, and work around sigaction bad code
+ #283470.
+
+ 11 Mar 2011; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit, files/eblits/src_install.eblit,
+ files/eblits/src_unpack.eblit:
+ Get header-only install working for mips systems #235551 by Joshua Kinard.
+
+ 10 Mar 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit:
+ Split out the target-specific flag munging into its own func to make the
+ common logic easier to understand, and skip it altogether for headers targets
+ since we wont have a compiler which can accept the flags in the first place.
+
+ 10 Mar 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit:
+ Handle "default" ABI for sparc64 targets without falling back to a sparc32
+ CTARGET.
+
+ 10 Mar 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit:
+ Drop old sparc64 tls test #340773 by Alex Buell.
+
+ 09 Mar 2011; Mike Frysinger <vapier@gentoo.org> -glibc-2.5-r4.ebuild,
+ glibc-2.5.1.ebuild, files/eblits/src_install-2.6.eblit,
+ files/eblits/src_install-2.11.2.eblit, files/eblits/src_install.eblit:
+ Kill off usage of prep_ml_includes since the func is going away, and glibc
+ itself takes care of multilib include paths.
+
+ 09 Mar 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit:
+ Always get multilib info via multilib_env and move the CFLAGS_abi value from
+ that explicitly into CFLAGS (rather than letting gcc-config do it magically
+ in the backend via the env). This avoids ugly issues like distcc in a cross
+ or multilib setup freaking out (#330423) as well as ccache pollution of wrong
+ ELF types (such as #79519). Further, it fixes multilib building for glibc
+ targets where the configure script detects the desired multilib based purely
+ on the compiler flags since the target is the same (e.g. mips64-xxx and n32
+ vs n64, and probably others).
+
+ 09 Mar 2011; Mike Frysinger <vapier@gentoo.org> files/eblits/pkg_setup.eblit:
+ Do not bail out of sanity compile tests when building from a binary package
+ #324685 by Diego Elio Pettenò.
+
+ 07 Mar 2011; Raúl Porcel <armin76@gentoo.org> glibc-2.11.3.ebuild:
+ alpha/arm/ia64/sh/sparc stable wrt #350744
+
+ 04 Mar 2011; Markos Chandras <hwoarang@gentoo.org> glibc-2.11.3.ebuild:
+ Stable on amd64 wrt bug #350744
+
+ 03 Mar 2011; Jeroen Roovers <jer@gentoo.org> glibc-2.11.3.ebuild:
+ Stable for HPPA (bug #350744).
+
+ 02 Mar 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.11.3.ebuild,
+ glibc-2.12.2.ebuild:
+ Update by Jeroen Roovers for hppa patch fail #357005.
+
+ 01 Mar 2011; Thomas Kahle <tomka@gentoo.org> glibc-2.11.3.ebuild:
+ x86 stable per bug 350744
+
+ 01 Mar 2011; Kacper Kowalik <xarthisius@gentoo.org> glibc-2.11.3.ebuild:
+ ppc/ppc64 stable wrt #350744
+
+ 22 Feb 2011; Mike Frysinger <vapier@gentoo.org> glibc-2.2.5-r10.ebuild,
+ glibc-2.5-r4.ebuild, glibc-2.5.1.ebuild, files/eblits/src_install-2.6.eblit,
+ files/eblits/src_install-2.11.2.eblit, files/eblits/src_install.eblit:
+ Drop libbsd.a symlink #355899 by Kevin McCarthy.
+
+*glibc-2.13-r1 (14 Feb 2011)
+
+ 14 Feb 2011; Mike Frysinger <vapier@gentoo.org> +glibc-2.13-r1.ebuild:
+ Fix from upstream for ldso prelink segfaults #353814 and fix static linking
+ with fortify symbols #353816 by Harris Landgarten.
+
+ 07 Feb 2011; Samuli Suominen <ssuominen@gentoo.org> glibc-2.13.ebuild:
+ Abort if sys-devel/prelink is installed wrt #353814.
+
+ 07 Feb 2011; Joshua Kinard <kumba@gentoo.org> glibc-2.5-r4.ebuild,
+ glibc-2.5.1.ebuild:
+ Removed mips-headers references.
+
+ 06 Feb 2011; Mart Raudsepp <leio@gentoo.org> glibc-2.5-r4.ebuild:
+ Drop to ~mips
+
+ 06 Feb 2011; Magnus Granberg <zorry@gentoo.org> glibc-2.13.ebuild:
+ We do not longer support old SSP for GCC 3.X and patch fail #353811
+
+*glibc-2.13 (05 Feb 2011)
+
+ 05 Feb 2011; Mike Frysinger <vapier@gentoo.org> +glibc-2.13.ebuild:
+ Version bump.
+
+*glibc-2.12.2 (09 Jan 2011)
+
+ 09 Jan 2011; Mike Frysinger <vapier@gentoo.org> +glibc-2.12.2.ebuild:
+ Version bump.
+
+*glibc-2.11.3 (08 Jan 2011)
+
+ 08 Jan 2011; Mike Frysinger <vapier@gentoo.org> +glibc-2.11.3.ebuild:
+ Version bump.
+
+ 14 Dec 2010; Matt Turner <mattst88@gentoo.org> glibc-2.12.1-r3.ebuild:
+ Add ~mips
+
+ 18 Nov 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.12.1-r3.ebuild:
+ Add ports tarball #345811 by Matt Turner.
+
+ 09 Nov 2010; Raúl Porcel <armin76@gentoo.org> glibc-2.11.2-r3.ebuild:
+ ia64/sh/sparc stable wrt #341755
+
+ 03 Nov 2010; Markus Meier <maekke@gentoo.org> glibc-2.11.2-r3.ebuild:
+ arm stable, bug #341755
+
+ 01 Nov 2010; Jeroen Roovers <jer@gentoo.org> glibc-2.11.2-r3.ebuild:
+ Stable for HPPA PPC (bug #341755).
+
+ 01 Nov 2010; Mark Loeser <halcy0n@gentoo.org> glibc-2.11.2-r3.ebuild:
+ Mark stable for ppc64; bug #341755
+
+ 01 Nov 2010; Christian Faulhammer <fauli@gentoo.org>
+ glibc-2.11.2-r3.ebuild:
+ stable x86, security bug 341755
+
+ 01 Nov 2010; Tobias Klausmann <klausman@gentoo.org>
+ glibc-2.11.2-r3.ebuild:
+ Stable on alpha, bug #341755
+
+ 31 Oct 2010; Markos Chandras <hwoarang@gentoo.org> glibc-2.11.2-r3.ebuild:
+ Stable on amd64 wrt bug #341755
+
+*glibc-2.12.1-r3 (31 Oct 2010)
+*glibc-2.11.2-r3 (31 Oct 2010)
+
+ 31 Oct 2010; Diego E. Pettenò <flameeyes@gentoo.org>
+ +glibc-2.11.2-r3.ebuild, +glibc-2.12.1-r3.ebuild:
+ Bump glibc version to fully cover the recent security issues.
+
+ 30 Oct 2010; Markus Meier <maekke@gentoo.org> glibc-2.11.2-r2.ebuild:
+ x86 stable, bug #341755
+
+ 29 Oct 2010; Jeroen Roovers <jer@gentoo.org> glibc-2.11.2-r2.ebuild:
+ Stable for PPC (bug #341755).
+
+ 29 Oct 2010; Mark Loeser <halcy0n@gentoo.org> glibc-2.11.2-r2.ebuild:
+ Mark stable for ppc64; bug #341755
+
+ 28 Oct 2010; Markos Chandras <hwoarang@gentoo.org> glibc-2.11.2-r2.ebuild:
+ Stable on amd64 wrt bug #341755
+
+ 28 Oct 2010; Jeroen Roovers <jer@gentoo.org> glibc-2.11.2-r2.ebuild:
+ Stable for HPPA (bug #341755).
+
+*glibc-2.12.1-r2 (26 Oct 2010)
+*glibc-2.11.2-r2 (26 Oct 2010)
+
+ 26 Oct 2010; Mike Frysinger <vapier@gentoo.org> +glibc-2.11.2-r2.ebuild,
+ +glibc-2.12.1-r2.ebuild:
+ Add fix from upstream for LD_AUDIT + set*id vuln #341755.
+
+ 25 Oct 2010; Jeroen Roovers <jer@gentoo.org> glibc-2.11.2-r1.ebuild:
+ Stable for HPPA (bug #318503).
+
+ 18 Oct 2010; Jeroen Roovers <jer@gentoo.org> glibc-2.11.2.ebuild:
+ Mask buggy version for HPPA.
+
+*glibc-2.11.2-r1 (13 Oct 2010)
+
+ 13 Oct 2010; Mike Frysinger <vapier@gentoo.org> +glibc-2.11.2-r1.ebuild:
+ Fix from upstream for locale problems #330923, bunches of random
+ alpha/arm/hppa/sparc fixes, and fix building with make-3.82 #331995.
+
+ 13 Oct 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.12.1-r1.ebuild:
+ Add back sparc #336792 by Sergei Trofimovich and fix building with
+ make-3.82 #331995.
+
+ 08 Oct 2010; Diego E. Pettenò <flameeyes@gentoo.org>
+ files/eblits/pkg_preinst.eblit:
+ QA: avoid using $D when testing the just-built loader, as it might cause
+ trouble when it contains colon characters; the fix is trivial.
+
+ 30 Sep 2010; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit,
+ files/eblits/src_compile.eblit:
+ Take care of checking binutils gnu indirect support ourselves for now
+ #336792 by Sergei Trofimovich.
+
+ 24 Sep 2010; Raúl Porcel <armin76@gentoo.org> glibc-2.12.1-r1.ebuild:
+ Mark -sparc since it fails to build, bug #336792
+
+ 18 Sep 2010; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit:
+ Force another powerpc assembler check when cross-compiling headers-only
+ #336918 by Wouter Vanwalleghem.
+
+ 12 Sep 2010; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit:
+ Drop useless eselect-compiler logic and notify the world of our explicit CC
+ setup.
+
+ 24 Aug 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.12.1-r1.ebuild:
+ Fix gnu indirect checks with older binutils #333541 by biohazrd.
+
+*glibc-2.12.1-r1 (19 Aug 2010)
+
+ 19 Aug 2010; Mike Frysinger <vapier@gentoo.org> +glibc-2.12.1-r1.ebuild:
+ Fix static linking issues #332927 and locale quoting issues #330923 by Harald
+ van Dijk.
+
+ 17 Aug 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.11.2.ebuild:
+ Add ~mips per #297452.
+
+ 15 Aug 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.12.1.ebuild:
+ Move into unstable.
+
+ 13 Aug 2010; Joseph Jezak <josejx@gentoo.org> glibc-2.11.2.ebuild:
+ Marked ppc stable for bug #318503.
+
+ 11 Aug 2010; Magnus Granberg <zorry@gentoo.org> glibc-2.12.1.ebuild,
+ +files/2.12/glibc-2.12-hardened-pie.patch:
+ Fix bug #332331 pie patch fail to applay.
+
+ 10 Aug 2010; Mike Frysinger <vapier@gentoo.org>
+ +files/eblits/src_compile-2.11.2.eblit,
+ +files/eblits/src_install-2.11.2.eblit, +files/eblits/src_test-2.11.2.eblit,
+ files/eblits/src_compile.eblit, files/eblits/src_install.eblit,
+ files/eblits/src_test.eblit:
+ Fork eblits for stable glibc, and convert unstable to `emake`.
+
+ 09 Aug 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.11.2.ebuild,
+ glibc-2.12.1.ebuild:
+ Tweak sys-libs/timezone-data dependency based on USE=vanilla #331775 by
+ Alonso Schaich.
+
+*glibc-2.12.1 (05 Aug 2010)
+
+ 05 Aug 2010; Mike Frysinger <vapier@gentoo.org> +glibc-2.12.1.ebuild:
+ Version bump.
+
+ 30 Jul 2010; Jeroen Roovers <jer@gentoo.org> glibc-2.11.2.ebuild:
+ Marked ~hppa (bug #297452).
+
+ 26 Jul 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.11.2.ebuild:
+ Add patch for building nptl with hppa targets #301642.
+
+ 18 Jul 2010; Samuli Suominen <ssuominen@gentoo.org> glibc-2.11.2.ebuild:
+ ppc64 stable wrt #318503
+
+ 18 Jul 2010; Raúl Porcel <armin76@gentoo.org> glibc-2.11.2.ebuild:
+ sh/sparc stable wrt #318503
+
+ 11 Jul 2010; Markus Meier <maekke@gentoo.org> glibc-2.11.2.ebuild:
+ arm stable, bug #318503
+
+ 11 Jul 2010; Tobias Klausmann <klausman@gentoo.org> glibc-2.11.2.ebuild:
+ Stable on alpha, bug #318503
+
+ 29 Jun 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.11.2.ebuild:
+ Update alpha cloexec header #307651 by Matt Turner.
+
+ 27 Jun 2010; Christian Faulhammer <fauli@gentoo.org> glibc-2.11.2.ebuild:
+ stable x86, bug 318503
+
+ 26 Jun 2010; Christoph Mende <angelos@gentoo.org> glibc-2.11.2.ebuild:
+ Stable on amd64 wrt bug #318503
+
+ 25 Jun 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.11.1.ebuild,
+ glibc-2.11.2.ebuild:
+ Force gcc-4.3+ on all amd64 users.
+
+ 25 Jun 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.11.1.ebuild,
+ glibc-2.11.2.ebuild:
+ Mark ia64 stable #318503.
+
+ 24 Jun 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org> glibc-2.11.1.ebuild:
+ x86 stable wrt bug #318503
+
+ 20 Jun 2010; Samuli Suominen <ssuominen@gentoo.org> glibc-2.11.1.ebuild:
+ amd64 stable wrt #318503
+
+ 16 Jun 2010; Magnus Granberg <zorry@gentoo.org> files/eblits/common.eblit:
+ bug #293721 to support >=gcc 4.2 SSP support
+
+ 12 Jun 2010; Joshua Kinard <kumba@gentoo.org> glibc-2.11-r1.ebuild:
+ ~mipsify glibc-2.11-r1. Runs OK on O2 so far...
+
+*glibc-2.11.2 (08 Jun 2010)
+
+ 08 Jun 2010; Mike Frysinger <vapier@gentoo.org> +glibc-2.11.2.ebuild:
+ Version bump.
+
+ 08 Jun 2010; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_unpack.eblit:
+ Tweak src_unpack a bit more to handle snaps again #323009 by Maksim
+ Melnikau.
+
+ 20 May 2010; Samuli Suominen <ssuominen@gentoo.org> glibc-2.5-r4.ebuild,
+ glibc-2.5.1.ebuild, glibc-2.6.1.ebuild, glibc-2.7-r2.ebuild,
+ glibc-2.8_p20080602-r1.ebuild, glibc-2.9_p20081201-r2.ebuild,
+ glibc-2.9_p20081201-r3.ebuild, glibc-2.10.1-r1.ebuild,
+ glibc-2.11-r1.ebuild, glibc-2.11.1.ebuild:
+ Change >=sys-apps/portage-2.1.2 DEPEND to !<sys-apps/portage-2.1.2 wrt
+ #257671.
+
+ 25 Apr 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.10.1-r1.ebuild:
+ Stabilize for s390.
+
+*glibc-2.11.1 (25 Apr 2010)
+
+ 25 Apr 2010; Mike Frysinger <vapier@gentoo.org> +glibc-2.11.1.ebuild,
+ files/eblits/src_unpack.eblit:
+ Version bump #315477.
+
+ 19 Apr 2010; Raúl Porcel <armin76@gentoo.org> glibc-2.10.1-r1.ebuild:
+ sh stable
+
+ 15 Feb 2010; Raúl Porcel <armin76@gentoo.org>
+ glibc-2.9_p20081201-r2.ebuild:
+ s390/sh stable
+
+ 22 Jan 2010; Tom Gall <tgall@gentoo.org> glibc-2.10.1-r1.ebuild:
+ stable on ppc64, bug #289342
+
+ 21 Jan 2010; Raúl Porcel <armin76@gentoo.org> glibc-2.10.1-r1.ebuild:
+ sparc stable wrt #289342
+
+ 20 Jan 2010; Markus Meier <maekke@gentoo.org> glibc-2.10.1-r1.ebuild:
+ arm stable, bug #289342
+
+ 19 Jan 2010; nixnut <nixnut@gentoo.org> glibc-2.10.1-r1.ebuild:
+ ppc stable #289342
+
+ 18 Jan 2010; Tobias Klausmann <klausman@gentoo.org>
+ glibc-2.10.1-r1.ebuild:
+ Stable on alpha, bug #289342
+
+ 15 Jan 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.10.1-r1.ebuild:
+ Add ppc64 love #291287.
+
+ 15 Jan 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.10.1-r1.ebuild:
+ Mark ia64 stable #289342.
+
+ 14 Jan 2010; Jeroen Roovers <jer@gentoo.org> glibc-2.10.1-r1.ebuild:
+ Stable for HPPA (bug #289342).
+
+ 10 Jan 2010; Christian Faulhammer <fauli@gentoo.org>
+ glibc-2.10.1-r1.ebuild:
+ x86 stable, bug 289342
+
+ 10 Jan 2010; Samuli Suominen <ssuominen@gentoo.org>
+ glibc-2.10.1-r1.ebuild:
+ amd64 stable wrt #289342
+
+ 05 Jan 2010; Mike Frysinger <vapier@gentoo.org> glibc-2.11-r1.ebuild:
+ Add ppc/ppc64 love #297452.
+
+ 19 Dec 2009; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/pkg_preinst.eblit, files/eblits/src_install.eblit:
+ Start pointing ldconfig files to ld.so.conf.d.
+
+ 10 Dec 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.3.5-r3.ebuild,
+ glibc-2.3.6-r4.ebuild, glibc-2.3.6-r5.ebuild, glibc-2.4-r4.ebuild,
+ glibc-2.5-r2.ebuild, glibc-2.5-r3.ebuild, glibc-2.5-r4.ebuild,
+ glibc-2.5.1.ebuild, glibc-2.6.ebuild, glibc-2.6.1.ebuild,
+ glibc-2.7-r2.ebuild, glibc-2.8_p20080602.ebuild,
+ glibc-2.8_p20080602-r1.ebuild, glibc-2.9_p20081201.ebuild,
+ glibc-2.9_p20081201-r1.ebuild, glibc-2.9_p20081201-r2.ebuild,
+ glibc-2.9_p20081201-r3.ebuild, glibc-2.10.1.ebuild,
+ glibc-2.10.1-r1.ebuild, glibc-2.11.ebuild, glibc-2.11-r1.ebuild:
+ Dont require cross-gcc when installing glibc-headers-only.
+
+ 03 Dec 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.11-r1.ebuild:
+ Add alpha/arm/sh love.
+
+ 03 Dec 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.11-r1.ebuild:
+ Update patchset to fix building on alpha.
+
+*glibc-2.11-r1 (02 Dec 2009)
+
+ 02 Dec 2009; Mike Frysinger <vapier@gentoo.org> +glibc-2.11-r1.ebuild:
+ Push out some fixes and add the ports tarball.
+
+ 01 Dec 2009; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit:
+ Switch to common tc-has-tls function.
+
+*glibc-2.10.1-r1 (21 Nov 2009)
+
+ 21 Nov 2009; Mike Frysinger <vapier@gentoo.org> +glibc-2.10.1-r1.ebuild:
+ Add a bunch of fixes from upstream for stabilization #289342.
+
+ 19 Nov 2009; Jeroen Roovers <jer@gentoo.org> glibc-2.10.1.ebuild:
+ Marked ~hppa (bug #291287).
+
+ 18 Nov 2009; Raúl Porcel <armin76@gentoo.org> glibc-2.10.1.ebuild:
+ Add ~arm wrt #291287
+
+ 10 Nov 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.10.1.ebuild,
+ glibc-2.11.ebuild:
+ Fix building on x86 with older linux headers missing __NR_fallocate
+ #274269 by Mikael Magnusson.
+
+ 10 Nov 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.10.1.ebuild:
+ Add sparc lovin #289615.
+
+ 09 Nov 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.11.ebuild,
+ +files/2.11/glibc-2.11-hardened-pie.patch:
+ Update hardened-pie patch by Magnus Granberg #292139.
+
+ 09 Nov 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.11.ebuild:
+ Pull in newer gcc for multilib on amd64 #292174.
+
+ 08 Nov 2009; Mounir Lamouri <volkmar@gentoo.org> glibc-2.10.1.ebuild:
+ Keywording for ppc, bug 291287
+
+ 06 Nov 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.11.ebuild:
+ Add patch for ia64 build failure #292059 by Dennis Schridde. Force newer
+ binutils on x86_64 #292056 by DaggyStyle. Forcer newer gcc on x86 #292174
+ by Andreas Proteus.
+
+ 06 Nov 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.11.ebuild:
+ Add sparc lovin #291287.
+
+ 06 Nov 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.10.1.ebuild:
+ Add alpha lovin #291287.
+
+*glibc-2.11 (06 Nov 2009)
+
+ 06 Nov 2009; Mike Frysinger <vapier@gentoo.org> +glibc-2.11.ebuild:
+ Version bump.
+
+ 05 Nov 2009; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.9_p20081201-r3.ebuild:
+ Add binutils-2.20 detection patch to glibc-2.9.
+
+ 30 Oct 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.10.1.ebuild:
+ Import a bunch of alpha patches #289642 by Matt Turner.
+
+ 19 Oct 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.10.1.ebuild:
+ Mark s390 stable.
+
+ 20 Sep 2009; Jory A. Pratt <anarchy@gentoo.org> glibc-2.10.1.ebuild,
+ +files/2.10/glibc-2.10-gentoo-chk_fail.c:
+ rename broken glibc-2.6-gentoo_chk_fail.c to glibc-2.10-gentoo_chk_fail.c
+ and update ebuild.
+
+ 20 Sep 2009; Jory A. Pratt <anarchy@gentoo.org> glibc-2.10.1.ebuild,
+ +files/2.10/glibc-2.10-hardened-configure-picdefault.patch,
+ +files/2.10/glibc-2.10-hardened-inittls-nosysenter.patch,
+ +files/2.10/glibc-2.10-hardened-ssp-compat.patch:
+ add updated hardened patches bug #270274, please leave mask in place for
+ hardened profile.
+
+ 18 Sep 2009; Diego E. Pettenò <flameeyes@gentoo.org> glibc-2.10.1.ebuild,
+ files/eblits/src_install.eblit:
+ Bump patcheset; add patch for bug #284393 (compatibility with binutils
+ 2.20 betas), and make nscd init script not use 'strings' at runtime (bug
+ #285308).
+
+ 13 Sep 2009; Markus Meier <maekke@gentoo.org>
+ glibc-2.9_p20081201-r2.ebuild:
+ arm stable, bug #270243
+
+ 07 Sep 2009; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.9_p20081201-r3.ebuild, glibc-2.10.1.ebuild:
+ Block sys-kernel/ps3-sources as it has custom patches which breaks glibc
+ #271367 by Jean-Francis Roy.
+
+ 07 Sep 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.10.1.ebuild:
+ Include glibc ports addon again #283239 by Raúl Porcel.
+
+ 04 Sep 2009; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit:
+ Force more compiler/assembler tests to true for cross headers.
+
+ 04 Sep 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.10.1.ebuild:
+ Add ~ia64 love.
+
+ 30 Aug 2009; Tobias Klausmann <klausman@gentoo.org>
+ glibc-2.9_p20081201-r3.ebuild:
+ Stable on alpha, bug #283188
+
+*glibc-2.9_p20081201-r3 (28 Aug 2009)
+
+ 28 Aug 2009; Mark Loeser <halcy0n@gentoo.org>
+ +glibc-2.9_p20081201-r3.ebuild:
+ Bump for patchset with gcc-4.4 fix and alpha fixes
+
+ 29 Aug 2009; Raúl Porcel <armin76@gentoo.org>
+ glibc-2.9_p20081201-r2.ebuild:
+ ia64/sparc stable wrt #270243
+
+ 27 Aug 2009; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit:
+ Force all linker tests to true for cross headers #282442 by Jack Byer.
+
+ 21 Aug 2009; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/pkg_setup.eblit:
+ Add check for broken syscall() on x86 #279260 by Andrew Gaffney.
+
+ 19 Jul 2009; nixnut <nixnut@gentoo.org> glibc-2.9_p20081201-r2.ebuild:
+ ppc stable #270243
+
+ 04 Jul 2009; Brent Baude <ranger@gentoo.org>
+ glibc-2.9_p20081201-r2.ebuild:
+ Marking glibc-2.9_p20081201-r2 ppc64 for bug 270243
+
+ 28 Jun 2009; Markus Meier <maekke@gentoo.org>
+ glibc-2.9_p20081201-r2.ebuild:
+ amd64 stable, bug #270243
+
+ 28 Jun 2009; Tobias Klausmann <klausman@gentoo.org>
+ glibc-2.9_p20081201-r2.ebuild:
+ Stable on alpha, bug #270243
+
+ 26 Jun 2009; Christian Faulhammer <fauli@gentoo.org>
+ glibc-2.9_p20081201-r2.ebuild:
+ stable x86, bug 270243
+
+ 15 Jun 2009; Jeroen Roovers <jer@gentoo.org>
+ glibc-2.9_p20081201-r2.ebuild:
+ Stable for HPPA (bug #270243).
+
+*glibc-2.10.1 (18 May 2009)
+
+ 18 May 2009; Mike Frysinger <vapier@gentoo.org> +glibc-2.10.1.ebuild:
+ Version bump.
+
+ 17 May 2009; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_unpack.eblit:
+ Improve check_nptl_support output to include more info to help people
+ figure out their own mistakes.
+
+ 02 May 2009; Mark Loeser <halcy0n@gentoo.org>
+ files/eblits/src_compile.eblit:
+ Disable selinux on crosscompile; bug #186780
+
+ 13 Apr 2009; Jeroen Roovers <jer@gentoo.org>
+ glibc-2.8_p20080602-r1.ebuild:
+ Stable for HPPA (bug #247553).
+
+ 01 Apr 2009; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.8_p20080602-r1.ebuild, glibc-2.9_p20081201-r2.ebuild:
+ Disable ldconfig execution to avoid sandbox violations on ld.so.cache.
+
+ 23 Mar 2009; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/pkg_setup.eblit:
+ Tweak xen warning a bit #263434 by Jeremy Olexa.
+
+ 20 Mar 2009; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.8_p20080602-r1.ebuild:
+ Mark arm/sh stable.
+
+ 19 Mar 2009; Guy Martin <gmsoft@gentoo.org> glibc-2.8_p20080602-r1.ebuild:
+ Added ~hppa to KEYWORDS
+
+ 19 Mar 2009; Brent Baude <ranger@gentoo.org>
+ glibc-2.8_p20080602-r1.ebuild:
+ Marking glibc-2.8_p20080602-r1 ppc for bug 247553
+
+ 19 Mar 2009; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/pkg_setup.eblit, glibc-2.7-r2.ebuild,
+ glibc-2.8_p20080602.ebuild, glibc-2.8_p20080602-r1.ebuild,
+ glibc-2.9_p20081201.ebuild, glibc-2.9_p20081201-r1.ebuild:
+ Abort install if people have a broken kernel running #262698.
+
+ 08 Mar 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.7-r2.ebuild,
+ glibc-2.8_p20080602.ebuild, glibc-2.8_p20080602-r1.ebuild,
+ glibc-2.9_p20081201.ebuild, glibc-2.9_p20081201-r1.ebuild,
+ glibc-2.9_p20081201-r2.ebuild:
+ Drop extraneous glibc-compat20 #198657.
+
+ 07 Mar 2009; Markus Meier <maekke@gentoo.org>
+ glibc-2.8_p20080602-r1.ebuild:
+ x86 stable, bug #247553
+
+ 07 Mar 2009; Raúl Porcel <armin76@gentoo.org>
+ glibc-2.8_p20080602-r1.ebuild:
+ ia64/sparc stable wrt #247553
+
+ 01 Mar 2009; Mike Frysinger <vapier@gentoo.org>
+ +files/eblits/pkg_postinst.eblit, +files/eblits/pkg_preinst.eblit,
+ +files/eblits/pkg_setup.eblit, glibc-2.9_p20081201-r2.ebuild:
+ Add support for pkg_* funcs with eblits.
+
+ 24 Feb 2009; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.9_p20081201-r2.ebuild:
+ Add ~mips to KEYWORDS
+
+ 21 Feb 2009; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.9_p20081201-r2.ebuild:
+ Add fix from upstream for building with newer binutils #258072.
+
+ 19 Feb 2009; Tom Gall <tgall@gentoo.org> glibc-2.8_p20080602-r1.ebuild:
+ stable on ppc64, bug #247553
+
+ 18 Feb 2009; Tobias Klausmann <klausman@gentoo.org>
+ glibc-2.8_p20080602-r1.ebuild:
+ Stable on alpha, bug #247553
+
+*glibc-2.9_p20081201-r2 (16 Feb 2009)
+
+ 16 Feb 2009; Mike Frysinger <vapier@gentoo.org>
+ +glibc-2.9_p20081201-r2.ebuild:
+ Add tweak for resolver issues #250468, a bunch of upstream fixes, a bunch
+ of SuperH fixes, and drop the deepbind patch #252302.
+
+ 13 Feb 2009; Jeremy Olexa <darkside@gentoo.org>
+ glibc-2.8_p20080602-r1.ebuild:
+ amd64 stable, bug 247553
+
+ 28 Jan 2009; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit:
+ Build glibc with -U_FORTIFY_SOURCE.
+
+ 26 Jan 2009; Mike Frysinger <vapier@gentoo.org> glibc-2.3.2-r12.ebuild,
+ glibc-2.3.5-r3.ebuild:
+ Drop USE=pic usage.
+
+ 14 Jan 2009; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.8_p20080602-r1.ebuild:
+ Mark s390 stable.
+
+ 31 Dec 2008; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.9_p20081201-r1.ebuild:
+ Disable nss deepbind patch until we get it sorted out #252302.
+
+ 29 Dec 2008; Mike Frysinger <vapier@gentoo.org> glibc-2.7-r2.ebuild,
+ glibc-2.8_p20080602.ebuild, glibc-2.8_p20080602-r1.ebuild,
+ glibc-2.9_p20081201.ebuild, glibc-2.9_p20081201-r1.ebuild:
+ Force LC_ALL=C until the iconvdata patch hits #252802 by Harald van Dijk.
+
+ 29 Dec 2008; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit,
+ files/eblits/src_install.eblit:
+ Stop removing locale vars from environment #252802 by Harald van Dijk.
+
+*glibc-2.9_p20081201-r1 (27 Dec 2008)
+
+ 27 Dec 2008; Mike Frysinger <vapier@gentoo.org>
+ +glibc-2.9_p20081201-r1.ebuild:
+ Fix popen() issues and get more arches usable.
+
+ 24 Dec 2008; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.8_p20080602-r1.ebuild:
+ Add s390 utmp compat patch.
+
+ 23 Dec 2008; Friedrich Oslage <bluebird@gentoo.org>
+ files/eblits/common.eblit:
+ Add support to optimize for UltraSPARC T1 and T2 cpus
+
+*glibc-2.9_p20081201 (08 Dec 2008)
+
+ 08 Dec 2008; Mike Frysinger <vapier@gentoo.org>
+ +glibc-2.9_p20081201.ebuild:
+ Version bump #237236.
+
+ 08 Dec 2008; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_unpack.eblit:
+ Force timestamp update of C-translit.h so we dont regen it all the time
+ #185476 #218003.
+
+*glibc-2.8_p20080602-r1 (08 Dec 2008)
+
+ 08 Dec 2008; Mike Frysinger <vapier@gentoo.org>
+ +glibc-2.8_p20080602-r1.ebuild:
+ Import a bunch of random fixes from upstream, some of which cover #236770
+ #237179 #245914.
+
+ 29 Nov 2008; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit:
+ Force compiler tests when building only headers #229391.
+
+ 27 Oct 2008; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.8_p20080602.ebuild:
+ Fix building for arm.
+
+ 05 Sep 2008; Mike Frysinger <vapier@gentoo.org> glibc-2.3.5-r3.ebuild,
+ glibc-2.3.6-r4.ebuild, glibc-2.3.6-r5.ebuild, glibc-2.4-r4.ebuild,
+ glibc-2.5-r2.ebuild, glibc-2.5-r3.ebuild, glibc-2.5-r4.ebuild,
+ glibc-2.5.1.ebuild, glibc-2.6.ebuild, glibc-2.6.1.ebuild,
+ glibc-2.7-r2.ebuild, glibc-2.8_p20080602.ebuild:
+ Drop app-admin/eselect-compiler dependency to make Mr_Bones_ happy.
+
+ 23 Aug 2008; Doug Goldstein <cardoe@gentoo.org> metadata.xml:
+ add GLEP 56 USE flag desc from use.local.desc
+
+ 23 Jun 2008; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit:
+ Check to see if ports is in $S rather than $PWD #229107.
+
+ 23 Jun 2008; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit, files/eblits/src_install.eblit,
+ files/eblits/src_install-2.6.eblit, glibc-2.6.1.ebuild,
+ glibc-2.7-r2.ebuild, glibc-2.8_p20080602.ebuild:
+ Short circuit header building in pkg testing and ABI recursion.
+
+ 23 Jun 2008; Mike Frysinger <vapier@gentoo.org> glibc-2.6.1.ebuild,
+ glibc-2.7-r2.ebuild, glibc-2.8_p20080602.ebuild:
+ Add workaround for still broken #133327 / #228907.
+
+ 22 Jun 2008; Friedrich Oslage <bluebird@gentoo.org>
+ glibc-2.8_p20080602.ebuild:
+ Add ~sparc keyword
+
+ 22 Jun 2008; Friedrich Oslage <bluebird@gentoo.org>
+ files/eblits/common.eblit:
+ add support for 32bit userland with multilib on sparc
+
+ 22 Jun 2008; Mike Frysinger <vapier@gentoo.org> glibc-2.6.1.ebuild,
+ glibc-2.7-r2.ebuild, glibc-2.8_p20080602.ebuild:
+ Change to / before running tests in case $PWD is weird #228809 by Kai
+ Krakow.
+
+ 21 Jun 2008; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.8_p20080602.ebuild:
+ Add ~alpha and ~ia64 love.
+
+ 17 Jun 2008; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.8_p20080602.ebuild:
+ Fix building for alpha #227275.
+
+ 11 Jun 2008; Mike Frysinger <vapier@gentoo.org> glibc-2.6.1.ebuild,
+ glibc-2.7-r2.ebuild:
+ Declare LIBIDN_VER #225831 by Gerard Neil.
+
+*glibc-2.8_p20080602 (08 Jun 2008)
+
+ 08 Jun 2008; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_unpack.eblit, +glibc-2.8_p20080602.ebuild:
+ Version bump #225175 by Arfrever Frehtes Taifersar Arahesis.
+
+ 12 May 2008; Markus Rothe <corsair@gentoo.org> glibc-2.7-r2.ebuild:
+ Stable on ppc64
+
+ 27 Mar 2008; Jeroen Roovers <jer@gentoo.org> glibc-2.7-r2.ebuild:
+ Stable for HPPA.
+
+ 24 Mar 2008; Mike Frysinger <vapier@gentoo.org>
+ +files/eblits/src_install-2.6.eblit, -files/eblits/src_install-2.7.eblit,
+ glibc-2.6.1.ebuild, glibc-2.7.ebuild, glibc-2.7-r1.ebuild:
+ Reversion things so old is old #191088.
+
+*glibc-2.7-r2 (23 Mar 2008)
+
+ 23 Mar 2008; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_install.eblit, files/eblits/src_test.eblit,
+ +glibc-2.7-r2.ebuild:
+ No need to generate multilib headers anymore with latest glibc #191088. Grab
+ some queue.h updates from FreeBSD #201979. Disable (for now) CFI stuff on
+ x86_64/x86 to workaround a bug in gcc #202055. Fix from upstream for
+ building with newer binutils #209629. Fix pthread_join on hppa #213829. Make
+ sure to force latest kernel headers on hppa and increase testing timeout
+ #214003.
+
+ 10 Mar 2008; Mike Frysinger <vapier@gentoo.org> glibc-2.6.1.ebuild,
+ glibc-2.7.ebuild, glibc-2.7-r1.ebuild:
+ Only check for downgrades on the native glibc version ... let people screw
+ up any other system #212912.
+
+ 16 Jan 2008; Mike Frysinger <vapier@gentoo.org> glibc-2.7-r1.ebuild:
+ Add some ~sparc love.
+
+ For previous entries, please see ChangeLog-2007.
diff --git a/sys-libs/glibc/ChangeLog-2007 b/sys-libs/glibc/ChangeLog-2007
new file mode 100644
index 0000000..cef1e18
--- /dev/null
+++ b/sys-libs/glibc/ChangeLog-2007
@@ -0,0 +1,2665 @@
+# ChangeLog for sys-libs/glibc
+# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog-2007,v 1.1 2012/01/02 16:02:57 dilfridge Exp $
+
+ 31 Dec 2007; Jeroen Roovers <jer@gentoo.org> glibc-2.7-r1.ebuild:
+ Stable for HPPA.
+
+ 29 Dec 2007; Mike Frysinger <vapier@gentoo.org> glibc-2.7-r1.ebuild:
+ Add patches to fix hppa.
+
+ 24 Dec 2007; Mike Frysinger <vapier@gentoo.org> glibc-2.7-r1.ebuild:
+ Fix building with BSD awk by using a POSIX regex #202511 by Alexis Ballier.
+
+ 11 Dec 2007; Mike Frysinger <vapier@gentoo.org> glibc-2.7-r1.ebuild:
+ Add patch to fix building on alpha #201910 by Jose Luis Rivero.
+
+ 10 Dec 2007; Jeroen Roovers <jer@gentoo.org> glibc-2.7-r1.ebuild:
+ Marked ~hppa too.
+
+*glibc-2.7-r1 (10 Dec 2007)
+
+ 10 Dec 2007; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_install.eblit, +glibc-2.7-r1.ebuild:
+ Add fixes for #196926 (build failure with USE=glibc-omitfp), #201646 (double
+ free on sscanf("", "%as")), #199479 (build failure for i586-* targets due to
+ duplicate _chk defs), #198949 (static link failure when using
+ pthread_cond_timedwait), #196933 (build failure on hppa), and #196031 (gdb
+ debugging errors with pthreads).
+
+ 18 Nov 2007; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_compile.eblit, glibc-2.6.1.ebuild, glibc-2.7.ebuild:
+ Build gd-based helper tools when USE=gd #198381.
+
+ 11 Nov 2007; Mike Frysinger <vapier@gentoo.org>
+ +files/2.7/glibc-2.7-hardened-inittls-nosysenter.patch,
+ files/eblits/src_unpack.eblit, glibc-2.6.1.ebuild, glibc-2.7.ebuild:
+ Move hardened stuff back to each ebuild (since that is how we are tracking
+ it) and add support for pre/post eblit hooks. Also fixup hardened patch to
+ apply #198335.
+
+ 10 Nov 2007; Mike Frysinger <vapier@gentoo.org> glibc-2.6.ebuild,
+ glibc-2.6.1.ebuild, glibc-2.7.ebuild:
+ Only stick glibc-compat20 into IUSE when linuxthreads is available #198657
+ by Benjamin Schindler.
+
+ 10 Nov 2007; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_unpack.eblit, glibc-2.6.1.ebuild, glibc-2.7.ebuild:
+ Add support for USE=vanilla.
+
+ 24 Oct 2007; Mike Frysinger <vapier@gentoo.org> glibc-2.7.ebuild:
+ Fix building on hppa #196868 and add patch for gcc-4.2 + noinlining #196245.
+
+ 23 Oct 2007; Mike Frysinger <vapier@gentoo.org> glibc-2.7.ebuild:
+ Force >=sys-apps/sandbox-1.2.18.1-r2 so it recognizes the new cloexec flags
+ #196720.
+
+*glibc-2.7 (22 Oct 2007)
+
+ 22 Oct 2007; Mike Frysinger <vapier@gentoo.org> +glibc-2.7.ebuild:
+ Version bump.
+
+ 17 Oct 2007; Raúl Porcel <armin76@gentoo.org> glibc-2.6.1.ebuild:
+ alpha/ia64/sparc stable wrt #195427
+
+ 16 Oct 2007; Christoph Mende <angelos@gentoo.org> glibc-2.6.1.ebuild:
+ Stable on amd64 wrt bug #195427
+
+ 15 Oct 2007; Markus Rothe <corsair@gentoo.org> glibc-2.6.1.ebuild:
+ Stable on ppc64; bug #195427
+
+ 14 Oct 2007; Christian Faulhammer <opfer@gentoo.org> glibc-2.6.1.ebuild:
+ stable x86, bug 195427
+
+ 12 Oct 2007; Lars Weiler <pylon@gentoo.org> glibc-2.6.1.ebuild:
+ stable ppc, bug #195427
+
+ 10 Oct 2007; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit:
+ Add default -march for x86 on amd64 builds based on CHOST #185404.
+
+ 07 Oct 2007; Mike Frysinger <vapier@gentoo.org>
+ files/eblits/src_unpack.eblit:
+ Dont bother checking kernel headers when installing libc headers #190510.
+
+ 04 Sep 2007; Joshua Kinard <kumba@gentoo.org> glibc-2.6.1.ebuild:
+ Update the patchset to 1.1 to pull in a patch for mips to enable support for
+ .gnu.hash capabilities, and mark unstable on mips.
+
+ 06 Aug 2007; Mike Frysinger <vapier@gentoo.org>
+ +files/eblits/common.eblit, +files/eblits/src_compile.eblit,
+ +files/eblits/src_install.eblit, +files/eblits/src_test.eblit,
+ +files/eblits/src_unpack.eblit, glibc-2.6.1.ebuild:
+ Introduce eblits.
+
+ 06 Aug 2007; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.6.ebuild, glibc-2.6.1.ebuild:
+ Add default -march for x86 builds based on CHOST #185404.
+
+*glibc-2.6.1 (01 Aug 2007)
+*glibc-2.5.1 (01 Aug 2007)
+
+ 01 Aug 2007; Mike Frysinger <vapier@gentoo.org> +glibc-2.5.1.ebuild,
+ +glibc-2.6.1.ebuild:
+ Version bump.
+
+ 24 Jul 2007; Samuli Suominen <drac@gentoo.org> Manifest:
+ Fix Manifest. (yoswink)
+
+ 24 Jul 2007; Jose Luis Rivero <yoswink@gentoo.org> glibc-2.6.ebuild:
+ Keyworded ~alpha
+
+ 20 Jul 2007; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.6.ebuild:
+ Keyworded ~sparc
+
+ 15 Jul 2007; Christoph Mende <angelos@gentoo.org> glibc-2.5-r4.ebuild:
+ Stable on amd64 wrt security bug #183844
+
+ 10 Jul 2007; Tobias Scherbaum <dertobi123@gentoo.org> glibc-2.5-r4.ebuild:
+ ppc stable, bug #183844
+
+ 10 Jul 2007; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.5-r4.ebuild:
+ Stable on sparc wrt #183844
+
+ 09 Jul 2007; Jeroen Roovers <jer@gentoo.org> glibc-2.5-r4.ebuild:
+ Stable for HPPA (bug #183844).
+
+ 07 Jul 2007; Joshua Kinard <kumba@gentoo.org> glibc-2.5-r4.ebuild:
+ Stable on mips, per #183844.
+
+ 07 Jul 2007; Raúl Porcel <armin76@gentoo.org> glibc-2.5-r4.ebuild:
+ alpha/ia64 stable wrt security #183844
+
+ 07 Jul 2007; Markus Rothe <corsair@gentoo.org> glibc-2.5-r4.ebuild:
+ Stable on ppc64; bug #183844
+
+ 05 Jul 2007; Piotr Jaroszyński <peper@gentoo.org> glibc-2.5-r4.ebuild:
+ (QA) RESTRICT clean up.
+
+ 03 Jul 2007; Christian Faulhammer <opfer@gentoo.org> glibc-2.5-r4.ebuild:
+ stable x86, security bug 183844
+
+*glibc-2.5-r4 (03 Jul 2007)
+
+ 03 Jul 2007; <solar@gentoo.org> +glibc-2.5-r4.ebuild:
+ - bug 183844
+
+ 02 Jul 2007; Piotr Jaroszyński <peper@gentoo.org> glibc-2.2.5-r10.ebuild,
+ glibc-2.3.2-r12.ebuild, glibc-2.3.5-r3.ebuild, glibc-2.3.6-r4.ebuild,
+ glibc-2.3.6-r5.ebuild, glibc-2.4-r4.ebuild, glibc-2.5-r2.ebuild,
+ glibc-2.5-r3.ebuild, glibc-2.6.ebuild:
+ (QA) RESTRICT clean up.
+
+ 02 Jul 2007; Jose Luis Rivero <yoswink@gentoo.org> glibc-2.5-r3.ebuild:
+ Stable on alpha wrt security bug #176712
+
+ 01 Jul 2007; Piotr Jaroszyński <peper@gentoo.org> glibc-2.3.5-r3.ebuild,
+ glibc-2.3.6-r4.ebuild, glibc-2.3.6-r5.ebuild, glibc-2.4-r4.ebuild,
+ glibc-2.5-r2.ebuild, glibc-2.5-r3.ebuild, glibc-2.6.ebuild:
+ (QA) RESTRICT="multilib-pkg-force" -> EMULTILIB_PKG="true"
+
+ 25 Jun 2007; Joshua Kinard <kumba@gentoo.org> glibc-2.5-r3.ebuild:
+ Stable on mips, per #176712.
+
+ 05 Jun 2007; Raúl Porcel <armin76@gentoo.org> glibc-2.3.6-r5.ebuild:
+ alpha stable
+
+ 02 Jun 2007; Matti Bickel <mabi@gentoo.org> glibc-2.5-r3.ebuild:
+ ppc stable
+
+ 01 Jun 2007; Raúl Porcel <armin76@gentoo.org> glibc-2.5-r3.ebuild:
+ ia64 stable wrt security #176712
+
+ 01 Jun 2007; Stephen Bennett <spb@gentoo.org> +glibc-2.3.6-r4.ebuild:
+ Re-add 2.3.6-r4 since it was latest 2.3 stable on alpha
+
+ 31 May 2007; Daniel Gryniewicz <dang@gentoo.org> glibc-2.5-r3.ebuild:
+ Marked stable on amd64 for bug #176712
+
+ 31 May 2007; Markus Rothe <corsair@gentoo.org> glibc-2.5-r3.ebuild:
+ Stable on ppc64; bug #176712
+
+ 30 May 2007; Raúl Porcel <armin76@gentoo.org> glibc-2.5-r3.ebuild:
+ x86 stable wrt security #176712
+
+ 29 May 2007; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.5-r3.ebuild:
+ Stable on sparc wrt security #176712
+
+ 28 May 2007; Jeroen Roovers <jer@gentoo.org> glibc-2.5-r3.ebuild:
+ Stable for HPPA (bug #176712).
+
+*glibc-2.5-r3 (27 May 2007)
+
+ 27 May 2007; Mike Frysinger <vapier@gentoo.org> +glibc-2.5-r3.ebuild:
+ Some more fixes from upstream (/etc/shell and printf()), fix tests when
+ profiling/debugging is enabled, and add patch from SuSE for more dynamic
+ /etc/resolv.conf handling.
+
+ 24 May 2007; Joshua Kinard <kumba@gentoo.org> glibc-2.3.6-r5.ebuild:
+ Stable on mips.
+
+*glibc-2.6 (19 May 2007)
+
+ 19 May 2007; Mike Frysinger <vapier@gentoo.org> +glibc-2.6.ebuild:
+ Version bump.
+
+ 15 May 2007; Jeroen Roovers <jer@gentoo.org> glibc-2.5-r2.ebuild:
+ Stable for HPPA (bug #168131).
+
+ 14 May 2007; Mike Frysinger <vapier@gentoo.org> glibc-2.5-r2.ebuild:
+ Push out some alpha compile fixes.
+
+ 11 May 2007; Joshua Kinard <kumba@gentoo.org> glibc-2.5-r2.ebuild:
+ Stable on mips, per #176712.
+
+ 09 May 2007; Bryan Østergaard <kloeri@gentoo.org> glibc-2.5-r2.ebuild:
+ Stable on Alpha, bug 176712.
+
+ 05 May 2007; Daniel Gryniewicz <dang@gentoo.org> glibc-2.5-r2.ebuild:
+ Marked stable on amd64 for bug #176712
+
+ 05 May 2007; Tobias Scherbaum <dertobi123@gentoo.org> glibc-2.5-r2.ebuild:
+ ppc stable, bug #176712
+
+ 05 May 2007; Mike Frysinger <vapier@gentoo.org> glibc-2.5-r2.ebuild:
+ Switch to cleaner STRIP_MASK with prepallstrip.
+
+ 04 May 2007; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.5-r2.ebuild:
+ Stable on sparc wrt security #176712
+
+ 04 May 2007; Bryan Østergaard <kloeri@gentoo.org> glibc-2.5-r2.ebuild:
+ Stable on IA64, bug 176712.
+
+ 03 May 2007; Markus Rothe <corsair@gentoo.org> glibc-2.5-r2.ebuild:
+ Stable on ppc64; bug #176712
+
+ 03 May 2007; Andrej Kacian <ticho@gentoo.org> glibc-2.5-r2.ebuild:
+ Stable on x86, security bug #176712.
+
+*glibc-2.5-r2 (03 May 2007)
+
+ 03 May 2007; Mike Frysinger <vapier@gentoo.org> +glibc-2.5-r2.ebuild:
+ Fix building with sanitized headers for various arches, fix from upstream
+ #176712 for printf overflow, fix building under hppa, and respect env
+ CPPFLAGS.
+
+ 15 Mar 2007; Kevin F. Quinn <kevquinn@gentoo.org>
+ files/2.5/glibc-2.5-hardened-pie.patch, glibc-2.5-r1.ebuild:
+ Fix 2.5-hardened-pie.spec (bug #170731), and make 2.5-r1 robust against compiler variant.
+
+*glibc-2.5-r1 (13 Mar 2007)
+
+ 13 Mar 2007; Mike Frysinger <vapier@gentoo.org>
+ +files/2.5/glibc-2.5-gentoo-stack_chk_fail.c,
+ +files/2.5/glibc-2.5-hardened-configure-picdefault.patch,
+ +files/2.5/glibc-2.5-hardened-inittls-nosysenter.patch,
+ +files/2.5/glibc-2.5-hardened-pie.patch, +glibc-2.5-r1.ebuild:
+ Push out misc fixes and include new hardened/hppa work.
+
+ 25 Feb 2007; Joshua Kinard <kumba@gentoo.org> glibc-2.5.ebuild:
+ Add ~mips to glibc-2.5 for testing under the 2007.1-dev profile.
+
+ 23 Feb 2007; Roy Marples <uberlord@gentoo.org> files/nscd:
+ nscd init script no longer requires bash
+
+ 17 Feb 2007; Mike Frysinger <vapier@gentoo.org> glibc-2.5.ebuild:
+ We no longer support i386-* hosts #165772.
+
+ 13 Feb 2007; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.5.ebuild:
+ Stable on sparc for 2007.0
+
+ 12 Feb 2007; Bryan Østergaard <kloeri@gentoo.org> glibc-2.5.ebuild:
+ Stable on IA64.
+
+ 12 Feb 2007; Bryan Østergaard <kloeri@gentoo.org> glibc-2.5.ebuild:
+ Stable on Alpha.
+
+ 12 Feb 2007; Simon Stelling <blubb@gentoo.org> glibc-2.5.ebuild:
+ stable on amd64; bug 165085
+
+ 11 Feb 2007; Joseph Jezak <josejx@gentoo.org> glibc-2.5.ebuild:
+ Marked ppc stable for bug #165085.
+
+ 08 Feb 2007; Bryan Østergaard <kloeri@gentoo.org> glibc-2.5.ebuild:
+ Add ~alpha keyword.
+
+ 06 Feb 2007; Christian Faulhammer <opfer@gentoo.org> glibc-2.5.ebuild:
+ stable x86; bug #165085
+
+ 27 Jan 2007; Mike Frysinger <vapier@gentoo.org> glibc-2.3.6-r4.ebuild,
+ glibc-2.3.6-r5.ebuild, glibc-2.4-r3.ebuild, glibc-2.4-r4.ebuild,
+ glibc-2.5.ebuild:
+ Fixup bash style in check_nptl_support so the checks actually work #164007
+ by Andrew Gaffney.
+
+ 16 Jan 2007; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.5.ebuild:
+ Give ~sparc keywords
+
+ 06 Jan 2007; Tom Gall <tgall@gentoo.org> glibc-2.5.ebuild:
+ stable on ppc64.
+
+ 25 Nov 2006; nixnut <nixnut@gentoo.org> glibc-2.3.6-r5.ebuild,
+ glibc-2.4-r4.ebuild:
+ Stable on ppc wrt bug 154176
+
+ 25 Nov 2006; <blubb@gentoo.org> glibc-2.3.6-r5.ebuild:
+ stable on amd64
+
+ 20 Nov 2006; Guy Martin <gmsoft@gentoo.org> glibc-2.3.6-r5.ebuild:
+ Stable on hppa.
+
+ 13 Nov 2006; Tom Gall <tgall@gentoo.org> glibc-2.4-r4.ebuild:
+ stable on ppc64
+
+ 09 Nov 2006; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.3.6-r5.ebuild:
+ Stable on sparc wrt #154176
+
+ 08 Nov 2006; Christian Faulhammer <opfer@gentoo.org>
+ glibc-2.3.6-r5.ebuild, glibc-2.4-r4.ebuild:
+ stable x86, bug #154176
+
+ 06 Nov 2006; Daniel Gryniewicz <dang@gentoo.org> glibc-2.4-r4.ebuild:
+ Marked stable on amd64 for bug #154176
+
+ 19 Oct 2006; Markus Rothe <corsair@gentoo.org> glibc-2.3.6-r5.ebuild:
+ Stable on ppc64 (for binutils-2.17)
+
+*glibc-2.3.6-r5 (30 Sep 2006)
+
+ 30 Sep 2006; Mike Frysinger <vapier@gentoo.org> +glibc-2.3.6-r5.ebuild:
+ Push out accumulated fixes.
+
+*glibc-2.5 (30 Sep 2006)
+
+ 30 Sep 2006; Mike Frysinger <vapier@gentoo.org> +glibc-2.5.ebuild:
+ Version bump.
+
+*glibc-2.4-r4 (29 Sep 2006)
+
+ 29 Sep 2006; Mike Frysinger <vapier@gentoo.org> +glibc-2.4-r4.ebuild:
+ Push out accumulated fixes.
+
+ 19 Sep 2006; Jason Wever <weeve@gentoo.org> glibc-2.4-r3.ebuild:
+ Added ~sparc keyword to glibc-2.4, woohoo
+
+ 14 Sep 2006; Danny van Dyk <kugelfang@gentoo.org> glibc-2.3.6-r3.ebuild:
+ Moved last hidden USE flag to USE_EXPAND flag.
+
+ 30 Aug 2006; Chris Gianelloni <wolf31o2@gentoo.org> glibc-2.4-r3.ebuild:
+ Stable on amd64 and x86.
+
+ 14 Aug 2006; <solar@gentoo.org> glibc-2.3.4.20041102-r2.ebuild,
+ glibc-2.3.4.20050125-r1.ebuild, glibc-2.3.5-r2.ebuild,
+ glibc-2.3.5-r3.ebuild:
+ - switch default ordering of gcc-config and eselect-compiler to work around
+ portage bug
+
+ 05 Aug 2006; Danny van Dyk <kugelfang@gentoo.org> glibc-2.3.6-r4.ebuild,
+ glibc-2.4-r3.ebuild:
+ Fixed bug #142832: wrapped crosscompile-fix in 'if is_crosscompile && ...'.
+
+ 28 Jul 2006; <plasmaroo@gentoo.org> glibc-2.3.5-r3.ebuild:
+ Stable on IA64; fix bug #141681.
+
+ 22 Jul 2006; Bryan Østergaard <kloeri@gentoo.org> glibc-2.3.6-r4.ebuild:
+ Stable on alpha.
+
+ 09 Jul 2006; Joshua Kinard <kumba@gentoo.org> glibc-2.3.6-r4.ebuild:
+ Marked stable on mips.
+
+ 08 Jul 2006; Lars Weiler <pylon@gentoo.org> glibc-2.3.6-r4.ebuild:
+ Stable on ppc; bug #137121.
+
+ 04 Jul 2006; Mike Frysinger <vapier@gentoo.org> glibc-2.3.5-r2.ebuild,
+ glibc-2.3.5-r3.ebuild, glibc-2.3.6-r3.ebuild, glibc-2.3.6-r4.ebuild,
+ glibc-2.4-r3.ebuild:
+ Add back in sanity check to prevent people from downgrading their glibc.
+
+ 28 Jun 2006; Markus Rothe <corsair@gentoo.org> glibc-2.3.6-r4.ebuild:
+ Stable on ppc64
+
+ 28 Jun 2006; Mike Frysinger <vapier@gentoo.org> glibc-2.3.6-r4.ebuild,
+ glibc-2.4-r3.ebuild:
+ Disable --with-__thread when USE=glibc-compat20 #138028 by je_fro.
+
+ 27 Jun 2006; Luca Barbato <lu_zero@gentoo.org> glibc-2.4-r3.ebuild:
+ Marked stable on ppc
+
+ 27 Jun 2006; Mike Frysinger <vapier@gentoo.org> glibc-2.3.6-r4.ebuild,
+ glibc-2.4-r3.ebuild:
+ Punt Fedora tarballs in favor of packaging c_stubs/glibc-compat ourselves
+ #138028 by je_fro.
+
+ 25 Jun 2006; Guy Martin <gmsoft@gentoo.org> glibc-2.3.6-r4.ebuild:
+ Stable on hppa.
+
+ 25 Jun 2006; Marcus D. Hanwell <cryos@gentoo.org> glibc-2.3.6-r4.ebuild:
+ Marked stable on amd64, bug 137121.
+
+ 24 Jun 2006; Markus Rothe <corsair@gentoo.org> glibc-2.4-r3.ebuild:
+ Added ~ppc64 to get more user response for bugs
+
+ 22 Jun 2006; Mike Frysinger <vapier@gentoo.org> glibc-2.3.6-r4.ebuild,
+ glibc-2.4-r3.ebuild:
+ Make locale-gen upgrade path a little smoother for people who want *all*
+ locales generated #137538.
+
+ 21 Jun 2006; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.3.6-r4.ebuild:
+ Stable on sparc wrt #137121
+
+ 18 Jun 2006; Andrej Kacian <ticho@gentoo.org> glibc-2.3.6-r4.ebuild:
+ Stable on x86. Bug #137121.
+
+ 15 Jun 2006; Joshua Kinard <kumba@gentoo.org> glibc-2.4-r3.ebuild:
+ Add ~mips to KEYWORDS for testing purposes.
+
+ 30 May 2006; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20041102-r2.ebuild, glibc-2.3.4.20050125-r1.ebuild,
+ glibc-2.3.5.ebuild, glibc-2.3.5-r1.ebuild, glibc-2.3.5-r2.ebuild,
+ glibc-2.3.5-r3.ebuild, glibc-2.3.6.ebuild, glibc-2.3.6-r1.ebuild,
+ glibc-2.3.6-r2.ebuild, glibc-2.3.6-r3.ebuild, glibc-2.3.6-r4.ebuild,
+ glibc-2.4-r1.ebuild, glibc-2.4-r2.ebuild, glibc-2.4-r3.ebuild:
+ Let app-admin/eselect-compiler be used instead of sys-devel/gcc-config if
+ it's available.
+
+ 30 May 2006; Luca Barbato <lu_zero@gentoo.org> glibc-2.4-r3.ebuild:
+ Marked ~ppc
+
+ 26 May 2006; Guy Martin <gmsoft@gentoo.org> glibc-2.3.6-r4.ebuild:
+ Added ~hppa to KEYWORDS.
+
+*glibc-2.4-r3 (13 May 2006)
+
+ 13 May 2006; Mike Frysinger <vapier@gentoo.org> +glibc-2.4-r3.ebuild:
+ Push out accumulated changes and post new amd64 string patch.
+
+ 05 May 2006; Mike Frysinger <vapier@gentoo.org> glibc-2.3.6-r3.ebuild:
+ Just filter strings patch for hardened users #124682.
+
+*glibc-2.3.6-r4 (04 May 2006)
+
+ 04 May 2006; Mike Frysinger <vapier@gentoo.org> +glibc-2.3.6-r4.ebuild:
+ Backport all the crazy changes from glibc-2.4 and include a ton of bugfixes.
+
+ 04 May 2006; Joseph Jezak <josejx@gentoo.org> glibc-2.3.6-r3.ebuild:
+ Marked ppc stable for bug #132076.
+
+ 02 May 2006; Daniel Gryniewicz <dang@gentoo.org> glibc-2.3.6-r3.ebuild:
+ Marked stable on amd64 per bug# 131403
+
+ 30 Apr 2006; Joshua Kinard <kumba@gentoo.org> glibc-2.3.6-r3.ebuild:
+ Marked stable on mips.
+
+ 30 Apr 2006; Simon Stelling <blubb@gentoo.org> glibc-2.3.5-r3.ebuild:
+ stable on amd64
+
+ 26 Apr 2006; Ilya A. Volynets-Evenbakh <iluxa@gentoo.org>
+ glibc-2.3.6.ebuild, glibc-2.3.6-r1.ebuild, glibc-2.3.6-r2.ebuild,
+ glibc-2.3.6-r3.ebuild:
+ replace "portageq has_version" with "has_version" to make paludis with
+ root!=/ happy
+
+ 25 Apr 2006; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.3.6-r3.ebuild:
+ Stable on sparc
+
+ 25 Apr 2006; Mark Loeser <halcy0n@gentoo.org> glibc-2.3.6-r3.ebuild:
+ Stable on x86
+
+ 17 Apr 2006; Mike Frysinger <vapier@gentoo.org> glibc-2.4-r2.ebuild:
+ Kill USE=userlocales and replace with Debian locale-gen #22565.
+
+ 14 Apr 2006; Bryan Østergaard <kloeri@gentoo.org glibc-2.3.6-r3.ebuild:
+ ~alpha keyword 2.3.6-r3, needed by vlc-0.8.5.
+
+ 13 Apr 2006; Stephen P. Becker <geoman@gentoo.org> glibc-2.4-r2.ebuild:
+ fix DEPEND so that we can use mips-headers with USE=nptl
+
+*glibc-2.4-r2 (01 Apr 2006)
+
+ 01 Apr 2006; Mike Frysinger <vapier@gentoo.org> +glibc-2.4-r2.ebuild:
+ Cleaned up version bump.
+
+ 29 Mar 2006; Chris Gianelloni <wolf31o2@gentoo.org> glibc-2.3.5-r3.ebuild:
+ Marking stable on x86 wrt bug #127680.
+
+ 29 Mar 2006; Mike Frysinger <vapier@gentoo.org> glibc-2.4-r1.ebuild:
+ Force gcc-4 for ppc targets #125797 and allow nptl for most targets #127358.
+
+*glibc-2.4-r1 (17 Mar 2006)
+
+ 17 Mar 2006; Mike Frysinger <vapier@gentoo.org> +files/2.4/ssp_simple.c,
+ +glibc-2.4-r1.ebuild:
+ Cut some old mips patches, update the alpha xstat patch, fixup the ssp
+ compat patch #125909 and #125988, and fix the fnmatch patch #126164.
+
+ 11 Mar 2006; Mike Frysinger <vapier@gentoo.org>
+ +files/2.4/glibc-gentoo-libdir.patch, glibc-2.4.ebuild:
+ Update non-multilib amd64 patch for glibc-2.4 #125793 by Jean Bréfort.
+
+*glibc-2.4 (10 Mar 2006)
+
+ 10 Mar 2006; Mike Frysinger <vapier@gentoo.org> +glibc-2.4.ebuild:
+ Version bump.
+
+ 03 Mar 2006; Simon Stelling <blubb@gentoo.org>
+ glibc-2.3.4.20040808-r1.ebuild, glibc-2.3.4.20041102-r1.ebuild,
+ glibc-2.3.4.20041102-r2.ebuild, glibc-2.3.4.20050125-r1.ebuild,
+ glibc-2.3.5.ebuild:
+ remove the dependency on app-emulation/emul-linux-x86-glibc since 2004.3 has
+ been deprecated a while ago
+
+ 27 Feb 2006; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.3.6-r3.ebuild:
+ Stick a ~sparc in
+
+ 20 Feb 2006; Mike Frysinger <vapier@gentoo.org> glibc-2.3.5-r3.ebuild,
+ glibc-2.3.6-r3.ebuild:
+ Add some sparc fixes from upstream #123433 by Jason Weever.
+
+ 20 Feb 2006; Joshua Kinard <kumba@gentoo.org> glibc-2.3.5-r3.ebuild:
+ Marked stable on mips.
+
+*glibc-2.3.6-r3 (12 Feb 2006)
+
+ 12 Feb 2006; Martin Schlemmer <azarah@gentoo.org> +glibc-2.3.6-r3.ebuild:
+ Add amd64 string and math patches, bug #100289. Extra patches from
+ Simon Strandman's patchset for glibc-2.3.90 that I ported to 2.3.6.
+
+ 29 Jan 2006; Mike Frysinger <vapier@gentoo.org>
+ -files/glibc-manpages-2.2.5.tar.bz2, -files/glibc-manpages-2.3.2.tar.bz2,
+ glibc-2.3.2-r12.ebuild:
+ Move glibc 2.3.2 manpages to mirrors #120700 by Simon Stelling.
+
+ 25 Jan 2006; Daniel Ostrow <dostrow@gentoo.org>
+ glibc-2.3.4.20041102-r2.ebuild:
+ Stable for stage building.
+
+ 24 Jan 2006; Mike Frysinger <vapier@gentoo.org> glibc-2.3.5.ebuild,
+ glibc-2.3.5-r1.ebuild, glibc-2.3.5-r2.ebuild, glibc-2.3.5-r3.ebuild,
+ glibc-2.3.6.ebuild, glibc-2.3.6-r1.ebuild, glibc-2.3.6-r2.ebuild:
+ Define alt_build_headers for the --with-headers option and for checking for
+ nptl support #114923.
+
+ 18 Jan 2006; Mark Loeser <halcy0n@gentoo.org>
+ files/2.3.5/glibc-2.3.5-propolice-guard-functions.patch,
+ +files/2.3.6/glibc-2.3.6-propolice-guard-functions.patch,
+ -glibc-2.3.5.20050421.ebuild, -glibc-2.3.5.20050722.ebuild,
+ glibc-2.3.6.ebuild, glibc-2.3.6-r1.ebuild, glibc-2.3.6-r2.ebuild:
+ Add check for SSP from glibc head. Remove old glibc-2.3.5 (glibc-2.4)
+ snapshots.
+
+ 15 Jan 2006; Joseph Jezak <josejx@gentoo.org> glibc-2.3.5-r3.ebuild,
+ glibc-2.3.6-r2.ebuild:
+ Added PPC NPTL workaround and marked glibc-2.3.5-r3 ppc stable.
+
+ 13 Jan 2006; Mike Frysinger <vapier@gentoo.org> glibc-2.3.5-r1.ebuild,
+ glibc-2.3.5-r2.ebuild, glibc-2.3.5-r3.ebuild, glibc-2.3.6.ebuild,
+ glibc-2.3.6-r1.ebuild, glibc-2.3.6-r2.ebuild:
+ Fix double stripping on multilib systems #118207.
+
+ 07 Jan 2006; Markus Rothe <corsair@gentoo.org> glibc-2.3.6-r2.ebuild:
+ Added ~ppc64
+
+ 06 Jan 2006; Luis Medinas <metalgod@gentoo.org> glibc-2.3.6-r2.ebuild:
+ Added ~amd64 keyword.
+
+ 06 Jan 2006; Mark Loeser <halcy0n@gentoo.org> glibc-2.3.6-r2.ebuild:
+ Marking ~x86
+
+ 05 Jan 2006; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.3.5-r3.ebuild:
+ Stable on sparc
+
+*glibc-2.3.6-r2 (03 Jan 2006)
+
+ 03 Jan 2006; Mark Loeser <halcy0n@gentoo.org> +glibc-2.3.6-r2.ebuild:
+ Bump to add a new patchset which fixes MIPs gcc-4 issues, bug #32429 and
+ #116086
+
+ 25 Dec 2005; Joshua Kinard <kumba@gentoo.org> glibc-2.3.6-r1.ebuild:
+ New patchset to fix mips build issues when using gcc-4.x.
+
+ 23 Dec 2005; Michael Hanselmann <hansmi@gentoo.org> glibc-2.3.6-r1.ebuild:
+ Added to ~ppc.
+
+ 09 Dec 2005; Joshua Kinard <kumba@gentoo.org> glibc-2.3.6-r1.ebuild:
+ Added ~mips to KEYWORDS, excluded patch 6640_*
+
+ 09 Dec 2005; Roy Marples <uberlord@gentoo.org> files/nscd:
+ Tweak nscd initscript depend to use dns ldap net slapd.
+
+ 30 Nov 2005; Bryan Østergaard <kloeri@gentoo.org> glibc-2.3.5-r3.ebuild:
+ Stable on alpha. Fixes some longstanding threading issues.
+
+ 18 Nov 2005; Mike Frysinger <vapier@gentoo.org> glibc-2.3.6-r1.ebuild:
+ Add support for just installing glibc headers when doing a cross-compile.
+
+*glibc-2.3.6-r1 (14 Nov 2005)
+
+ 14 Nov 2005; Martin Schlemmer <azarah@gentoo.org> +glibc-2.3.6-r1.ebuild:
+ Fix building with newer binutils. Fix building on ppc with gcc-4.1.
+
+ 12 Nov 2005; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.6.ebuild:
+ Update DEPEND .. we need later binutils. Also update gcc and gcc-config
+ dependencies to be sure.
+
+ 11 Nov 2005; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.6.ebuild:
+ Fix pthread manpages not installing with nptl.
+
+*glibc-2.3.6 (10 Nov 2005)
+
+ 10 Nov 2005; Martin Schlemmer <azarah@gentoo.org> +glibc-2.3.6.ebuild:
+ New release.
+
+ 03 Nov 2005; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.3.5-r3.ebuild:
+ Give it some ~sparc keyword
+
+ 27 Oct 2005; Michael Hanselmann <hansmi@gentoo.org> glibc-2.3.5-r3.ebuild:
+ Added to ~ppc.
+
+ 28 Oct 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r3.ebuild:
+ Cleaned up setup_env, and fixed the usage of CFLAGS_<CTARGET>.
+
+*glibc-2.3.5-r3 (27 Oct 2005)
+
+ 27 Oct 2005; Mike Frysinger <vapier@gentoo.org> +glibc-2.3.5-r3.ebuild:
+ Fix alpha defunct threads #100259, add support for binutils as-needed
+ #108976, and split timezone data off into another package #109556.
+
+ 21 Oct 2005; Tom Gall <tgall@gentoo.org>
+ glibc-2.3.5-r1.ebuild, glibc-2.3.5-r2.ebuild:
+ going back to ~ppc64 in light of bug #109985
+
+ 19 Oct 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20041102-r2.ebuild, glibc-2.3.4.20050125-r1.ebuild,
+ glibc-2.3.5.ebuild, glibc-2.3.5-r1.ebuild, glibc-2.3.5-r2.ebuild,
+ glibc-2.3.5.20050421.ebuild, glibc-2.3.5.20050722.ebuild:
+ Removing my devspace as a fallback URI so people stop blaming me about
+ missing distfiles when mirrors fail.
+
+ 17 Oct 2005; Joseph Jezak <josejx@gentoo.org> glibc-2.3.5-r2.ebuild:
+ Marked ppc stable.
+
+ 14 Oct 2005; Mike Frysinger <vapier@gentoo.org> glibc-2.3.5-r2.ebuild:
+ Filter CFLAGS and force default ABI when cross-compiling.
+
+ 11 Oct 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r2.ebuild:
+ Set MULTILIB_ABIS to DEFAULT_ABI if ! use multilib.
+
+ 08 Oct 2005; Chris PeBenito <pebenito@gentoo.org> glibc-2.3.5-r1.ebuild,
+ glibc-2.3.5-r2.ebuild:
+ Enable SELinux support only on primary ABI on multilib systems.
+
+ 08 Oct 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r2.ebuild:
+ Exclude 5005_all_enable-multilib-with-cross-compile.patch unless we're
+ building a mips64 crosscompiler as it breaks everything else.
+
+ 07 Oct 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r2.ebuild, glibc-2.3.5.20050722.ebuild:
+ Don't do get_libdir on crosscompiles except for mips64 since it breaks other
+ targets and only mildly fixes mips64.
+
+ 07 Oct 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r2.ebuild, glibc-2.3.5.20050421.ebuild,
+ glibc-2.3.5.20050722.ebuild:
+ Don't do the CC setting hack if you've got eselect-compiler as that sets
+ everything up correctly.
+
+ 07 Oct 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r2.ebuild, glibc-2.3.5.20050722.ebuild:
+ Avoid using CFLAGS_${ABI} for sparc64 as that is deprecated (and won't work
+ with the default eselect-compiler settings).
+
+ 07 Oct 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r2.ebuild, glibc-2.3.5.20050722.ebuild:
+ Punted some multilib config stuff to multilib.eclass.
+
+*glibc-2.3.5-r2 (06 Oct 2005)
+
+ 06 Oct 2005; Mike Frysinger <vapier@gentoo.org> +glibc-2.3.5-r2.ebuild:
+ Push out accumulated fixes and fix amd64 multilib error where
+ C{BUILD,TARGET}_OPT bled across compiles.
+
+ 28 Sep 2005; Mike Frysinger <vapier@gentoo.org> glibc-2.3.5-r1.ebuild:
+ Add fix by Fredrik Tolf #86313.
+
+ 21 Sep 2005; Mike Frysinger <vapier@gentoo.org> glibc-2.3.5-r1.ebuild:
+ Rework ABI handling for cross-compiles so mips n32/n64 works now with mips64
+ targets.
+
+ 21 Sep 2005; Stephen P. Becker <geoman@gentoo.org>
+ glibc-2.3.5.20050722.ebuild:
+ exclude patches 6640_mips_unistd_h-fixes.patch and
+ 6600_mips_librt-mips.patch since the first isn't required anymore, and
+ the second breaks the glibc compile--note a new, similar patch may be
+ needed to facilitate transition between old userlands with the GLIBC_2.0
+ symbol in librt
+
+ 18 Sep 2005; Michael Hanselmann <hansmi@gentoo.org> glibc-2.3.5-r1.ebuild:
+ Added to ~ppc.
+
+ 16 Sep 2005; Bryan Østergaard <kloeri@gentoo.org>
+ glibc-2.3.4.20041102-r1.ebuild, glibc-2.3.4.20041102-r2.ebuild,
+ glibc-2.3.4.20050125-r1.ebuild, glibc-2.3.5.ebuild, glibc-2.3.5-r1.ebuild,
+ glibc-2.3.5.20050421.ebuild, glibc-2.3.5.20050722.ebuild:
+ Enable nptl on alpha.
+
+ 07 Sep 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r1.ebuild:
+ Forcing -j1. Found -j3 making problems on my u2 =(...
+
+ 06 Sep 2005; Markus Rothe <corsair@gentoo.org> glibc-2.3.5-r1.ebuild:
+ Stable on ppc64
+
+ 28 Aug 2005; Joshua Kinard <kumba@gentoo.org> glibc-2.3.5-r1.ebuild,
+ glibc-2.3.5.ebuild:
+ Bump 2.3.5 to stable, and 2.3.5-r1 to unstable on mips.
+
+ 25 Aug 2005; Martin Schlemmer <azarah@gentoo.org> glibc-2.2.5-r10.ebuild:
+ Add localedef-fix-trampoline.patch, as we have the same issues with a
+ hardened kernel as with 2.3.x and gcc-[34].x.
+
+ 21 Aug 2005; MATSUU Takuto <matsuu@gentoo.org> glibc-2.3.5-r1.ebuild:
+ Stable on sh.
+
+ 17 Aug 2005; Mike Frysinger <vapier@gentoo.org> glibc-2.3.5-r1.ebuild,
+ glibc-2.3.5.20050421.ebuild, glibc-2.3.5.20050722.ebuild:
+ Make sure we filter all -O flags before we lock down to -O2 #77264.
+
+ 16 Aug 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r1.ebuild:
+ Stable on amd64 and x86 to address issues which cropped up since 2.3.5 went
+ stable. This fixes bugs #52374, #85718, #100190.
+
+ 10 Aug 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r1.ebuild, glibc-2.3.5.20050421.ebuild,
+ glibc-2.3.5.20050722.ebuild:
+ Fixed USE=profile support... bug #100092.
+
+ 04 Aug 2005; Martin Schlemmer <azarah@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild, glibc-2.3.5-r1.ebuild,
+ glibc-2.3.5.20050421.ebuild, glibc-2.3.5.20050722.ebuild:
+ Fix typo, bug #101374.
+
+ 31 Jul 2005; MATSUU Takuto <matsuu@gentoo.org> glibc-2.3.5-r1.ebuild:
+ Added ~sh to KEYWORDS.
+
+ 29 Jul 2005; Mike Frysinger <vapier@gentoo.org> glibc-2.3.5-r1.ebuild:
+ Add patches for SuperH.
+
+ 29 Jul 2005; Jeremy Huddleston <eradicator@gentoo.org> glibc-2.3.5.ebuild,
+ glibc-2.3.5-r1.ebuild, glibc-2.3.5.20050421.ebuild,
+ glibc-2.3.5.20050722.ebuild:
+ Fix cross-compilation RDEPENDs
+
+ 29 Jul 2005; Guy Martin <gmsoft@gentoo.org> glibc-2.3.2-r12.ebuild,
+ glibc-2.3.3.20040420-r2.ebuild, glibc-2.3.4.20040619-r2.ebuild,
+ glibc-2.3.4.20040808-r1.ebuild, glibc-2.3.4.20041102-r1.ebuild:
+ Fixed hppa no pie patch path.
+
+ 29 Jul 2005; Mike Frysinger <vapier@gentoo.org>
+ +files/2.3.4/hppa-no-pie.patch, glibc-2.3.2-r12.ebuild,
+ glibc-2.3.3.20040420-r2.ebuild, glibc-2.3.4.20040619-r2.ebuild,
+ glibc-2.3.4.20040808-r1.ebuild, glibc-2.3.4.20041102-r1.ebuild:
+ Add patch to disable building nscd as PIE on hppa since PIE support is
+ broken in glibc for parisc.
+
+ 26 Jul 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r1.ebuild:
+ Remove a nested function from iconvconfig to make it play nicer for hardened
+ users. Closes bug #85718.
+
+ 24 Jul 2005; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.5-r1.ebuild:
+ Add the stripping of the dynamic linker from the snapshot ebuilds, else we
+ cannot set breakpoints in shared libraries. Make sure we only move actual
+ files and not symlinks to the tmp directory.
+
+*glibc-2.3.5.20050722 (24 Jul 2005)
+
+ 24 Jul 2005; Martin Schlemmer <azarah@gentoo.org>
+ +glibc-2.3.5.20050722.ebuild:
+ New snapshot release.
+
+ 24 Jul 2005; Markus Rothe <corsair@gentoo.org> glibc-2.3.5-r1.ebuild:
+ added ~ppc64
+
+ 23 Jul 2005; Jeremy Huddleston <eradicator@gentoo.org> glibc-2.3.5.ebuild,
+ glibc-2.3.5-r1.ebuild:
+ Changed CHOST->CTARGET for 486/586 linuxthreads workaround. Set keywords in
+ 2.3.5-r1 to ~amd64 ~sparc ~x86 in prep to remove from package.mask.
+
+ 22 Jul 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.5-r1.ebuild, glibc-2.3.5.20050421.ebuild:
+ Readded 1040_all_2.3.3-localedef-fix-trampoline.patch which got lost during
+ a glibc bump. Shoud address bug #85718. Also, let --with-__thread be
+ controlled by linuxthread-tls instead of !glibc-compat20.
+
+ 17 Jul 2005; Jeremy Huddleston <eradicator@gentoo.org> glibc-2.3.5.ebuild,
+ glibc-2.3.5-r1.ebuild:
+ Workaround for bug #90236 in 2.3.5. Bump of infopages in 2.3.5-r1.
+
+ 15 Jul 2005; Jeremy Huddleston <eradicator@gentoo.org> glibc-2.3.5.ebuild:
+ Stable on x86. This pushes fixes for the nslookup bug and bugs #74555,
+ #87671, #90825, and #98779 plus others into stable on x86.
+
+ 15 Jul 2005; Jeremy Huddleston <eradicator@gentoo.org> glibc-2.3.5.ebuild,
+ glibc-2.3.5-r1.ebuild:
+ Removed the PDEPEND on emul-glibc for amd64 as this release (and all future
+ releases) are masked on 2004.3 for amd64.
+
+*glibc-2.3.5-r1 (15 Jul 2005)
+
+ 15 Jul 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ +glibc-2.3.5-r1.ebuild, glibc-2.3.5.20050421:
+ Revision bump to address bugs #52374, #82424, and #95351. Adds support for
+ the 'profile' USE flag which causes profiling glibc libs to be build. The
+ glibc-omitfp USE flag is now used instead of the !debug flag and CFLAGS
+ checking to determine if we should pass --enable-omitfp to configure. The
+ glibc-compat20 USE flag has been introduced to enable the glibc-compat
+ addon and force the linuxthreads glibc to be compiled with
+ --without-__thread. This will allow better support for legacy (and in some
+ cases "broken") binaries to work with this glibc. If you aren't using such
+ binaries, you're better off not using this USE flag. See bug #95351.
+
+ 14 Jul 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ -files/glibc-2.2.4-string2.h.diff,
+ -files/2.2.5/glibc-2.2.5-alpha-gcc3-fix.diff,
+ -files/2.2.5/glibc-2.2.5-alpha-pcdyn-fix.diff,
+ -files/2.2.5/glibc-2.2.5-arm-errlist-fix.diff,
+ -files/2.2.5/glibc-2.2.5-arm-sysdeps-fix.diff,
+ -files/2.2.5/glibc-2.2.5-divdi3.diff,
+ -files/2.2.5/glibc-2.2.5-dns-network-overflow.diff,
+ -files/2.2.5/glibc-2.2.5-gcc311.patch,
+ -files/2.2.5/glibc-2.2.5-getgrouplist.patch,
+ -files/2.2.5/glibc-2.2.5-ppc-semctl.diff,
+ -files/2.2.5/glibc-2.2.5-ppc-sqrtl.diff,
+ -files/2.2.5/glibc-2.2.5-sandbox.diff,
+ -files/2.2.5/glibc-2.2.5-sparc-mathinline.patch,
+ -files/2.2.5/glibc-2.2.5-sparc-misc.diff,
+ -files/2.2.5/glibc-2.2.5-sparc32-semctl.patch,
+ -files/2.2.5/glibc-2.2.5-sparc64-fixups.diff,
+ -files/2.2.5/glibc-2.2.5-sunrpc-overflow.diff,
+ -files/2.2.5/glibc-2.2.5-threadsig.diff,
+ -files/2.2.5/glibc-2.2.5.divbyzero.patch,
+ -files/2.2.5/glibc-2.2.5.restrict_arr.patch,
+ -files/2.3.1/glibc-2.3.1-elf-machine-rela-mips.patch,
+ -files/2.3.1/glibc-2.3.1-exit-syscall-mips.patch,
+ -files/2.3.1/glibc-2.3.1-inline-syscall-mips.patch,
+ -files/glibc-xdr_security.patch, -glibc-2.3.4.20041102.ebuild,
+ -glibc-2.3.4.20050125.ebuild:
+ Cleaning out some old cruft.
+
+*glibc-2.3.4.20041102-r2 (13 Jul 2005)
+
+ 13 Jul 2005; Yuta SATOH <nigoro@gentoo.org>
+ +glibc-2.3.4.20041102-r2.ebuild, glibc-2.3.5.ebuild,
+ glibc-2.3.5.20050421.ebuild:
+ added multilib support on ppc64, bug #97162
+
+ 12 Jul 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20041102.ebuild, glibc-2.3.4.20041102-r1.ebuild,
+ glibc-2.3.4.20050125.ebuild, glibc-2.3.4.20050125-r1.ebuild,
+ glibc-2.3.5.ebuild, glibc-2.3.5.20050421.ebuild:
+ Changed DEPEND to use ~ instead of >= for glibc so we keep version sync
+ between the packages.
+
+ 11 Jul 2005; Martin Schlemmer <azarah@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild:
+ Update to support selinux USE flag.
+
+ 11 Jul 2005; Martin Schlemmer <azarah@gentoo.org>
+ glibc-2.3.4.20041102-r1.ebuild, glibc-2.3.5.ebuild,
+ glibc-2.3.5.20050421.ebuild:
+ Update to support selinux USE flag (blame spb).
+
+ 07 Jul 2005; Jeremy Huddleston <eradicator@gentoo.org> glibc-2.3.5.ebuild:
+ Stable amd64.
+
+ 26 Jun 2005; Luca Barbato <lu_zero@gentoo.org> glibc-2.3.5.ebuild:
+ ppc doesn't build correctly with -nptlonly
+
+ 16 June 2005; Martin Schlemmer <azarah@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild, glibc-2.3.5.20050421.ebuild:
+ Do not backup symlinks for the 'do not strip thread/ld.so libs' action, as
+ it causes issues (basically the 'mv -f' followed the symlink instead of
+ moving it ...).
+
+ 14 Jun 2005; Mike Frysinger <vapier@gentoo.org> files/nscd:
+ Add a permission check to nscd init.d #96108 by Paul Ortyl.
+
+ 11 Jun 2005; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.3.4.20041102.ebuild, glibc-2.3.4.20041102-r1.ebuild,
+ glibc-2.3.4.20050125.ebuild, glibc-2.3.4.20050125-r1.ebuild,
+ glibc-2.3.5.ebuild, glibc-2.3.5.20050421.ebuild:
+ Add missing popd by Sunil #95736.
+
+ 07 Jun 2005; Mike Frysinger <vapier@gentoo.org> files/2.3.5/ssp.c,
+ +files/2.3.5/glibc-2.3.5-propolice-guard-functions.patch,
+ glibc-2.3.5.ebuild:
+ Make sure we dont build ssp.c with stack-protector and disable syslog()
+ until we have a better fix #94325.
+
+ 05 Jun 2005; Mike Frysinger <vapier@gentoo.org>
+ +files/2.3.4/glibc234-alpha-xstat.patch, glibc-2.3.4.20041102.ebuild,
+ glibc-2.3.4.20041102-r1.ebuild:
+ Add xstat patch for alpha for kloeri.
+
+ 27 May 2005; Bryan Østergaard <kloeri@gentoo.org>
+ glibc-2.3.4.20041102-r1.ebuild:
+ Stable on alpha.
+
+ 05 May 2005; Martin Schlemmer <azarah@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild, glibc-2.3.5.20050421.ebuild:
+ Do not strip ld.so to enable setting breakpoints in shared libraries (Fix by
+ Lonnie Princehouse).
+
+ 03 May 2005; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.3.4.20041102-r1.ebuild, glibc-2.3.4.20050125-r1.ebuild,
+ glibc-2.3.5.ebuild, glibc-2.3.5.20050421.ebuild:
+ Dont try the ld.so test on static binaries #90836 by Vasilii Alferov.
+
+ 29 Apr 2005; Markus Rothe <corsair@gentoo.org>
+ glibc-2.3.4.20050125.ebuild, glibc-2.3.4.20050125-r1.ebuild,
+ glibc-2.3.5.ebuild, glibc-2.3.5.20050421.ebuild:
+ Filed in the values for CDEFINE on ppc64; bug #88749
+
+ 28 Apr 2005; Markus Rothe <corsair@gentoo.org> glibc-2.3.5.ebuild,
+ glibc-2.3.5.20050421.ebuild:
+ Added ~ppc64 to KEYWORDS
+
+ 27 Apr 2005; Jeremy Huddleston <eradicator@gentoo.org> glibc-2.3.5.ebuild,
+ glibc-2.3.5.20050421.ebuild:
+ Don't use --enable-omitfp on i[345]86.
+
+ 24 Apr 2005; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild, glibc-2.3.5.ebuild:
+ We're a bit dated on mips. Bump 2.3.4.20050125-r1 to stable, and 2.3.5 to
+ unstable.
+
+*glibc-2.3.5.20050421 (23 Apr 2005)
+
+ 23 Apr 2005; Martin Schlemmer <azarah@gentoo.org>
+ +glibc-2.3.5.20050421.ebuild:
+ CVS update for gcc-4.0.0 testing. Added 5090_all_stubs-rule-fix.patch
+ to patches to fix:
+
+ http://sources.redhat.com/ml/libc-alpha/2005-04/msg00098.html
+
+ 13 Apr 2005; Luca Barbato <lu_zero@gentoo.org> glibc-2.3.5.ebuild:
+ Marked ~ppc
+
+*glibc-2.3.5 (12 Apr 2005)
+
+ 12 Apr 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ +glibc-2.3.5.ebuild:
+ Version bump.
+
+ 07 Apr 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild:
+ Stop excluding the gcc4 patch. Put code in pkg_postinst to remove nptl
+ libpthread-*.so if we have linuxthreads glibc. Sometimes it doesn't get
+ emerged and can cause problems like bug #87671.
+
+ 07 Apr 2005; Mike Frysinger <vapier@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild:
+ Delete the glibc-compat dir since its useless to us #87739.
+
+ 06 Apr 2005; Daniel Ostrow <dostrow@gentoo.org>
+ glibc-2.3.4.20041102-r1.ebuild:
+ Drop to -j1 for hardened ppc64
+
+ 03 Apr 2005; Daniel Goller <morfic@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild, glibc-2.3.4.20050125.ebuild:
+ marking 20050125 -ppc till breakage can be fixed see bug #87671
+
+ 01 Apr 2005; Joseph Jezak <josejx@gentoo.org> glibc-2.3.4.20050125.ebuild,
+ glibc-2.3.4.20050125-r1.ebuild:
+ Added ~ppc for bug #87452.
+
+ 31 Mar 2005; Danny van Dyk <kugelfang@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild:
+ Fixed gconvdir on multilib arches, BUG #86861.
+
+ 23 Mar 2005; Martin Schlemmer <azarah@gentoo.org>
+ glibc-2.3.4.20041102-r1.ebuild, glibc-2.3.4.20050125-r1.ebuild:
+ Fixup copy operations to not replace symlinks with files. Add a fix ala
+ vapier for bug #85555 (more a abort if this glibc is going to kill / than a
+ fix).
+
+ 21 Mar 2005; Aron Griffis <agriffis@gentoo.org>
+ glibc-2.3.4.20041102-r1.ebuild:
+ Add ~alpha
+
+ 15 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild:
+ Fix assert in _dl_next_tls_modid-assert (sysdeps/generic/dl-tls.c), bug
+ #52374. Fix building a crosscompiled glibc with nptl when no libc is
+ present. Use --no-archive when creating locales as some apps don't like
+ locale-archive, bug #82106.
+
+*glibc-2.3.4.20041102-r1 (15 Mar 2005)
+
+ 15 Mar 2005; Martin Schlemmer <azarah@gentoo.org>
+ +glibc-2.3.4.20041102-r1.ebuild:
+ Fix assert in _dl_next_tls_modid-assert (sysdeps/generic/dl-tls.c), bug
+ #52374. Bump x86 stable.
+
+ 15 Mar 2005; Martin Schlemmer <azarah@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-fix-_dl_next_tls_modid-assert.patch,
+ glibc-2.3.4.20050125.ebuild:
+ Fix assert in _dl_next_tls_modid-assert (sysdeps/generic/dl-tls.c), bug #52374.
+
+ 15 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild:
+ gcc-4 fix from bug #83403. Fixes for when CBUILD != CHOST.
+
+ 07 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild:
+ Don't allow sys/kd.h to prevent linux/types.h from loading outside of its
+ context. This fixes a problem with glibc, linux-headers-2.6 and bigendian
+ archs.
+
+ 05 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild:
+ Fixed crosscompile want_nptl. Fixed broken src_install logic which resulted
+ in only nptl version being installed.
+
+ 05 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild:
+ Readded libidn addon missing in 2.3.4.20050125. Use configure option
+ --enable-omitfp if the user has -fomit-frame-pointer in their CFLAGS (before
+ we strip it out).
+
+ 04 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild:
+ A few sparc and multilib fixes with the changing CHOST. Readded warning
+ about crosscompiled glibc needing to be installed first before one can be
+ emerged with nptl. Added some fedora updates (glibc-compat) and an updated
+ mips patch from Kumba.
+
+ 19 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125-r1.ebuild, glibc-2.3.4.20050125.ebuild:
+ Updated ssp.c in -r1 with patch from bug #65892 thanks to Kevin F. Quinn
+ <co@kevquinn.com>
+
+ 16 Feb 2005; Luca Barbato <lu_zero@gentoo.org>
+ glibc-2.3.4.20041102.ebuild:
+ Marked ppc
+
+*glibc-2.3.4.20050125-r1 (15 Feb 2005)
+
+ 15 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ +glibc-2.3.4.20050125-r1.ebuild, glibc-2.3.4.20050125.ebuild:
+ package.mask'd version bump to fix bugs that cropped up after release. Added
+ hardened patch that got left out of the patch tarball. -r1 unconditionally
+ applies it, and also readds the libidn addon.
+
+ 12 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125.ebuild:
+ Hack to allow USE=nptl when emerging a crosscompile glibc. More crosscompile
+ fixes for USE="nptl -nptlonly". Multilib fixes. Weworked sparc CHOST
+ setting logic to work better with crosscompiling.
+
+ 12 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125.ebuild:
+ Readd the 'kill -lgcc_eh hack' for static gccs. Cleaned up crosscompiling
+ support to properly use CHOST and CBUILD, so tc-getCC works right. Fixed
+ crosscompiling to mips-*
+
+ 12 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125.ebuild:
+ Added DEPEND for cross-compilation.
+
+ 11 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125.ebuild:
+ Always grab/unpack the linuxthreads tarball so the infopages can install
+ right. See bug #81661.
+
+ 10 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125.ebuild:
+ Added infopages. Fixed up cross-compilation for multilib CTARGETS. Don't
+ think we're multilib when crosscompiling for sparc-* or mips-*. Added
+ >=sys-devel/gcc-config-1.3.9 dependency for cross-compile multilib support.
+ Fixed some lib -> $(get_libdir) problems. This should be the final commit
+ before it can come out of package.mask.
+
+ 06 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125.ebuild:
+ Updated patchset for mips. Removed a few old sed calls from src_unpack which
+ don't do anything any more or were fixed in another way upstream. Adding
+ tested archs: ~mips, ~sparc, ~x86. Still in package.mask. Added linuxthreads
+ manpages.
+
+ 06 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20041102.ebuild:
+ Adding in a fix for people bit by the rsync bug #80591.
+
+*glibc-2.2.5-r10 (06 Feb 2005)
+
+ 06 Feb 2005; Mike Frysinger <vapier@gentoo.org> +glibc-2.2.5-r10.ebuild:
+ Clean up ebuild and move manpages/patches to our mirrors.
+
+ 05 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20050125.ebuild:
+ Multilibi/Cross-compile cleanups. Makde src_test the tests in both
+ linuxthreads and nptl builds.
+
+*glibc-2.3.4.20050125 (05 Feb 2005)
+
+ 05 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ +glibc-2.3.4.20050125.ebuild:
+ Version bump to upstream's 2.3.4 final release. Now using a patch tarball
+ instead of ${FILESDIR}. package.mask for testing. Patchset is subject to
+ change while it is in package.mask, so if you test it out during that time,
+ you might want to re-emerge it once it goes into ~arch.
+
+ 02 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20041102.ebuild:
+ Stable amd64.
+
+ 31 Jan 2005; <plasmaroo@gentoo.org> glibc-2.3.4.20041102.ebuild:
+ Marking stable for the 2005.0 IA64 2005.0 profile to work.
+
+ 12 Jan 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20040808-r1.ebuild, glibc-2.3.4.20041102.ebuild:
+ Just a few more changes that do nothing on current profiles... Changed
+ multilib-pkg to multilib-pkg-force. Added prep_ml_includes. Added inherit
+ multilib.
+
+ 11 Jan 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20040619-r2.ebuild, glibc-2.3.4.20040808-r1.ebuild,
+ glibc-2.3.4.20041102.ebuild:
+ Changed linux26-headers depend to accept linux-headers-2.6 as well.
+
+ 11 Jan 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20040808-r1.ebuild, glibc-2.3.4.20041102.ebuild:
+ A few more multilib fixes and install_locales now uses -j1 as it died on me
+ because of a parallel-make problem.
+
+ 11 Jan 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20040808-r1.ebuild, glibc-2.3.4.20041102.ebuild:
+ Fix bug #77476 for amd64 building x86 libc.
+
+ 10 Jan 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20040808-r1.ebuild, glibc-2.3.4.20041102.ebuild:
+ Support MULTILIB_ABIS. Build for all of them by default so multilib archs
+ can have a multilib c++ compiler without usign ugly hacks.
+
+ 04 Jan 2005; Mike Frysinger <vapier@gentoo.org>
+ +files/2.3.2/glibc-2.3.2-assert.patch, glibc-2.3.2-r12.ebuild:
+ Add patch from upstream to clean up assert.h.
+
+ 03 Jan 2005; Mike Frysinger <vapier@gentoo.org>
+ +files/2.3.2/glibc-2.3.2-alpha-sysdeps.patch, glibc-2.3.2-r12.ebuild:
+ Backport USE=userlocale support. Fix building on alpha with 2.6 headers with
+ patch from upstream #52764 by 0g.
+
+ 23 Dec 2004; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20040808-r1.ebuild, glibc-2.3.4.20041102.ebuild:
+ Added support for ${ABI} and if it's not set, we do sll ${MULTILIB_ABIS}.
+ This is restricted to the sparc64-multilib PROFILE_ARCH.
+
+ 13 Dec 2004; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20040808-r1.ebuild, glibc-2.3.4.20041102.ebuild:
+ Added ~sparc to glibc-2.3.4.20040808-r1, but it is masked in the sparc32 and
+ sparc64 PROFILE_ARCHs. Older versions have v9a assembly code that doesn't
+ work with newer binutils. Glibc also isn't quite smart enough to realize
+ that it has v9a assembly, so if it uses the gcc default (v9), it will fail,
+ so we force v9a as flags. I also added the updated logic to 2.3.4.20041102,
+ but as I haven't tested it yet, it hasn't been marked.
+
+ 05 Dec 2004; <solar@gentoo.org> glibc-2.3.4.20041102.ebuild:
+ - q/a - missed glibc-2.3.4.20041102 in last fix
+
+ 05 Dec 2004; <solar@gentoo.org> glibc-2.3.4.20040808-r1.ebuild:
+ - q/a fix - hppa is the only arch with an upwords growing stack and thus can
+ not use ssp vs being the only arch that can use ssp
+
+ 22 Nov 2004; Tom Gall <tgall@gentoo.org> glibc-2.3.4.20041102.ebuild:
+ stable on ppc64
+
+ 12 Nov 2004; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.3.4.20040619-r2.ebuild:
+ Tricksy patchesess, mispellses thems we does.
+
+ 11 Nov 2004; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.3.4.20040619-r2.ebuild:
+ Forgot to rename a patch in the ebuild.
+
+ 10 Nov 2004; Joshua Kinard <kumba@gentoo.org> glibc-2.3.4.20041102.ebuild:
+ Removed line referencing a uneeded patch for mips.
+
+ 10 Nov 2004; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.3.4.20040808-r1.ebuild:
+ Masking via keywords directly. 2.3.4.20041102 works for o32 mips, n32 is still
+ experimental and broken, but I don't think it can get much more broken than it
+ is already. Winging it.
+
+ 10 Nov 2004; Joshua Kinard <kumba@gentoo.org>
+ +files/2.3.3/glibc-2.3.3-mips-addabi.diff,
+ +files/2.3.3/glibc-2.3.3-mips-nolib3264.diff,
+ +files/2.3.3/glibc-2.3.3-mips-semtimedop.diff,
+ +files/2.3.3/glibc-2.3.3-mips-syscall.h.diff,
+ +files/2.3.3/glibc-2.3.3-mips-sysify.diff, -files/2.3.3/mips-addabi.diff,
+ -files/2.3.3/mips-nolib3264.diff, -files/2.3.3/mips-syscall.h.diff,
+ -files/2.3.3/mips-sysify.diff, -files/2.3.3/semtimedop.diff,
+ +files/2.3.4/glibc-2.3.4-mips-add-missing-sgidefs_h.patch,
+ +files/2.3.4/glibc-2.3.4-mips-prot_grows-undefined.patch,
+ +files/2.3.4/glibc-2.3.4-mips-rtld_deepbind-undefined.patch,
+ +files/2.3.4/glibc-2.3.4-mips-sysdep-cancel.diff,
+ +files/2.3.4/glibc-2.3.4-mips-update-__throw.patch,
+ -files/2.3.4/mips-sysdep-cancel.diff, glibc-2.3.3.20040420-r2.ebuild,
+ glibc-2.3.4.20040619-r2.ebuild, glibc-2.3.4.20040808-r1.ebuild,
+ glibc-2.3.4.20041021.ebuild, glibc-2.3.4.20041102.ebuild:
+ Renamed a few patches to better identify them for mips, masked 2.3.4.20041021,
+ and added a series of patches to 2.3.4.20041102 from libc-alpha ML that allows
+ it to build and usable. Also re-added use of the librt patchs to fix a
+ run-time error.
+
+ 05 Nov 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20041102.ebuild:
+ keywording as ~amd64, ~ppc64, ~ia64, and ~x86. added ~ppc keyword thanks to
+ testing by morfic. hopefully this will be the last new revision for a bit.
+
+ 05 Nov 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20041021.ebuild,
+ glibc-2.3.4.20041102.ebuild:
+ made the ebuild die if nptlonly is in USE without nptl also being in USE
+
+*glibc-2.3.4.20041102 (04 Nov 2004)
+
+ 04 Nov 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-features-header-fix.patch,
+ +files/2.3.4/glibc-2.3.4-fedora-branch-nomalloccheck.patch,
+ +files/2.3.4/glibc-2.3.4-mdns-resolver-20041102.diff,
+ +glibc-2.3.4.20041102.ebuild:
+ fedora-branch update. converted version checks to versionator.eclass. moved
+ all instances of CCHOST over to CTARGET. added the ability to disable the
+ malloc check at build-time with USE=nomalloccheck. remove
+ /$(get_libdir)/tls/ in preinst if migrating from nptl to nptlonly (bug
+ 69258)
+
+ 31 Oct 2004; Tom Gall <tgall@gentoo.org> glibc-2.3.4.20041021.ebuild:
+ build fix for ppc64
+
+ 29 Oct 2004; Travis Tilley <lv@gentoo.org>
+ -files/2.3.4/glibc-2.3.3-mdns-resolver.diff,
+ +files/2.3.4/glibc-2.3.3-mdns-resolver2.diff, +files/2.3.4/host.conf,
+ glibc-2.3.4.20041021.ebuild:
+ updated the multicast dns patch from suse and added an example host.conf that
+ disables it by default. see bug 67385 for more info
+
+ 29 Oct 2004; Daniel Drake <dsd@gentoo.org> glibc-2.3.4.20041021.ebuild:
+ Add exit condition to prevent more people running into bug 69258
+
+ 27 Oct 2004; Travis Tilley <lv@gentoo.org> -glibc-2.3.4.20041006.ebuild,
+ glibc-2.3.4.20041021.ebuild:
+ keyworded 2.3.4.10041021 as testing on amd64, x86, and ppc64. removed the 1006
+ snapshot due to bug 67603, which 1021 fixes.
+
+*glibc-2.3.4.20041021 (26 Oct 2004)
+
+ 26 Oct 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-fedora-branch-no-force-nontls.patch,
+ +files/2.3.4/glibc-2.3.4-fedora-branch-no-libnoversion.patch,
+ glibc-2.3.4.20041006.ebuild, +glibc-2.3.4.20041021.ebuild:
+ updated to the fedora-branch snap in fedora's 2.3.3-73 src rpm and removed the
+ glibc 2.0 compat (libNoVersion) changes
+
+ 19 Oct 2004; Tom Gall <tgall@gentoo.org> glibc-2.3.4.20040808-r1.ebuild:
+ sane fix for problem mentioned below
+
+ 16 Oct 2004; Tom Gall <tgall@gentoo.org> glibc-2.3.4.20040808-r1.ebuild:
+ emergancy fix, code from lv's change on 10/13 h0rked up ppc64 royally
+ and given this is the ppc64 stable version, I'm going to rush this in
+ to avoid the angry mob that's amassing outside my window
+
+ 16 Oct 2004; Luca Barbato <lu_zero@gentoo.org>
+ glibc-2.3.4.20041006.ebuild:
+ Marked -ppc has proven to subtle flaw code, probably inline optimizations
+
+ 14 Oct 2004; Guy Martin <gmsoft@gentoo.org> glibc-2.3.4.20041006.ebuild:
+ Updated hppa patches to 2004-09-30. Fixed unpacking (#67503). Marked -hppa
+ since it was never tested and problems where reported on the parisc mailing
+ list.
+
+ 13 Oct 2004; Guy Martin <gmsoft@gentoo.org> glibc-2.3.4.20040808-r1.ebuild:
+ Moved Lv's latest patch into do_arch{ia64|amd64}_patches() to avoid breakage
+ for other arches.
+
+ 13 Oct 2004; Guy Martin <gmsoft@gentoo.org> glibc-2.3.4.20040808-r1.ebuild:
+ Added unset of EPATCH_OPTS in do_arch_hppa_patches to fix patching at later
+ stage.
+
+ 12 Oct 2004; Guy Martin <gmsoft@gentoo.org> glibc-2.3.4.20040808-r1.ebuild:
+ Stable on hppa.
+
+ 13 Oct 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040808-r1.ebuild,
+ glibc-2.3.4.20041006.ebuild:
+ it seems the strange libpthread-not-installed bug was an ebuild quirk and not
+ a portage quirk. it should hopefully be fixed now. i've also added a safety
+ function to 2.3.4.20040808 and 2.3.4.20041006 that will prevent glibc from
+ installing if libpthread is missing, which will likely be expanded further in
+ the future. re-keyworded 2.3.4.20041006 ~amd64.
+
+ 12 Oct 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20041006.ebuild:
+ keyworded -amd64 for libpthread bug.
+
+ 11 Oct 2004; <solar@gentoo.org> glibc-2.3.4.20040808-r1.ebuild:
+ marked 20040808-r1 stable x86 for 2004.3
+
+ 11 Oct 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20041006.ebuild:
+ re-keyword as testing for x86, amd64, hppa, ppc64, and ppc
+
+ 10 Oct 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-res_init.patch, glibc-2.3.4.20040808-r1.ebuild:
+ added fix for a relocation error on at least amd64 and ia64. see
+ http://sources.redhat.com/ml/libc-alpha/2004-08/msg00076.html for more info.
+ closes bug 66396.
+
+*glibc-2.3.2-r12 (07 Oct 2004)
+
+ 07 Oct 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.3/glibc-2.3.3-tempfile.patch, -glibc-2.3.2-r11.ebuild,
+ +glibc-2.3.2-r12.ebuild, -glibc-2.3.3.20040420-r1.ebuild,
+ +glibc-2.3.3.20040420-r2.ebuild, -glibc-2.3.4.20040619-r1.ebuild,
+ +glibc-2.3.4.20040619-r2.ebuild, +glibc-2.3.4.20040808-r1.ebuild,
+ -glibc-2.3.4.20040808.ebuild, glibc-2.3.4.20041006.ebuild:
+ added a patch to fix insecure tempfile handling, closes bug 66358
+
+*glibc-2.3.4.20041006 (07 Oct 2004)
+
+ 07 Oct 2004; Travis Tilley <lv@gentoo.org> -glibc-2.3.4.20041002.ebuild,
+ +glibc-2.3.4.20041006.ebuild:
+ fixed a small bootstrap timezone bug and the group permissions bug (66392)
+
+ 04 Oct 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.4/glibc-2.3.3-mdns-resolver.diff, glibc-2.3.4.20041002.ebuild:
+ added a patch from suse for multicast dns (rendezvous/howl) support, taken
+ from their glibc-2.3.3-63.src.rpm. closes bug 66295
+
+*glibc-2.3.4.20041002 (04 Oct 2004)
+
+ 04 Oct 2004; Travis Tilley <lv@gentoo.org> -glibc-2.3.4.20040928.ebuild,
+ +glibc-2.3.4.20041002.ebuild:
+ updated to the latest fedora-branch snapshot. among other things, this fixes
+ the pthread_mutex_timedwait bug detailed at
+ http://sources.redhat.com/bugzilla/show_bug.cgi?id=417
+
+ 01 Oct 2004; Joshua Kinard <kumba@gentoo.org> glibc-2.3.4.20040808.ebuild:
+ Added ~mips to keywords. Only n32 users should see this upgrade, but ONLY if
+ using the newer cascading profiles.
+
+ 01 Oct 2004; Joshua Kinard <kumba@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-mips-generate-syscall_h.patch,
+ glibc-2.3.4.20040808.ebuild:
+ Added patch for mips that properly generates bits/syscall.h when using 2.6.x
+ headers. Only enabled for n32 use currently.
+
+ 01 Oct 2004; Luca Barbato <lu_zero@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-getcontext.patch, glibc-2.3.4.20040808.ebuild:
+ Fixed getcontext behaviour, the 20040928 has that fixed already
+
+ 29 Sep 2004; Mike Frysinger <vapier@gentoo.org> files/nscd,
+ glibc-2.2.5-r9.ebuild, glibc-2.3.2-r11.ebuild,
+ glibc-2.3.3.20040420-r1.ebuild, glibc-2.3.4.20040619-r1.ebuild,
+ glibc-2.3.4.20040808.ebuild, glibc-2.3.4.20040928.ebuild:
+ Install the nscd init.d script #43076 by Rui Malheiro.
+
+*glibc-2.3.4.20040928 (28 Sep 2004)
+
+ 28 Sep 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-dl_execstack-PaX-support.patch,
+ +files/2.3.4/glibc-sec-hotfix-20040916.patch, +glibc-2.3.4.20040928.ebuild:
+ new snapshot, masked -*, with fedora-branch patches. made nptl-enabled glibc
+ behave like the glibc in most other distributions, with nptl libs in lib/tls
+ and a fallback linuxthreads version in lib. If the linuxthreads fallback isnt
+ needed/wanted, you can revert to the old behavior by adding nptlonly to USE to
+ save yourself some compile time.
+
+ 21 Sep 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040808.ebuild:
+ stable on amd64
+
+ 21 Sep 2004; Travis Tilley <lv@gentoo.org>
+ -files/2.3.4/glibc-2.3.4-fix-broken-ldd.patch,
+ +files/2.3.4/glibc-2.3.4-nptl-pthread.h-g++-fix.patch,
+ glibc-2.3.4.20040808.ebuild, -glibc-2.3.4.20040918.ebuild:
+ removed 0918 snapshot, it will occasionally cause processes to not return.
+ fixes bug 64787. backported the necessary nptl pthread header fix from it to
+ 0808.
+
+ 21 Sep 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-fix-broken-ldd.patch, glibc-2.3.4.20040918.ebuild:
+ added a fix for the new snapshot's broken ldd. fixes bug 64732.
+
+ 19 Sep 2004; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.3.4.20040619-r1.ebuild:
+ QA fix: Added n32/n64 to IUSE.
+
+*glibc-2.3.4.20040918 (19 Sep 2004)
+
+ 18 Sep 2004; Travis Tilley <lv@gentoo.org> -glibc-2.3.4.20040916.ebuild,
+ +glibc-2.3.4.20040918.ebuild:
+ new snapshot, fixes building with 2.4. go team upstream support.
+
+ 17 Sep 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040916.ebuild:
+ removed keywords for archs that still use a 2.4 kernel, since recent nscd
+ changes require 2.6 headers
+
+*glibc-2.3.4.20040916 (16 Sep 2004)
+
+ 16 Sep 2004; Travis Tilley <lv@gentoo.org>
+ +files/glibc-sec-hotfix-20040916.patch, +glibc-2.3.4.20040916.ebuild:
+ new snapshot. among other things it fixes a bug with pthreads.h being unable
+ to be parsed by any version of GNU C++.
+
+ 06 Sep 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.4/glibc-gentoo-libdir.patch, glibc-2.3.4.20040808.ebuild:
+ added $(get_libdir) support for amd64 and x86 and changed locale building
+ logic to build user-specified locales only if USE=userlocales. fixes bug 62081
+
+ 06 Sep 2004; <solar@gentoo.org> files/glibc-sec-hotfix-20040804.patch,
+ glibc-2.3.3.20040420-r1.ebuild, glibc-2.3.4.20040619-r1.ebuild:
+ added LD_TRACE_PRELINKING to list of sysdeps/generic/unsecvars.h to avoid info
+ leaking with suid apps
+
+ 06 Sep 2004; Ciaran McCreesh <ciaranm@gentoo.org>
+ glibc-2.3.4.20040619-r1.ebuild, glibc-2.3.4.20040808.ebuild:
+ Switch to use epause and ebeep, bug #62950
+
+ 31 Aug 2004; Gustavo Zacarias <gustavoz@gentoo.org>
+ glibc-2.3.3.20040420-r1.ebuild:
+ Stable on sparc
+
+ 30 Aug 2004; Guy Martin <gmsoft@gentoo.org> glibc-2.3.4.20040808.ebuild:
+ Updated hppa patches to 2004-08-24.
+
+ 27 Aug 2004; Travis Tilley <lv@gentoo.org> -glibc-2.3.4.20040605.ebuild:
+ removed old ebuild
+
+ 27 Aug 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040619-r1.ebuild,
+ glibc-2.3.4.20040808.ebuild:
+ removed broken downgrade check, removed unneeded hardened gcc fixes, added
+ glibc-2.3.4-ld.so-brk-fix.patch to glibc-2.3.4.20040619-r1
+
+ 26 Aug 2004; Tom Gall <tgall@gentoo.org> glibc-2.3.4.20040808.ebuild:
+ stable on ppc64
+
+ 26 Aug 2004; Luca Barbato <lu_zero@gentoo.org> glibc-2.3.4.20040808.ebuild:
+ Marked ~ppc
+
+ 18 Aug 2004; Ferris McCormick <fmccor@gentoo.org>
+ glibc-2.3.3.20040420-r1.ebuild:
+ Add 'hardened' to the IUSE list. The ebuild uses it on sparc as an indicator
+ that the compiler was built hardened, and so special care must be taken in the
+ build of the library to avoid SegFaults from the startup routines crt1.o &
+ friends. The main purpose for this change is to emphasize the point for anyone
+ building the library on sparc with hardened gcc; there is no change in
+ functionality.
+
+ 17 Aug 2004; Luca Barbato <lu_zero@gentoo.org>
+ glibc-2.3.4.20040619-r1.ebuild:
+ Marked ~ppc
+
+ 16 Aug 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-ld.so-brk-fix.patch, glibc-2.3.4.20040808.ebuild:
+ added ld.so brk patch, which should fix the upstream bug detailed at
+ http://sources.redhat.com/bugzilla/show_bug.cgi?id=227
+
+ 15 Aug 2004; Travis Tilley <lv@gentoo.org> -glibc-2.3.3_pre20040207.ebuild:
+ removed ebuild now that alpha and ia64 dont use it
+
+ 15 Aug 2004; Aron Griffis <agriffis@gentoo.org>
+ glibc-2.3.3_pre20040207.ebuild:
+ Remove ~alpha and ~ia64 from glibc-2.3.3_pre20040207. We'll stick with stable
+ on those arches until we get new livecds released.
+
+ 15 Aug 2004; Travis Tilley <lv@gentoo.org> -glibc-2.3.4.20040605-r1.ebuild,
+ -glibc-2.3.4.20040619.ebuild:
+ cleanup unneeded 2.3.4 ebuilds
+
+ 15 Aug 2004; <solar@gentoo.org> glibc-2.3.3.20040420.ebuild,
+ glibc-2.3.3_pre20040420.ebuild:
+ removed a few unneeded ebuilds
+
+ 12 Aug 2004; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.3.4.20040619-r1.ebuild:
+ Bumped glibc-2.3.4.20040619-r1 to stable for the hotfix (Bug #59526).
+
+ 11 Aug 2004; Gustavo Zacarias <gustavoz@gentoo.org>
+ glibc-2.3.3.20040420-r1.ebuild:
+ Keyworded ~sparc
+
+ 11 Aug 2004; Ilya A. Volynets-Evenbach <iluxa@gentoo.org>
+ glibc-2.3.4.20040808.ebuild:
+ Latest GLIBC cvs has most of what is needed for N32/N64
+
+ 11 Aug 2004; Michael Hanselmann <hansmi@gentoo.org>
+ glibc-2.3.3.20040420-r1.ebuild:
+ Stable on ppc.
+
+ 11 Aug 2004; Bryan Østergaard <kloeri@gentoo.org> glibc-2.3.2-r11.ebuild:
+ Stable on alpha, bug 59526.
+
+ 09 Aug 2004; Guy Martin <gmsoft@gentoo.org> glibc-2.3.2-r11.ebuild:
+ Stable on hppa.
+
+*glibc-2.3.3.20040420-r1 (09 Aug 2004)
+
+ 09 Aug 2004; Brandon Hale <tseng@gentoo.org>
+ +glibc-2.3.3.20040420-r1.ebuild:
+ Make a 20040420-r1 with the patch for x86 stableage.
+
+ 09 Aug 2004; Gustavo Zacarias <gustavoz@gentoo.org> glibc-2.3.2-r11.ebuild:
+ Stable on sparc wrt #59526
+
+ 08 Aug 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040605-r1.ebuild,
+ glibc-2.3.4.20040619-r1.ebuild, glibc-2.3.4.20040619.ebuild,
+ glibc-2.3.4.20040808.ebuild:
+ makecheck fails with sandbox enabled, so i've made the ebuilds die right away
+ if makecheck is in USE and sandbox is in FEATURES. this cannot be fixed by
+ disabling the sandbox from within the ebuild, as the bug occurs if sandbox is
+ loaded at all.
+
+ 08 Aug 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040808.ebuild:
+ made --enable-bind-now the default for all users instead of just hardened users
+
+*glibc-2.3.4.20040808 (08 Aug 2004)
+
+ 08 Aug 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.4/glibc-2.3.4.20040808-i386-got-fix.diff,
+ +glibc-2.3.4.20040808.ebuild:
+ new snapshot. added function to fix lib64 symlinks on amd64 and moved to using
+ branch updates against 2.3.3
+
+ 07 Aug 2004; <agriffis@gentoo.org> glibc-2.3.2-r11.ebuild:
+ stable on ia64 #59526
+
+ 08 Aug 2004; Luca Barbato <lu_zero@gentoo.org>
+ glibc-2.3.4.20040619-r1.ebuild:
+ Removed a patch
+
+ 07 Aug 2004; <solar@gentoo.org> glibc-2.3.4.20040619-r1.ebuild,
+ files/2.3.3/ssp.c:
+ added some misc #ifdef's to the ssp.c for use with other libcs
+
+ 06 Aug 2004; <solar@gentoo.org> glibc-2.3.4.20040619-r1.ebuild:
+ don't disable relro completly when not using hardened as it's still a valid
+ toolchain option
+
+ 06 Aug 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040619-r1.ebuild:
+ stable on amd64 for security fix
+
+ 05 Aug 2004; Tom Martin <slarti@gentoo.org> glibc-2.3.2-r11.ebuild:
+ Stable on amd64 for bug 59526.
+
+*glibc-2.3.2-r11 (05 Aug 2004)
+
+ 05 Aug 2004; Mike Frysinger <vapier@gentoo.org> +glibc-2.3.2-r11.ebuild:
+ Add hotfix for security issue relating to LD_DEBUG and suid binaries #59526.
+
+*glibc-2.3.4.20040619-r1 (04 Aug 2004)
+
+ 04 Aug 2004; Brandon Hale <tseng@gentoo.org>
+ +files/glibc-sec-hotfix-20040804.patch, +glibc-2.3.4.20040619-r1.ebuild:
+ Add hotfix for security issue relating to LD_DEBUG and suid binaries #59526.
+
+ 03 Aug 2004; Michael Sterrett <mr_bones_@gentoo.org>
+ glibc-2.3.4.20040605.ebuild:
+ fix use invocation
+
+ 02 Aug 2004; Mike Frysinger <vapier@gentoo.org> glibc-2.2.5-r9.ebuild,
+ glibc-2.3.2-r10.ebuild, glibc-2.3.4.20040619.ebuild:
+ Dont strip libthread_db and libpthread since it breaks gdb debugging badly
+ #46186.
+
+ 26 Jul 2004; Michael Sterrett <mr_bones_@gentoo.org>
+ glibc-2.3.4.20040619.ebuild:
+ fix use invocation
+
+ 22 Jul 2004; Guy Martin <gmsoft@gentoo.org> glibc-2.3.4.20040619.ebuild:
+ Added hardened stuff for hppa from pappy.
+
+ 21 Jul 2004; Michael Sterrett <mr_bones_@gentoo.org>
+ glibc-2.3.3.20040420.ebuild:
+ use fewer shells
+
+ 21 Jul 2004; Guy Martin <gmsoft@gentoo.org> glibc-2.3.4.20040619:
+ Added patches for hppa.
+
+ 20 Jul 2004; Alexander Gabert <pappy@gentoo.org>
+ glibc-2.3.3.20040420.ebuild:
+ added sparc fix for glibc PIC building
+
+ 14 Jul 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.3.20040420.ebuild,
+ glibc-2.3.4.20040605-r1.ebuild, glibc-2.3.4.20040619.ebuild:
+ change pentium-m fix to use -mtune=pentium3 instead of -march=pentium4. that
+ should finally fix bug 55696, or at least work around it until upstream has a
+ proper fix
+
+ 11 Jul 2004; Tom Gall <tgall@gentoo.org> glibc-2.3.4.20040619.ebuild,
+ glibc-2.3.4.20040605.ebuild:
+ let's try the right section and gussy it up a bit
+
+ 11 Jul 2004; Tom Gall <tgall@gentoo.org> glibc-2.3.4.20040619.ebuild:
+ fix bug #56615, ld.so.1 prob on ppc64
+
+ 11 Jul 2004; Tom Gall <tgall@gentoo.org> glibc-2.3.4.20040605.ebuild,
+ glibc-2.3.4.20040619.ebuild:
+ fix bug #56615, ld.so.1 prob on ppc64
+
+ 11 Jul 2004; Joshua Kinard <kumba@gentoo.org> glibc-2.3.3.20040420.ebuild:
+ Commented out an epatch line referencing a (currently) non-existant patch.
+
+ 09 Jul 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040605-r1.ebuild,
+ glibc-2.3.4.20040605.ebuild, glibc-2.3.4.20040619.ebuild:
+ changed sys-kernel/linux-headers dependency for nptl to linux26-headers
+
+ 09 Jul 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.3.20040420.ebuild,
+ glibc-2.3.4.20040605-r1.ebuild, glibc-2.3.4.20040619.ebuild:
+ change -march=pentium-m to -march=pentium4 to work around bug 55696 until
+ upstream has a fix
+
+ 08 Jul 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.1-r5.ebuild,
+ glibc-2.3.2-r10.ebuild, glibc-2.3.2-r2.ebuild, glibc-2.3.2-r9.ebuild,
+ glibc-2.3.3.20040420.ebuild, glibc-2.3.3_pre20040207.ebuild,
+ glibc-2.3.3_pre20040420.ebuild, glibc-2.3.4.20040605-r1.ebuild,
+ glibc-2.3.4.20040605.ebuild, glibc-2.3.4.20040619.ebuild:
+ unset LD_RUN_PATH to fix bug 19043
+
+ 08 Jul 2004; Travis Tilley <lv@gentoo.org> -glibc-2.3.3_pre20031210.ebuild,
+ -glibc-2.3.3_pre20040117-r1.ebuild, -glibc-2.3.3_pre20040117.ebuild,
+ -glibc-2.3.3_pre20040529.ebuild:
+ removed old _pre ebuilds, except for 2.3.3_pre20040207 which is needed for
+ ~alpha and 2.3.3_pre20040420 which is needed for ~sparc.
+
+ 07 Jul 2004; Joshua Kinard <kumba@gentoo.org> glibc-2.3.3.20040420.ebuild:
+ Marked stable on mips.
+
+ 05 Jul 2004; Marius Mauch <genone@gentoo.org> glibc-2.2.5-r9.ebuild,
+ glibc-2.3.1-r5.ebuild, glibc-2.3.2-r10.ebuild, glibc-2.3.2-r2.ebuild,
+ glibc-2.3.2-r9.ebuild, glibc-2.3.3.20040420.ebuild,
+ glibc-2.3.3_pre20031210.ebuild, glibc-2.3.3_pre20040117-r1.ebuild,
+ glibc-2.3.3_pre20040117.ebuild, glibc-2.3.3_pre20040207.ebuild,
+ glibc-2.3.3_pre20040420.ebuild, glibc-2.3.3_pre20040529.ebuild,
+ glibc-2.3.4.20040605-r1.ebuild, glibc-2.3.4.20040605.ebuild,
+ glibc-2.3.4.20040619.ebuild:
+ added a downgrade check to pkg_setup for bug #25230.
+
+ 27 Jun 2004; Aron Griffis <agriffis@gentoo.org> glibc-2.3.1-r5.ebuild,
+ glibc-2.3.2-r10.ebuild, glibc-2.3.2-r2.ebuild, glibc-2.3.2-r9.ebuild,
+ glibc-2.3.3.20040420.ebuild, glibc-2.3.3_pre20031210.ebuild,
+ glibc-2.3.3_pre20040117-r1.ebuild, glibc-2.3.3_pre20040117.ebuild,
+ glibc-2.3.3_pre20040207.ebuild, glibc-2.3.3_pre20040420.ebuild,
+ glibc-2.3.3_pre20040529.ebuild, glibc-2.3.4.20040605-r1.ebuild,
+ glibc-2.3.4.20040605.ebuild, glibc-2.3.4.20040619.ebuild:
+ QA - fix use invocation
+
+ 22 Jun 2004; <solar@gentoo.org> glibc-2.2.5-r9.ebuild,
+ glibc-2.3.1-r5.ebuild, glibc-2.3.2-r10.ebuild, glibc-2.3.2-r2.ebuild,
+ glibc-2.3.2-r9.ebuild, glibc-2.3.3.20040420.ebuild,
+ glibc-2.3.3_pre20031210.ebuild, glibc-2.3.3_pre20040117-r1.ebuild,
+ glibc-2.3.3_pre20040117.ebuild, glibc-2.3.3_pre20040207.ebuild,
+ glibc-2.3.3_pre20040420.ebuild, glibc-2.3.3_pre20040529.ebuild,
+ glibc-2.3.4.20040605-r1.ebuild, glibc-2.3.4.20040605.ebuild,
+ glibc-2.3.4.20040619.ebuild:
+ Added debug to IUSE for all glibc ebuilds, imported
+ pie-nptl-sysdep-shared.patch from bug 52254 #c13
+
+*glibc-2.3.4.20040619 (20 Jun 2004)
+
+ 20 Jun 2004; Martin Schlemmer <azarah@gentoo.org>
+ +glibc-2.3.4.20040619.ebuild:
+ Update snapshot to 20040619. Add BRANCH_UPDATE support back, as it appears
+ there will be again official releases, and the snapshot is much less to
+ download for future updates to 2.3.4 ... It should be noted that
+ non-branch-update support was not tested fully, so there might be bugs on next
+ stable upstream release. Also add back testing of linux-headers version, as
+ well as kernel version for NPTL support. Remove stale info pages, else we have
+ ~40 unused files installed. Generate updated manpages tarball, and move it to
+ mirrors rather.
+
+ 19 Jun 2004; <malc@gentoo.org> glibc-2.3.4.20040605.ebuild:
+ Mark stable for release on amd64. Complaints to lv@gentoo.org, he made me do it ;-)
+
+ 17 Jun 2004; Luca Barbato <lu_zero@gentoo.org>
+ glibc-2.3.4.20040605-r1.ebuild:
+ Ported the fix to this ebuild
+
+ 16 Jun 2004; Luca Barbato <lu_zero@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-nptl-altivec.patch, glibc-2.3.4.20040605.ebuild:
+ Added a patch for ppc, pending some tests
+
+ 13 Jun 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-hardened-sysdep-shared.patch,
+ glibc-2.3.4.20040605-r1.ebuild:
+ added potential fix for building nptl with a hardened toolchain and did a few
+ more cleanups in the ebuild, like moving ssp-related patches into their own
+ function.
+
+ 12 Jun 2004; Tom Gall <tgall@gentoo.org> glibc-2.3.4.20040605.ebuild
+ stable on ppc64 (yeah!)
+
+ 12 Jun 2004; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.3.4.20040605-r1.ebuild:
+ - Clean up the usage of paranthesis around groups
+ of use flag checks (unecessarily invokes a subshell)
+ - And allow a sed command that unconditionally disables
+ relro for ld.so to fire (it previously only fired if
+ use build == true or use build == false AND
+ use hardened == true)
+ - Apply one of the mips patches only if use n32 or
+ use n64 is true
+ - Add ~mips to KEYWORDS
+
+ 11 Jun 2004; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.3.4.20040605-r1.ebuild:
+ More cleanups: move strip-flags and friends into setup_flags where they belong.
+
+ 11 Jun 2004; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.3.4.20040605-r1.ebuild:
+ Fixup sparc bits in setup_flags.
+
+*glibc-2.3.4.20040605-r1 (11 Jun 2004)
+
+ 11 Jun 2004; Joshua Kinard <kumba@gentoo.org>
+ +glibc-2.3.4.20040605-r1.ebuild:
+ MASSIVE cleanup to glibc's ebuild. Starting with 2.3.4.20040605, the following
+ changes were made:
+ - Moved PaX patches into its own function
+ - Moved all arch-specific patches into their own arch-specific
+ functions
+ - Archs that lack any patches have empty arch-specific functions
+ for later use
+ - Hardened/relro/nptl related tweaks moved into its own function
+ - Cleaned up 'if' conditionals and some spacing
+ - Added some missing tweaks that fixed an issue on non-hardened
+ toolchains w/ nptl where the build would segfault during the
+ sunrpc subsection of glibc
+
+ 10 Jun 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040605.ebuild:
+ passes "make check" on ppc64, adding ~ppc64 keyword
+
+ 10 Jun 2004; Stephen P. Becker <geoman@gentoo.org>
+ glibc-2.3.3_pre20040529.ebuild:
+ removed ~mips keyword
+
+ 09 Jun 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040605.ebuild:
+ the 2.3.4 release needs pre-generated info pages to bootstrap without perl,
+ unlike previous releases that just needed pre-generated man pages. this
+ release is now usable from stage1.
+
+ 08 Jun 2004; <solar@gentoo.org> glibc-2.3.3.20040420.ebuild:
+ glibc-2.3.3.20040420 marked stable for upcoming release
+
+ 07 Jun 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040605.ebuild:
+ glibc 2.3.4.20040605 should now pass all tests with USE="-nptl makecheck" on
+ at least amd64. nptl still fails.
+
+ 06 Jun 2004; <solar@gentoo.org> glibc-2.3.3.20040420.ebuild:
+ patch source was incorrect for branch update.. bug #53107
+
+ 06 Jun 2004; Brandon Hale <tseng@gentoo.org> glibc-2.3.3.20040420.ebuild:
+ Quick fix, epatch for the branch-update was still using the now incorrect PV.
+
+ 06 Jun 2004; Brandon Hale <tseng@gentoo.org> -glibc-2.3.2-r11.ebuild,
+ -glibc-2.3.2-r3.ebuild, -glibc-2.3.3_pre20040420-r1.ebuild:
+ Cleanup obsoleted versions.
+
+*glibc-2.3.3.20040420 (06 Jun 2004)
+
+ 06 Jun 2004; Brandon Hale <tseng@gentoo.org> +glibc-2.3.3.20040420.ebuild:
+ Update 20040420 snapshot to new naming scheme, add to ~x86.
+
+ 05 Jun 2004; Joshua Kinard <kumba@gentoo.org> glibc-2.3.4.20040605.ebuild:
+ for sparc64 systems, export CCHOST as well as CHOST so glibc configures itself
+ properly.
+
+*glibc-2.3.4.20040605 (05 Jun 2004)
+
+ 05 Jun 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.4/glibc-execstack-disable.patch, -glibc-2.3.4.20040602.ebuild,
+ +glibc-2.3.4.20040605.ebuild:
+ new snapshot. it seems i caught Ulrich Drepper in the middle of a commit with
+ my last snapshot, breaking nptl on x86 and possibly elsewhere.
+
+*glibc-2.3.2-r11 (05 Jun 2004)
+
+ 05 Jun 2004; Brandon Hale <tseng@gentoo.org>
+ +files/2.3.2/glibc-2.3.2-frandom-detect.patch,
+ +files/2.3.2/glibc-2.3.2-got-fix.diff,
+ +files/2.3.2/glibc-2.3.2-owl-malloc-unlink-sanity-check.diff,
+ +files/2.3.2/glibc-2.3.2-propolice-guard-functions-v3.patch,
+ +files/2.3.2/glibc-2.3.2-pt_pax.diff,
+ +files/2.3.2/glibc-2.3.2-signal-ssp.diff, +files/2.3.2/ssp.c,
+ +glibc-2.3.2-r11.ebuild:
+ Create an -r11 (-*) with backported patches from 2.3.3_pre, namely owl-unlink
+ checking and updated SSP.
+
+ 04 Jun 2004; Ilya A. Volynets-Evenbach <iluxa@gentoo.org>
+ +files/2.3.4/mips-sysdep-cancel.diff, glibc-2.3.4.20040602.ebuild:
+ Finalize n32 fixes (n64 is yet to be tested, but should be
+ piece of cake now)
+ Add ALT_HEADERS variable, which will allows us to point glibc
+ to something other then /usr/lib. This will be needed for
+ x-compilation support.
+
+ 04 Jun 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.3_pre20040529.ebuild:
+ stable on amd64
+
+ 04 Jun 2004; Ilya A. Volynets-Evenbach <iluxa@gentoo.org>
+ glibc-2.3.3_pre20040420-r1.ebuild, glibc-2.3.4.20040602.ebuild:
+ glibc is not using n32/n64 use flags (yet)
+
+ 04 Jun 2004; Ilya A. Volynets-Evenbach <iluxa@gentoo.org>
+ glibc-2.3.4.20040602.ebuild:
+ Mark glibc-2.3.4 as ~mips
+
+ 03 Jun 2004; Ilya A. Volynets-Evenbach <iluxa@gentoo.org>
+ +files/2.3.3/mips-addabi.diff, +files/2.3.3/mips-syscall.h.diff,
+ +files/2.3.3/mips-sysify.diff, +files/2.3.3/semtimedop.diff,
+ glibc-2.3.3_pre20040420-r1.ebuild, glibc-2.3.3_pre20040529.ebuild,
+ glibc-2.3.4.20040602.ebuild:
+ Add n32/n64 patches. Some of them are not quite ready, but it
+ shouldn't make any matters worse - o32 should not be affected
+ in any way.
+ Also add ${CHOST} and ${CCHOST} to configure (--build/--host)
+
+ 03 Jun 2004; Tom Gall <tgall@gentoo.org> glibc-2.3.3_pre20040529.ebuild:
+ stable on ppc64
+
+ 03 Jun 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.4.20040602.ebuild:
+ fixed the ebuild to install all locales if doing a make check and repaired the
+ tarball so that the info pages arent broken
+
+ 03 Jun 2004; Jason Eric Huebel <jhuebel@gentoo.org>
+ glibc-2.3.3_pre20040529.ebuild:
+ fixed header dependency based on NPTL use flag
+
+*glibc-2.3.4.20040602 (03 Jun 2004)
+
+ 03 Jun 2004; Travis Tilley <lv@gentoo.org> -glibc-2.3.3.20040602.ebuild,
+ +glibc-2.3.4.20040602.ebuild:
+ added an ebuild with a proper version number. new features in this ebuild
+ include the makecheck USE flag for having glibc run tests on itself and the
+ ability to install only the locales that you want. a new configuration file
+ has been added for controlling this feature: /etc/locales.build. a default
+ should be installed when you emerge this version of glibc, please read the
+ comments for a description of this file's format.
+
+ 02 Jun 2004; Pieter Van den Abeele <pvdabeel@gentoo.org> glibc-2.3.3_pre20040420-r1.ebuild:
+ Mased stable on ppc
+
+*glibc-2.3.3.20040602 (02 Jun 2004)
+
+ 02 Jun 2004; Travis Tilley <lv@gentoo.org> +glibc-2.3.3.20040602.ebuild:
+ new cvs snapshot. this ebuild marks a move from using branch updates against
+ 2.3.2 to using actual cvs snapshot tarballs. it also marks a move in the
+ versioning scheme for glibc... since upstream has decided to let distributions
+ choose what they want to release instead of making releases themselves, the
+ pre has been dropped from the version.
+
+ 02 Jun 2004; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.3.3_pre20040529.ebuild:
+ Added ~mips to KEYWORDS.
+
+ 30 May 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.3_pre20040529.ebuild:
+ adding ~amd64 and ~ppc64 to keywords
+
+ 30 May 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.3_pre20040529.ebuild:
+ misc pax/grsec fixes from peter mazinger
+
+*glibc-2.3.3_pre20040529 (29 May 2004)
+
+ 29 May 2004; Travis Tilley <lv@gentoo.org> -glibc-2.3.3_pre20040527.ebuild,
+ +glibc-2.3.3_pre20040529.ebuild:
+ new snapshot. this one should build on ppc64
+
+*glibc-2.3.3_pre20040527 (27 May 2004)
+
+ 27 May 2004; Travis Tilley <lv@gentoo.org> +glibc-2.3.3_pre20040527.ebuild:
+ update snapshot
+
+ 27 May 2004; Travis Tilley <lv@gentoo.org>
+ glibc-2.3.3_pre20040420-r1.ebuild:
+ adding ~amd64 keyword to satisfy gcc 3.4 dep
+
+ 17 May 2004; Travis Tilley <lv@gentoo.org>
+ +files/2.3.3/glibc-2.3.3-ssp-gcc34-after-frandom.patch,
+ glibc-2.3.3_pre20040420-r1.ebuild:
+ added fix for compiling SSP with gcc 3.4
+
+*glibc-2.3.3_pre20040420-r1 (14 May 2004)
+
+ 14 May 2004; <solar@gentoo.org> glibc-2.3.3_pre20040420-r1.ebuild,
+ files/2.3.3/glibc-2.3.2-propolice-guard-functions-v3.patch,
+ files/2.3.3/glibc-2.3.3-frandom-detect.patch:
+ frandom/SSP implementation for glibc. Adds new 'erandom' flag to IUSE. (-*
+ masked for testing now) bug #50864
+
+ 12 May 2004; Alexander Gabert <pappy@gentoo.org> :
+ removing hardened-gcc vintage from some ebuilds
+
+ 08 May 2004; Bryan Østergaard <kloeri@gentoo.org>
+ glibc-2.3.3_pre20040420.ebuild:
+ Removed ~alpha, see bug #50301.
+
+ 04 May 2004; Ilya A. Volynets-Evenbaks <iluxa@gentoo.org>
+ +files/2.3.3/glibc-2.3.3_pre20040420-mips-dl-machine-calls.diff,
+ +files/2.3.3/glibc-2.3.3_pre20040420-mips-incl-sgidefs.diff,
+ glibc-2.3.3_pre20040420.ebuild:
+ - Remove unneeded patches
+ - Add patch by Thiemo Seufer to include <sgidefs.h> into all
+ files that use _MIPS_SIM. This is required for use with
+ gcc-3.4. Original can be found at
+ http://lists.debian.org/debian-glibc/2003/debian-glibc-200312/msg00201.html
+ - Add compile fix to sysdeps/mips/dl-machine.h
+ - mark as ~mips
+
+ 29 Apr 2004; Joshua Kinard <kumba@gentoo.org>
+ glibc-2.3.3_pre20040420.ebuild:
+ Masked on mips until some patches can be dug/cooked/found to fix some issues.
+
+ 28 Apr 2004; <solar@gentoo.org> glibc-2.3.3_pre20040420.ebuild,
+ files/2.3.3/glibc-2.3.3-localedef-fix-trampoline.patch:
+ localedef contains nested function trampolines, which trigger segfaults under
+ PaX while building. Adding patch that inlines functions in order to avoid
+ this. Debian Bug (#231438, #198099)
+
+ 27 Apr 2004; Mike Frysinger <vapier@gentoo.org>
+ +files/2.3.2/glibc-2.3.2-arm-bus-defines.patch,
+ +files/2.3.2/glibc-2.3.2-armformat.patch,
+ +files/2.3.2/glibc-2.3.2-arm-doargs.patch,
+ +files/2.3.2/glibc-2.3.2-framestate-USING_SJLJ_EXCEPTIONS.patch,
+ glibc-2.3.2-r10.ebuild:
+ Add a few patches to make glibc compile cleanly on arm.
+
+*glibc-2.3.3_pre20040420 (25 Apr 2004)
+
+ 25 Apr 2004; Martin Schlemmer <azarah@gentoo.org>
+ +glibc-2.3.3_pre20040420.ebuild:
+ Update snapshot.
+
+ 24 Apr 2004; Joshua Kinard <kumba@gentoo.org>
+ +files/2.3.2/glibc-2.3.2-mips-fix-nested-entend-pairs.patch,
+ glibc-2.3.2-r10.ebuild, glibc-2.3.2-r3.ebuild:
+ Added a patch for mips which fixes a compile bug with newer binutils. Also
+ removed an RDEPEND for portage-1.9.0 which seems to be triggering a bug in
+ repoman. If this change affects anyone, yell at me.
+
+ 24 Apr 2004; Joshua Kinard <kumba@gentoo.org>
+ +files/2.3.2/glibc-2.3.2-mips-fix-nested-entend-pairs.patch,
+ glibc-2.3.2-r10.ebuild, glibc-2.3.2-r3.ebuild:
+ Added a patch for mips which fixes a compile bug with newer binutils. Also
+ removed an RDEPEND for portage-1.9.0 which seems to be triggering a bug in
+ repoman. If this change affects anyone, yell at me.
+
+*glibc-2.3.2-r10 (18 Apr 2004)
+
+ 18 Apr 2004; Michael McCabe <randy@gentoo.org>
+ +files/2.3.2/glibc-2.3.2-s390-deprecated-ustat-fixup.patch,
+ +glibc-2.3.2-r10.ebuild:
+ Added s390 specific fixes to close bug #47415
+
+ 24 Mar 2004; Michael Sterrett <mr_bones_@gentoo.org> glibc-2.3.2-r2.ebuild,
+ glibc-2.3.2-r3.ebuild, glibc-2.3.3_pre20031210.ebuild:
+ don't use deprecated ? : use syntax
+
+ 18 Mar 2004; <solar@gentoo.org> glibc-2.3.2-r9.ebuild:
+ adding filter-ldflags -pie to stable glibc
+
+ 16 Mar 2004; <solar@gentoo.org> glibc-2.3.3_pre20040207.ebuild:
+ glibc fails to link properly with global LDFLAGS=-pie so we filter it with new
+ flag-o-matic function called filter-ldflags
+
+ 15 Mar 2004; Joshua Kinard <kumba@gentoo.org> glibc-2.3.2-r9.ebuild:
+ Marked stable on mips (it had ~mips, but someone removed the keyword and
+ didn't leave a Changelog entry on why).
+
+ 09 Mar 2004; <agriffis@gentoo.org> glibc-2.3.2-r9.ebuild:
+ stable on alpha and ia64
+
+ 02 Mar 2004; Brian Jackson <iggy@gentoo.org> glibc-2.3.2-r9.ebuild:
+ s390 keywords
+
+ 01 Mar 2004; Tom Gall <tgall@gentoo.org> glibc-2.3.3_pre20031210.ebuild:
+ added in dependancy for ppc64 headers
+
+ 26 Feb 2004; Sven Blumenstein <bazik@gentoo.org> glibc-2.3.2-r9.ebuild:
+ Stable on sparc (was about time).
+
+ 25 Feb 2004; Luca Barbato <lu_zero@gentoo.org>
+ glibc-2.3.3_pre20040207.ebuild:
+ Marked ~ppc
+
+ 24 Feb 2004; Alexander Gabert <pappy@gentoo.org>
+ glibc-2.3.3_pre20040207.ebuild:
+ added GOTOFF fix from previous glibc release
+
+ 24 Feb 2004; Mike Frysinger <vapier@gentoo.org> :
+ Make the only headers info virtual/os-headers since hppa-headers PROVIDEs that.
+
+ 23 Feb 2004; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r9.ebuild,
+ files/2.3.2/glibc-2.3.2-ipv6-bytestring-fix.patch:
+ Fix broken reverse resolving for IPv6 addresses, bug #42492. Research done by
+ Bernhard Schmidt <berni@birkenwald.de>.
+
+ 12 Feb 2004; <solar@gentoo.org> glibc-2.3.3_pre20040117-r1.ebuild,
+ files/2.3.3/glibc-2.3.3_pre20040117-got-fix.diff:
+ GOTOFF during linking seems to fail to recognize where main() is because it is
+ not visible in the object linked which might not be really legal C but it
+ apparently works anyway. This can be seen when trying to build bind9 as a
+ Position Independent Executable. ie CFLAGS=-fPIC,LDFLAGS=-pie. This patch
+ fixes that. Submitted by the PaX Team
+
+*glibc-2.3.3_pre20040207 (09 Feb 2004)
+*glibc-2.3.3_pre20031210 (09 Feb 2004)
+
+ 09 Feb 2004; Brad House <brad_mssw@gentoo.org>
+ glibc-2.3.3_pre20031210.ebuild, glibc-2.3.3_pre20031222.ebuild,
+ glibc-2.3.3_pre20040117.ebuild, glibc-2.3.3_pre20040207.ebuild:
+ glibc 2.3.3_pre release for PPC64. This is the only version that works for
+ ppc64. Current VMX commits have caused later pulls to not work
+
+*glibc-2.3.3_pre20040207 (08 Feb 2004)
+
+ 08 Feb 2004; Martin Schlemmer <azarah@gentoo.org>
+ glibc-2.3.3_pre20040207.ebuild,
+ files/2.3.2/glibc-2.3.2-rtld-assert-fix.patch:
+ Update snapshot to 20040207. Fix an assert when running libc.so from
+ commandline, bug #34733. Add ia64 to nptl arches.
+
+ 19 Jan 2004; Mike Frysinger <vapier@gentoo.org> glibc-2.3.2-r9.ebuild :
+ Add back in nptl support since gcc-3.3.2-r5 is now stable.
+
+*glibc-2.3.3_pre20040117-r1 (26 Jan 2004)
+
+ 26 Jan 2004; <solar@gentoo.org> glibc-2.3.3_pre20040117-r1.ebuild,
+ files/2.3.3/glibc-2.3.3-owl-malloc-unlink-sanity-check.diff,
+ files/2.3.3/glibc-2.3.3_pre20040117-pt_pax.diff,
+ files/2.3.3/glibc-2.3.3_pre20040117-signal-ssp.diff:
+ added ptpax flags. cosmetic ssp patch and owl unlink sanity to testing
+
+ 19 Jan 2004; Mike Frysinger <vapier@gentoo.org> glibc-2.3.2-r9.ebuild :
+ Remove nptl support since people dont understand nptl and this is now x86 stable.
+ See Bug #38622 for some good examples. This is OK because 2.3.3_preXXX has
+ nptl support and it's unstable and it covers all the archs 2.3.2-r9 does.
+
+*glibc-2.3.3_pre20040117 (18 Jan 2004)
+
+ 18 Jan 2004; Martin Schlemmer <azarah@gentoo.org>
+ glibc-2.3.3_pre20040117.ebuild:
+ Update snapshot to 20040117.
+
+ 18 Jan 2004; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r9.ebuild:
+ Mark stable for x86.
+
+ 18 Jan 2004; Bartosch Pixa <darkspecter@gentoo.org> glibc-2.3.2-r9.ebuild:
+ PDEPEND on new linux-headers version on ppc
+
+ 16 Jan 2004; Bartosch Pixa <darkspecter@gentoo.org> glibc-2.3.2-r9.ebuild:
+ set ppc in keywords
+
+ 10 Jan 2004; Aron Griffis <agriffis@gentoo.org> glibc-2.3.2-r9.ebuild:
+ stable on alpha for bug 37595... alpha really needs execstack-PaX-support.patch
+
+ 09 Jan 2004; Luca Barbato <lu_zero@gentoo.org> glibc-2.3.2-r9.ebuild:
+ Marked ~ppc
+
+*glibc-2.3.3_pre20031222 (27 Dec 2003)
+
+ 16 Jan 2004; Guy Martin <gmsoft@gentoo.org> glibc-2.3.3_pre20031222.ebuild :
+ Removed some patches which did not apply for hppa.
+
+ 27 Dec 2003; Martin Schlemmer <azarah@gentoo.org>
+ glibc-2.3.3_pre20031222.ebuild:
+ Update snapshot to 20031222. Change code that searches for proper headers to
+ look first in /usr/include again.
+
+*glibc-2.3.3_pre20031212 (14 Dec 2003)
+
+ 14 Dec 2003; Martin Schlemmer <azarah@gentoo.org>
+ glibc-2.3.3_pre20031212.ebuild,
+ files/2.3.3/glibc-2.3.3-dl_execstack-PaX-support.patch:
+ Update snapshot to 20031212, pre-release of 2.3.3.
+
+ 29 Nov 2003; Brad House <brad_mssw@gentoo.org> glibc-2.3.2-r9.ebuild:
+ mark stable on amd64
+
+ 23 Nov 2003; Tavis Ormandy <taviso@gentoo.org> glibc-2.3.2-r3.ebuild,
+ glibc-2.3.2-r8.ebuild, glibc-2.3.2-r9.ebuild:
+ glibc refuses to build with --relax in LDFLAGS.
+
+ 20 Nov 2003; Aron Griffis <agriffis@gentoo.org> glibc-2.3.2-r8.ebuild:
+ Mark stable on alpha
+
+*glibc-2.3.2-r9 (18 Nov 2003)
+
+ 08 Dec 2003; Guy Martin <gmsoft@gentoo.org> glibc-2.3.2-r9.ebuild :
+ Marked stable on hppa.
+
+ 19 Nov 2003; Guy Martin <gmsoft@gentoo.org> glibc-2.3.2-r9.ebuild :
+ Added clean hppa patches. Seems not to suffer of the -r8 problems.
+
+ 18 Nov 2003; Guy Martin <gmsoft@gentoo.org> glibc-2.3.2-r9.ebuild :
+ Removed hppa stuff. New patching method should come shortly.
+
+ 18 Nov 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r9.ebuild:
+ - Update CVS branch to 20031115.
+ - With latest versions of glibc, a lot of apps failed on a PaX enabled
+ system with "cannot enable executable stack as shared object requires:
+ Permission denied". This is due to PaX 'exec-protecting' the stack, and
+ ld.so then trying to make the stack executable due to some libraries not
+ containing the PT_GNU_STACK section. Add dl_execstack-PaX-support.patch,
+ bug #32960.
+ - We do not want name_insert() in iconvconfig.c to be defined inside
+ write_output() as it causes issues with PaX.
+
+*glibc-2.3.1-r5 (16 Nov 2003)
+
+ 16 Nov 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.2.5-r9.ebuild,
+ glibc-2.3.1-r5.ebuild, glibc-2.3.2-r2.ebuild, glibc-2.3.2-r3.ebuild,
+ files/2.2.5/glibc-2.2.5-getgrouplist.patch,
+ files/2.3.1/glibc-2.3.1-ftw.patch,
+ files/2.3.1/glibc-2.3.1-getgrouplist.patch,
+ files/2.3.2/glibc-2.3.2-dl_execstack-PaX-support.patch,
+ files/2.3.2/glibc-2.3.2-iconvconfig-name_insert.patch,
+ files/2.3.2/glibc-2.3.2-propolice-guard-functions-v2.patch,
+ files/2.3.2/glibc-2.3.2-propolice-guard-functions.patch:
+ - A bug in the getgrouplist function can cause a buffer overflow if the size
+ of the group list is too small to hold all the user's groups. More info can
+ be found at: https://rhn.redhat.com/errata/RHSA-2003-325.html
+ - Fix a memory leak in ftw_dir
+ - To circumvent problems with propolice when linking binaries statically among
+ things, __guard and __guard_setup__stack_smash_handler is now in libc.so. More
+ info at: http://www.gentoo.org/proj/en/hardened/etdyn-ssp.xml
+ Thanks for helping in developing these patchsets goes to "moid" from the
+ Openbsd team.
+ - We do not want name_insert() in iconvconfig.c to be defined inside
+ write_output() as it causes issues with PaX.
+
+ 09 Nov 2003; Mike Frysinger <vapier@gentoo.org> :
+ Fix sscanf.c compilation. This tiny patch can be found in 2.3.2 already.
+
+ 01 Nov 2003; Aron Griffis <agriffis@gentoo.org> glibc-2.3.2-r8.ebuild,
+ files/2.3.2/glibc-2.3.2-alpha-crti.patch,
+ files/2.3.2/glibc-2.3.2-alpha-pwrite.patch:
+ Add crti and pwrite patches for alpha
+
+ 28 Oct 2003; Guy Martin <gmsoft@gentoo.org> glibc-2.3.2-r8.ebuild :
+ Added depend to >=hppa-headers-2.4.21_p13 for succefull compilation.
+
+ 27 Oct 2003; Guy Martin <gmsoft@gentoo.org> glibc-2.3.2-r8.ebuild :
+ Added patches for hppa. This glibc correct many bugs like the -static flag one.
+
+ 27 Oct 2003; Martin Schlemmer <azarah@gentoo.org> files/nscd:
+ We need to pass '--pidfile' and not '--pid' to start-stop-daemon, thanks to
+ Markus Rippl <markus.rippl@iconparc.de> for reporting.
+
+ 26 Oct 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r8.ebuild:
+ Remove the sysmacros.h hack, as it is no longer needed.
+
+ 26 Oct 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r3.ebuild,
+ glibc-2.3.2-r4.ebuild, glibc-2.3.2-r5.ebuild, glibc-2.3.2-r8.ebuild:
+ Add sparch to NPTL archs; Cleanup.
+
+*glibc-2.3.2-r8 (26 Oct 2003)
+
+ 18 Nov 2003; Guy Martin <gmsoft@gentoo.org> glibc-2.3.2-r8.ebuild :
+ Marked -hppa and removed hppa stuff from it.
+
+ 26 Oct 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r8.ebuild:
+ Update snapshot.
+
+ 18 Oct 2003; Brad House <brad_mssw@gentoo.org> glibc-2.3.2-r6.ebuild:
+ add ~amd64 flag to glibc-2.3.2-r6, works with and without nptl enabled in use
+ flags
+
+ 15 Oct 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r1.ebuild,
+ glibc-2.3.2-r7.ebuild:
+ Sparc updates from Kumba <kumba@gentoo.org>:
+
+ glibc-2.3.2-r1: Change ~sparc -> sparc in keywords
+ glibc-2.3.2-r7: Add ~sparc to keywords
+ Remove the following patch for mips to let
+ glibc compile:
+ ${P}-mips-fix-n32-n64-sysdep-headers.patch
+
+ 15 Oct 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r6.ebuild:
+ Mark as unstable for x86 - we should start wider testing sooner or later, and
+ except for an occasional break, current CVS snapshots looks good.
+
+*glibc-2.3.2-r7 (14 Oct 2003)
+
+ 19 Nov 2003; Guy Martin <gmsoft@gentoo.org> glibc-2.3.2-r7.ebuild :
+ Added missing atomicity patch for hppa.
+
+ 18 Nov 2003; Guy Martin <gmsoft@gentoo.org> glibc-2.3.2-r7.ebuild :
+ Readded for hppa only. Added hppa patches and depend to correct
+ hppa-headers.
+
+ 14 Oct 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r7.ebuild:
+ Update CVS snapshot. NPTL is now in official CVS.
+
+ 13 Oct 2003; Tavis Ormandy <taviso@gentoo.org> glibc-2.3.2-r1.ebuild:
+ Downgrading glibc had some unintentional side effects, stable again.
+
+ 10 Oct 2003; Alexander Gabert <pappy@gentoo.org> glibc-2.3.1-r4.ebuild,
+ glibc-2.3.2-r1.ebuild:
+ changed hardened-gcc build behaviour with CC
+
+ 09 Oct 2003; Alexander Gabert <pappy@gentoo.org> glibc-2.3.1-r4.ebuild,
+ glibc-2.3.2-r1.ebuild:
+ added new hardened-gcc flags for hppa
+
+ 09 Oct 2003; Alexander Gabert <pappy@gentoo.org> glibc-2.3.1-r4.ebuild,
+ glibc-2.3.2-r1.ebuild:
+ added new hardened-gcc building logic for ppc and sparc
+
+ 07 Oct 2003; Aron Griffis <agriffis@gentoo.org> glibc-2.3.2-r1.ebuild:
+ Demote 2.3.2-r1 from alpha to ~alpha since it doesn't build on alpha with
+ recent gcc. We really need the more recent glibc to become available for
+ alpha.
+
+ 30 Sep 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r6.ebuild,
+ files/2.3.2/sysmacros.h:
+ Quick fix for last changes to sysmacros.h that breaks a few things like
+ sys-libs/pwdb and xfree among others.
+
+*glibc-2.3.2-r6 (28 Sep 2003)
+
+ 28 Sep 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r5.ebuild,
+ glibc-2.3.2-r6.ebuild, files/2.3.2/glibc-2.3.2-ia64-LOAD_ARGS-fixup.patch,
+ files/2.3.2/glibc-2.3.2-mips-add-n32-n64-sysdep-cancel.patch,
+ files/2.3.2/glibc-2.3.2-mips-configure-for-n64-symver.patch,
+ files/2.3.2/glibc-2.3.2-mips-fix-n32-n64-sysdep-headers.patch,
+ files/2.3.2/glibc-2.3.2-mips-pread-linux2.5.patch:
+ Update snapshot to 20030927 and NPTL to 0.60. Add a few patches from Kumba
+ <kumba@gentoo.org> for mips.
+
+*glibc-2.3.2-r5 (20 Sep 2003)
+
+ 20 Sep 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r5.ebuild:
+ Update CVS snapshot to 20030919. Update NPTL to 0.59.
+
+ 17 Sep 2003; Jon Portnoy <avenj@gentoo.org> glibc-2.3.2-r1.ebuild :
+ ia64 keywords.
+
+ 14 Sep 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r4.ebuild,
+ files/2.3.2/glibc-2.3.2-cispeed-cospeed-fix.patch:
+ Fix sparc build issues, patch from glibc-alpha, thanks to <kumba@gentoo.org>.
+
+ 13 Sep 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r1.ebuild,
+ glibc-2.3.2-r2.ebuild, glibc-2.3.2-r3.ebuild:
+ Add glibc-2.3.2-fix-omitted-operand-in-mathinline_h.patch to resolve bug
+ #28537.
+
+ 08 Sep 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r1.ebuild:
+ Fix gcc DEPEND to be '>=sys-devel/gcc-3.2', and not '=sys-devel/gcc-3.2*'.
+
+*glibc-2.3.2-r4 (07 Sep 2003)
+
+ 07 Sep 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r4.ebuild,
+ files/2.3.2/glibc-2.3.2-fix-omitted-operand-in-mathinline_h.patch:
+ Update cvs snapshot to 20030906. Update nptl to version 0.57. Add patch
+ for bug #27142.
+
+ 12 Aug 2003; Alexander Gabert <pappy@gentoo.org> glibc-2.3.2-r1.ebuild:
+ hppa building fails, linuxthreads/sysdeps/hppa/pt-machine.h is missing proper
+ setup of pthread_descr
+
+ 10 Aug 2003; Joshua Kinard <kumba@gentoo.org> glibc-2.3.2-r1.ebuild:
+ Moved to stable on mips. Been using it for ages w/ no problems.
+
+ 10 Aug 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r2.ebuild,
+ glibc-2.3.2-r3.ebuild, files/fix-sysctl_h.patch, files/test-sysctl_h.c:
+ Add test to detect broken headers in (user land) in 2.5.68 and later.
+
+ 31 Jul 2003; <matt@gentoo.org> glibc-2.3.2-r1.ebuild, glibc-2.3.2-r2.ebuild,
+ glibc-2.3.2-r3.ebuild:
+ Removed warning from 2.3.2 ebuilds regarding
+ sandbox and -fstack-protector. This was only
+ a problem with 2.3.1.
+
+ 29 Jul 2003; Alex Veber <coronalvr@gentoo.org> glibc-2.3.2-r1.ebuild:
+ removed the winex block
+
+ 28 Jul 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r3.ebuild:
+ Do not install librt.so linker script anymore, as librt.so.1 breaks things
+ with librt.so as a script.
+
+*glibc-2.3.2-r3 (23 Jul 2003)
+
+ 23 Jul 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r3.ebuild:
+ Update CVS snapshot, as well as NPTL version to 0.55. Note that this
+ needs gcc-3.3-r1 and latest binutils (2.14.90.4+) to build with NPTL
+ support.
+
+ 23 Jul 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r1.ebuild,
+ glibc-2.3.2-r2.ebuild:
+ From Kumba <kumba@gentoo.org>:
+
+ This is the patch to glibc-2.3.2-r1.ebuild which allows it to build
+ on sparc64. I modified it so sparc and sparc64 can use the -fcall-used-g6
+ flag, while sparc64-only gets a few more checks added in.
+
+ 18 Jul 2003; Olivier Crete <tester@gentoo.org> glibc-2.3.2-r2.ebuild:
+ Removed all traces of multilib, 64bit libs are installed in lib/
+
+ 18 Jul 2003; Will Woods <wwoods@gentoo.org> glibc-2.3.2-r1.ebuild:
+ Marked stable for alpha
+
+ 17 Jul 2003; Alex Veber <coronalvr@gentoo.org> glibc-2.3.2-r1.ebuild:
+ set !app-emulation/winex-cvs
+
+ 16 Jul 2003; Jay Pfeifer <pfeifer@gentoo.org> glibc-2.3.2-r1.ebuild:
+ set stable on x86
+ set !app-emulation/winex
+
+ 01 Jul 2003; Luca Barbato <lu_zero@gentoo.org> glibc-2.3.2-r1.ebuild:
+ set stable on ppc
+
+ 14 Jun 2003; Tavis Ormandy <taviso@gentoo.org> glibc-2.3.2-r1.ebuild,
+ glibc-2.3.2-r2.ebuild, files/2.3.2/glibc-2.3.2-decc-compaq.patch:
+ fixing ccc compatability, minor patch only applied on alpha.
+
+ 05 Jun 2003; Christian Birchinger <joker@gentoo.org> glibc-2.3.1-r4.ebuild:
+ Replaced sparc64 CFLAGS hack with replace-sparc64-flags from flag-o-matic
+
+ 02 Jun 2003; Joshua Kinard <kumba@gentoo.org> glibc-2.3.2-r1.ebuild:
+ Added ~mips to KEYWORDS
+
+ 18 May 2003; Martin Schlemmer <azarah@gentoo.org> :
+ Fix LICENSE to be LGPL-2, bug #19074. Fix glibc-2.3* < 2.3.2-r2 to depend
+ on <gcc-3.3.
+
+ 18 May 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r1.ebuild,
+ glibc-2.3.2-gcc33-sscanf.patch :
+ Downgrade nptl to version 0.28 and add glibc-2.3.2-gcc33-sscanf.patch to
+ fix compile errors with gcc-3.3:
+
+ http://sources.redhat.com/ml/libc-alpha/2003-03/msg00052.html
+
+*glibc-2.3.2-r2 (18 May 2003)
+
+ 18 May 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r2.ebuild :
+ New version. Update to cvs 20030517 to fix problems with gcc-3.3. Also
+ closes bug #18744 as it adds the en_US.utf8 locale. Also enable NPTL
+ support for i[45]86, ppc and mips, as it should in theory work now.
+
+ 14 May 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r{0,1}.ebuild :
+
+ Some MIPS updates from Kumba <kumba@gentoo.org>:
+ A few patches only for the MIPS platform. Descriptions of what they
+ do can be found in the patch headers.
+ <tuxus@gentoo.org> thx <dragon@gentoo.org> (11 Jan 2003)
+ <kumba@gentoo.org> remove tst-rndseek-mips & ulps-mips patches
+
+ 06 Apr 2003; Martin Schlemmer <azarah@gentoo.org> :
+ Fix all 2.3 ebuild to install timezone data if 'build' in USE, bug #16530.
+
+*glibc-2.3.2-r1 (06 Apr 2003)
+
+ 19 Apr 2003; Joshua Brindle <method@gentoo.org> glibc-2.3.1-r4.ebuild:
+ give error and die if both sandbox and -fstack-protector are enabled
+
+ 06 Apr 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2-r1.ebuild :
+ Fix calculation problems in allocate_static_tls that caused a TLS
+ enabled app that loads libGL.so to segfault. Thanks to Gareth Hughes
+ from NVidia for pointing me in the right direction. This patch is
+ from glibc CVS.
+
+ 30 Mar 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2.ebuild :
+ Update NPTL version to 0.29. As it is not used by many (or I cannot
+ imagine it), and with the errno problems, I will rather not bump the
+ revision. Note that latest version is 0.32, but that (as well as 0.30
+ and up) needs glibc-2.3.3 snapshot.
+
+*glibc-2.3.1-r4 (21 Mar 2003)
+
+ 14 Apr 2003; Joshua Brindle <method@gentoo.org> glibc-2.3.1-r4.ebuild:
+ give error and die if both sandbox and -fstack-protector are enabled
+
+ 06 Apr 2003; Zach Welch <zwelch@gentoo.org> glibc-2.3.1-r4.ebuild:
+ add arm keyword
+
+ 06 Apr 2003; Christian Birchinger <joker@gentoo.org> glibc-2.3.1-r4.ebuild:
+ Changed replace-flags for sparc
+
+ 21 Mar 2003; Daniel Ahlberg <aliz@gentoo.org> glibc-2.3.1-r4.ebuild :
+ Security update.
+
+*glibc-2.2.5-r8 (21 Mar 2003)
+
+ 06 Apr 2003; Christian Birchinger <joker@gentoo.org> glibc-2.2.5-r8.ebuild:
+ Added replace-flags for sparc
+
+ 21 Mar 2003; Daniel Ahlberg <aliz@gentoo.org> glibc-2.2.5-r8.ebuild :
+ Security update.
+
+ 11 Mar 2003; Zach Welch <zwelch@gentoo.org>
+ files/2.2.5/glibc-2.2.5-arm-sysdeps-fix.diff:
+ fix arm sysdep patch to not require autoconf
+
+ 09 March 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1*.ebuild :
+ Add patch glibc-2.3.1-typeo_dl-runtime_c.patch to fix issues with Oracle,
+ bug #16504, thanks to Tri D. Hoang <tdhoang@ultramain.com> for reporting.
+
+*glibc-2.3.2 (05 March 2003)
+
+ 06 Apr 2003; Christian Birchinger <joker@gentoo.org> glibc-2.3.2.ebuild:
+ Changed replace-flags for sparc
+
+ 11 Mar 2003; Zach Welch <zwelch@gentoo.org> glibc-2.2.5-r7.ebuild,
+ glibc-2.3.1-r2.ebuild, glibc-2.3.1-r3.ebuild, glibc-2.3.2.ebuild:
+ change sys-kernel/linux-headers to new virtual/os-headers
+
+ 05 March 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2.ebuild :
+ Update version. Thanks to Georg Müller <georgmueller@gmx.net> for notifying
+ me.
+
+*glibc-2.3.2_pre1 (24 Feb 2003)
+
+ 24 Feb 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.2_pre1.ebuild :
+ Update version to official pre1 of 2.3.2. Add NPTL support .. note that
+ this is extremely experimental and does not work with the nvidia drivers
+ among things. Many other tweak and updates.
+
+ 20 Feb 2003; Zach Welch <zwelch@gentoo.org> glibc-2.2.5-r7.ebuild :
+ Added patches for arm. See patches for description of each.
+ Added arm keyword.
+
+ 09 Feb 2003; Guy Martin <gmsoft@gentoo.org> :
+ Added patches for hppa. See patches for description of each.
+ Added hppa to keywords.
+
+ 29 Jan 2003; Jack Morganan <jmorgan@gentoo.org> glibc-2.3.1-r3.ebuild :
+ Changed ~sparc to sparc
+
+ 23 Jan 2003; Jan Seidel <tuxus@gentoo.org> glibc-2.3.1-r3.ebuild :
+ Add MIPS inline-syscall-mips patch
+
+ 16 Jan 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1-r3.ebuild :
+
+ Sync patches.
+
+ 15 Jan 2003; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1-r2.ebuild :
+
+ Fix 'locale -a' not listing all locales. This to Stefan Jones
+ <cretin@gentoo.org> for this fix, bug #13240.
+
+ Add MIPS patches, thanks to <tuxus@gentoo.org> and <dragon@gentoo.org>.
+
+ Reload init to fix fsck on reboot ...
+
+ 28 Dec 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1-r3.ebuild :
+
+ Always add --with-headers=${ROOT}usr/include as option to ./configure, as
+ linux-headers are usually well tested, and in some cases we get weird
+ problems ...
+
+ 16 Dec 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1-r2.ebuild :
+
+ Add -freorder-blocks for x86 (commented). Add Method's replace-flags for
+ sparc support.
+
+ 13 Dec 2002; Mark Guertin <gerk@gentoo.org> glibc-2.3.1-r2.ebuild :
+
+ Marked stable for ppc
+
+ 10 Dec 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1-r2.ebuild :
+
+ Mark as stable for x86.
+
+ 06 Dec 2002; Rodney Rees <manson@gentoo.org> :
+
+ Changed sparc ~sparc keywords
+
+*glibc-2.3.1-r2 (7 Nov 2002)
+
+ 17 Nov 2002; Stefan Jones <cretin@gentoo.org> glibc-2.3.1-r2.ebuild :
+
+ Small patch "prelinkfix" which fixes rare error with prelinking and
+ preloading some executables. Patch taken from glibc CVS.
+ http://sources.redhat.com/ml/libc-alpha/2002-11/msg00151.html
+
+ 16 Nov 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1-r2.ebuild :
+
+ Fix type-o that caused manpages not installing (bug #10645).
+ Update to use epatch.
+
+ 16 Nov 2002: Stefan Jones <cretin@gentoo.org> glibc-2.3.1-r2.ebuild :
+ Changed --with-header to --with-headers to fix fake configure option.
+
+ 10 Nov 2002: Stefan Jones <cretin@gentoo.org> glibc-2.3.1-r2.ebuild :
+
+ Made sparc64's always use the system linux headers instead of the kernel
+ headers. This fixes the 64bit sparc compile errors, see bug #10470.
+
+ 7 Nov 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1-r2.ebuild :
+
+ Second try at ctype-compat.patch. Add stack_end-compat patch for missing
+ libc_stack_end symbold in linker.
+
+ 30 Oct 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1-r1.ebuild :
+
+ One more compat issue which breaks sun-jdk-1.3.1. See bug #8766 for more
+ info, and also:
+
+ http://sources.redhat.com/ml/libc-alpha/2002-04/msg00143.html
+
+ Thanks to Jan Gutter <jangutter@tuks.co.za> for reporting it. Added
+ libc_wait-compat.patch as fix.
+
+*glibc-2.3.1-r1 (26 Oct 2002)
+
+ 16 Nov 2002: Stefan Jones <cretin@gentoo.org> glibc-2.3.1-r1.ebuild :
+ Changed --with-header to --with-headers to fix fake configure option.
+
+ 26 Oct 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1-r1.ebuild :
+
+ Add the ctype-compat.patch to fix unresolved symbols in old static binaries
+ and libraries. See bug #8766, #9586 and:
+
+ http://lists.debian.org/debian-glibc/2002/debian-glibc-200210/msg00093.html
+
+ We should think about remoing it in the future after things have settled.
+
+*glibc-2.2.5-r7 (13 Oct 2002)
+
+ 16 Nov 2002: Stefan Jones <cretin@gentoo.org> glibc-2.2.5-r7.ebuild :
+ Changed --with-header to --with-headers to fix fake configure option.
+
+ 14 Nov 2002; Mark Guertin <gerk@gentoo.org> glibc-2.2.5-r7.ebuild :
+ backed out semctl patches for ppc, they cause problems with mozilla builds
+
+ 29 Oct 2002; Jon Nall <nall@gentoo.org> glibc-2.2.5-r7.ebuild :
+
+ Added sqrtl patch for ppc. This closes bug #9796. Also added semctl
+ patch for ppc.
+
+ 29 Oct 2002; Seemant Kulleen <seemant@gentoo.org> glibc-2.2.5-r7.ebuild :
+
+ Added semctl patch for sparc. Thanks to nall <nall@gentoo.org> for
+ finding this at:
+ http://sources.redhat.com/ml/libc-hacker/2002-04/msg00071.html
+
+ 13 Oct 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.2.5-r7.ebuild :
+
+ Some cleanups. Tidy ebuild. Move all patches to ${FILESDIR}/${PV/.
+ Remove old patches.
+
+ Add patches to fix warnings with gcc-3.2:
+
+ http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2002/08/0228.html
+
+ 13 Oct 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.2.5-r7.ebuild :
+
+ Fix stupid depend screwup I made when I merged in fixes from glibc-2.3.
+
+ 11 Oct 2002; Seemant Kulleen <seemant@gentoo.org> glibc-2.2.5-r7.ebuild
+ files/glibc-2.2.5-sparc-misc.diff files/glibc-2.2.5-sparc64-fixups.diff :
+
+ Added patches from debian's patch set to fix miscellaneous issues on sparc
+ and sparc64. One indication of the hassle with sparc64 was the mozilla
+ compile failure. That _should_ be sorted out now.
+
+ 09 Oct 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.2.5-r7.ebuild,
+ glibc-2.2.5-divdi3.diff :
+
+ Add divdi3 patches for PPC, thanks to nall <nall@themountaingoats.net>.
+
+*glibc-2.2.5-r8 (27 Sep 2002)
+
+ 27 Sep 2002; Daniel Ahlberg <aliz@gentoo.org> :
+ Moved -r7 to -r8 to give room for updated -r6 release.
+
+*glibc-2.2.5-r7 (03 Aug 2002)
+
+ 27 Sep 2002; Daniel Ahlberg <aliz@gentoo.org> :
+ Bumped -r6 to -r7 to include fix for sunrpc overflow.
+
+ 03 Aug 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.2.5-r7.ebuild :
+
+ Add the patch for fixing the segfaults in mutt, etc while sandbox is
+ running back in. Seems the relocation problems was also a cause of
+ the atexit() bug, and fixed in gcc-2.95.3-r7 and later.
+
+ http://sources.redhat.com/ml/bug-glibc/2002-04/msg00025.html
+ http://bugs.gentoo.org/show_bug.cgi?id=501
+
+*glibc-2.2.5-r6 (02 Aug 2002)
+
+ 22 Sep 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.2.5-r6.ebuild :
+
+ Fix pic support, thanks to Christopher Horler <chris@horler.demon.co.uk>.
+ This closes bug #8178.
+
+ 08 Sep 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.2.5-r6.ebuild :
+
+ Add alpha related patches thanks to Bjoern Brauel <bjoern@tuxnetwork.de>.
+
+ 02 Aug 2002; Daniel Ahlberg <aliz@gentoo.org>
+ Added patch for sunrpc overflow.
+
+*glibc-2.2.5-r5 (14 Jul 2002)
+
+ 15 Jul 2002; Mark Guertin <gerk@gentoo.org>
+ Added ppc to keywords
+
+ 14 Jul 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.2.5-r5.ebuild :
+
+ A buffer overflow vulnerability exists in multiple implementations of DNS
+ resolver libraries. This affects glibc-2.2.5 and earlier. See bug #4923
+ and:
+
+ http://www.cert.org/advisories/CA-2002-19.html
+
+ for details.
+
+ Seems gcc-3.1.1 is even more strict than 3.1 .. patch glibc for gcc-3.1.1.
+ This is also correct for previous gcc versions.
+
+*glibc-2.2.5-r4 (5 June 2002)
+
+ 5 June 2002; Bart Verwilst <verwilst@gentoo.org> glibc-2.2.5-r4.ebuild :
+
+ Added gcc3.1/binutils 2.12 patch, wich solves the nvidia-glx package,
+ amongst others... (__divdi3 stuff)
+ Update: Filtered -malign-double out of the ebuild as well now, because
+ it b0rks glibc.
+
+
+ 13 Apr 2002; M.Schlemmer <azarah@gentoo.org> glibc-2.2.5-r2.ebuild :
+
+ Try to fix the pkg_postinst() and /etc/localtime issue sanely. It just
+ newking my /etc/localtime with a symlink was starting to get irritating.
+
+*glibc-2.2.5-r3 (03 Apr 2002)
+
+ 03 Apr 2002; Geert Bevin <gbevin@gentoo.org> glibc-2.2.5-r3.ebuild,
+ files/digest-glibc-2.2.5-r3, files/glibc-2.2.5-sandbox.diff :
+
+ Added patch that fixes an ld.so.preload bug which made calls after freopen()
+ segfault. This now works correctly. This closes bug #501
+
+*glibc-2.2.5-r1 (15 Feb 2002)
+
+ 15 Feb 2002; Daniel Robbins <drobbins@gentoo.org>: Added tweaked version of
+ Brandon Low's patch that ensures that library symlinks are installed *after*
+ (not before) the actual libraries are installed. This should fix glibc merge
+ deaths, but we need a generic solution to solve this problem. This should
+ close bug #695. Filing a new bug for adding this functionality to Portage.
+
+*glibc-2.2.5 (10 Feb 2002)
+
+ 10 Feb 2002; Daniel Robbins <drobbins@gentoo.org>: New glibc release for testing
+ only. Masked.
+
+*glibc-2.2.4-r9 (1 Feb 2002)
+
+ 1 Feb 2002; G.Bevin <gbevin@gentoo.org> ChangeLog :
+
+ Added initial ChangeLog which should be updated whenever the package is
+ updated in any way. This changelog is targetted to users. This means that the
+ comments should well explained and written in clean English. The details about
+ writing correct changelogs are explained in the skel.ChangeLog file which you
+ can find in the root directory of the portage repository.
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
new file mode 100644
index 0000000..ea368f7
--- /dev/null
+++ b/sys-libs/glibc/Manifest
@@ -0,0 +1,76 @@
+AUX 2.10/glibc-2.10-gentoo-chk_fail.c 9407 RMD160 230701dfacfe2481eb49e5384fe4ebb508bd3af2 SHA1 0e9330d57de714dd1ecd7040d3eabf4723cdee7c SHA256 7745c0f5d37b37959b43b41e39762fc35b877161bc5740d9d3e9a83021acbc0e
+AUX 2.10/glibc-2.10-hardened-configure-picdefault.patch 865 RMD160 744bdbfb73f1dbced4cb33cb5aa92f3b41d3b4fb SHA1 21e0f83598f5342032a794315f0e3dac07f647da SHA256 b50b29f85d88011555bbcbe6046e6600be9344f2d78412b14aebdea515420774
+AUX 2.10/glibc-2.10-hardened-inittls-nosysenter.patch 8823 RMD160 163e53f0f4f0bd003ef1c50a4eaaa8f4a82695fe SHA1 df23c6756114e1451e6f120723af1b621037c28e SHA256 dcf78c6524c222dbee907200a8878aff727e29d43a4962b977a16d85752e5c10
+AUX 2.10/glibc-2.10-hardened-ssp-compat.patch 4802 RMD160 02bd17455d64b6661ae5f44329357dc254cdf118 SHA1 b40cf1a8f17e448861746ba39aa20afd66a47b2d SHA256 bd6f0aa8eace0a935731749e101d5fe30210f9edb65f2f5ccd425cef581ddce4
+AUX 2.11/glibc-2.11-hardened-pie.patch 1492 RMD160 dacf988364e3eeeaa2bd588420a19db373347678 SHA1 f44b4389d031bc618c83a2f196c4e2afa647a68a SHA256 74277f76ace9cb6b408ef7c1d43a3604ae0d6c1af539055aeaeb542d2bfa2a46
+AUX 2.12/glibc-2.12-hardened-pie.patch 1542 RMD160 c42e6a8eef542506c440d58395a066129cd40dec SHA1 703b4c23a6701f41cd51b629eae362e129b60de3 SHA256 9d11da52900a4cfdaa9052476029cb1b4c8004dfaef3cf446f3b728035f75fbe
+AUX 2.3.3/glibc-2.3.3-localedef-fix-trampoline.patch 2329 RMD160 de6ba25b8330e6ee720355e8541235d265a461cd SHA1 cf869cbd74793cb579b42d734884f10d4cadcdde SHA256 b5cf51d1ff5479d09fbc82992f126ca4969006c90c3a2ae94ad586d4902d791b
+AUX 2.5/glibc-2.5-gentoo-stack_chk_fail.c 9058 RMD160 c98d7007857aeeea00e708e7989800dad9b07ae3 SHA1 ff92b7b6cb4a364dbe81c5110da79d1ad56a72ba SHA256 067fba2a36d2630d50198c44395ef208cdf080508f1b716bd3d079f7b964e2df
+AUX 2.5/glibc-2.5-hardened-configure-picdefault.patch 794 RMD160 7ab81bac4b9625043b1e7edea6fb5707696c144d SHA1 25a0b018eb44f3c9818876a12e9ec817e305d80b SHA256 0c0359f567e4ad2d3184618bf6ac7e6102b703eab6227c7e9a4ff4dcdeed2c91
+AUX 2.5/glibc-2.5-hardened-inittls-nosysenter.patch 9407 RMD160 352112bf4f2d8d58471f22f623784350baf0bc86 SHA1 ae244e9923c0a0e8be4121d593897530c0bf08e8 SHA256 2a912e82445815ae32744d990c59d8758ec74e482b856bd274c292848b9af1fd
+AUX 2.5/glibc-2.5-hardened-pie.patch 1569 RMD160 8746aeb9f9c68ca153d93cf92c9df93d0fb324d6 SHA1 c2ec8d9286af38017f5bee5a8823f642c067201d SHA256 ff9cde8857c5da89faa4039e2a81748674fbeaaa49d85c378d80711d55f2b0c1
+AUX 2.6/glibc-2.6-gentoo-stack_chk_fail.c 9545 RMD160 9a21c9deb6ebca5d2245e3bb50b53ce035967a5f SHA1 11ad52117fa55bbe51b429043df49767c7f58de0 SHA256 1410ded812be80d452eada5f9d6b9bd7bdb504c14f01cc27dce3e36b6f92b92a
+AUX 2.6/glibc-2.6-hardened-inittls-nosysenter.patch 8674 RMD160 f4e7df0cb25292afc13e18332569d2ca288fdf92 SHA1 7f34ef26d6607321e0ec5ad0f389cb1aedf5e0da SHA256 cf58ded8fbe9fcb3dc094521feec2588c1520ff2c632b20c69d6a210325c4fcf
+AUX 2.7/glibc-2.7-hardened-inittls-nosysenter.patch 8755 RMD160 b674894f3b16f63193bb8040f8a5657dce82e1f9 SHA1 79fb3a4454b85af70dac95dd79134be3fe3a9201 SHA256 b0b1bf0746f7160b89cf281502b95c38dec9cb948d6a50a907b84fd6230a2dc3
+AUX eblits/common.eblit 9198 RMD160 ab144ba5afe51595ec8b87283a40ee8fc84cf400 SHA1 d1f57c2cd9ef1ab7de01d6aba2beb4e362f0c9b3 SHA256 3aad1fd23d872ccc4c371fe9b515784b25674cd0670fa7187d8f01461cad4489
+AUX eblits/common.eblit~ 9214 RMD160 5b737da912efe7a7e351cbc0f4974cc2cff92ab2 SHA1 158ddfe5579f356b9c4fdc3d4b39a86f0e58e8a1 SHA256 e1f4a86040a959a440ace17a985b5cb73e11d0508386612412a3836892a2b0b2
+AUX eblits/pkg_postinst.eblit 1159 RMD160 4b99846819bf0471d1104a8a17dd260796644f9d SHA1 4a2980fede3edebc7960d40db7cf935c7c854859 SHA256 76c403cf5c77a3a3bb7441566335f0c8da2584eaa21f05ab400e7bb00f9db810
+AUX eblits/pkg_preinst.eblit 3490 RMD160 10ab8692cfc439f0ad01a310d5070ced32320d33 SHA1 0df309b8d36a521a2b67439031c8761f6e41ac52 SHA256 61bf2cfdc886f67934b9df002e82f5c6d0136d61a079959a38e99fd9c551f9bd
+AUX eblits/pkg_preinst.eblit~ 3469 RMD160 a8f0831802ea5b5bec02b6379f08cd5f4f0ad27a SHA1 31a9a0815f11bd186c27d3cc44a394e4aee754be SHA256 7f947a83488dccd4c5169508d7c125d09fdd30ddd07d98b528ad12d83b9e2730
+AUX eblits/pkg_setup.eblit 3893 RMD160 b95d0abe0f84b1272edabc2c36300f7aa2b01ec5 SHA1 b972f27751df13ce86ddfc0087595d498c11f435 SHA256 2656dcb12e8bc3ce8697f48deb351467f83e2d44dbd20438ae170de9e4633fbd
+AUX eblits/pkg_setup.eblit~ 3886 RMD160 d2f86a2f404941bc7b6f6dabc29dd293dc2e9972 SHA1 b931c6dbc784f94f80f8ced2d2d0e1f0da4711af SHA256 be9c3dcef8315e52163b98631ea2c170c805f9accbaf5268df292574978c8e71
+AUX eblits/src_compile.eblit 5784 RMD160 6ad22caf12aae127b179a3be2f98219baf41aad1 SHA1 2eb689173674f09016596fab936b13ac0845c88c SHA256 426c485bfa581398dba659e1cd90bbb9d4414c404352e110cbb947fe9865a9d3
+AUX eblits/src_compile.eblit~ 5762 RMD160 d4c95be8567563e2d6075dfd90291b4870b09b15 SHA1 b53a77dc14a72ab4722147b6cfdc59d5ea4842a6 SHA256 8fd8021308a76283defec0f50e902815e08b2553fbec62eeb4b68e3b83516bad
+AUX eblits/src_install.eblit 7489 RMD160 e1e1c006e8e97d44038f3d655b170374a68707d0 SHA1 720498e25463a371706a7e9b93c0682ede2faafb SHA256 5d36af22e544b32d8fe75e4144e9220b0f016b2fdc0a789bbb04dd9ecafc6a5b
+AUX eblits/src_install.eblit~ 7470 RMD160 e21782fd708e57616b501a9920aeca72cea5cbb7 SHA1 2eed96771de35d77255f3957ff8023a53fdb4e99 SHA256 3a1599442d729d23f678b6582276ea6125855fe2f4c15f36851f89d441f4e145
+AUX eblits/src_test.eblit 1172 RMD160 a70e31e655cd3e306af6a498002de85b72258566 SHA1 4aec15e6ab67279258fd23400701fd38c106a38b SHA256 e5a390761b7ec613460b8da26df3ffe2a137217261dd9f87f2b78c3fa2a12727
+AUX eblits/src_unpack.eblit 5376 RMD160 b7186461366d32929dab13b12175033aa5e376dd SHA1 cf012d218f7277bf5a2d694b6afcd8ddd22a3ba5 SHA256 c12458c2c8c3d65c5c7b53a14cde6b6ebd7e7e7da8a51b005581a14ce3c2fdae
+AUX eblits/src_unpack.eblit~ 5365 RMD160 2fe0b47df144f297682ca71e0f470fe0721ef39e SHA1 654dbad14c725a434c7244124fb257f13c6a1b62 SHA256 325450d632d373cbc03a7b8a0d07042ada5b94d573cf799fed88ad6d3915d1d6
+AUX nscd 1621 RMD160 f6d20c4c3814f70d7741f3fa2e0b53ba32c37960 SHA1 5751fe798024c2021b7b3ed3e798618e2a38244a SHA256 6165db3a2fcb251d4f3655c0461e018ce9c92a37f7f22a8fd2b75178b5435bc8
+AUX nsswitch.conf 503 RMD160 f375f92f6b41029c93382c39cef896261b140cfc SHA1 42f7f5cc3de75c69bf60d806ac8490106ea63326 SHA256 6c38b8642d5da884327ad678d0351d57be3621562253bd9711394bad87e45e2d
+DIST glibc-2.10.1-patches-7.tar.bz2 113612 RMD160 333b6e15132dd72f09369aea52e88156aecfda5a SHA1 b8b42bd16f99b43d20a08790b9bffac4dfd57060 SHA256 6c94493e08c13072c94c967f55b659e6c950ec470c9677c43cfab10e24a88370
+DIST glibc-2.10.1.tar.bz2 16106243 RMD160 ca102519ab32714e788a0db5dd43c2f9962c86e9 SHA1 cb478cf9d6e2c905a1a4f4a2cae44a320b8dc50b SHA256 cbad3e637eab613184405a87a2bf08a41991a0e512a3ced60d120effc73de667
+DIST glibc-2.11.3-patches-3.tar.bz2 112513 RMD160 0d5762a35bb031f2a2f73152c89c7d6f4ba9e61b SHA1 fc103954d084747543a8407efd1eb4a9a9ed124a SHA256 e3b3a256151d86fec9a2625f29ea1486a3e770a0df8e5a803f4914da50e582e7
+DIST glibc-2.11.3.tar.bz2 15667797 RMD160 a5cc802ddff6c2e96f63a9dacbb429d0e9114e2d SHA1 2685601493829b0399578c87add614786b98c30b SHA256 9c10538262c13018910721b8160e6caf65ba38ca2750c5710bd220e44d696afa
+DIST glibc-2.12.1-patches-8.tar.bz2 112063 RMD160 5bf50dbd1bb30d5cc9a41ebfdc72fa8aaab31389 SHA1 4084514fea111eed609721ba45339ca45060e34e SHA256 564fe8d9dbf80763c32eca13129ecc69aa276eb8364fe15b400d0cf0cbbf7085
+DIST glibc-2.12.1.tar.bz2 15667516 RMD160 4a46745f4220f4253af0b882d0c2072499e17653 SHA1 ef5ca1e765719d3290bd24f94705f27534f3744b SHA256 759f115c52bc12c5bb453af559dcd456d32138250b7cc96e47804e3d0ec97407
+DIST glibc-2.12.2-patches-4.tar.bz2 109270 RMD160 35ff0d66dc5696060e04eecd4cc2dca3d4fe9610 SHA1 17b1a8b76735634f68df0adebf4e913236b30944 SHA256 23362824e7ffbcc34c05f82e6f51b30cb502e648efbe7bc6a644cb8384f57330
+DIST glibc-2.12.2.tar.bz2 15667759 RMD160 1855ebbbca52dc036de159cca720f6153e173e21 SHA1 3ef6d36eee2dc7c4351f215f689e6a04c161a35e SHA256 22f8eb3c49b9eb5e88fc249daf8670899adef24eb1f74708fb150a6502fa1216
+DIST glibc-2.13-patches-10.tar.bz2 115710 RMD160 505406b68254ff9881f6df74fa6fada5ed04e9f6 SHA1 34c34eaaed4ae5107e955dcd51a656b8b9ec31f1 SHA256 6335958a7260849ae0c4712ae723114b9f8453114e2b88ba016bfc109cb5fe99
+DIST glibc-2.13-patches-6.tar.bz2 103372 RMD160 bedadc250a515f57dc7fa23a4743ad3b8ecae9a8 SHA1 a9eccf14fcac6441fc206de4ca23e7b6beb6b3f0 SHA256 86335122c8523bf588b00508f656d5343e44f13001ec4fca088c127417e18846
+DIST glibc-2.13.tar.bz2 15725729 RMD160 cf34e4a06a2602deed709e2ee10cf7446a824989 SHA1 14d83dced873a21a3da6a0bfa0926f40d82ef980 SHA256 0173c92a0545e6d99a46a4fbed2da00ba26556f5c6198e2f9f1631ed5318dbb2
+DIST glibc-2.14-patches-7.tar.bz2 105702 RMD160 9231acbcdc980bdd1723f405b340d352613c0275 SHA1 a5a32f08c8221debf49dcfbcf3b61a039054fa21 SHA256 f213848ae57ca7c3bcd0ac87bf04ef638b9c8191a8124394771d758a861bf009
+DIST glibc-2.14.1-patches-1.tar.bz2 102822 RMD160 bb874c8f2d43c74b0d8bb0e206a8c889765d71b5 SHA1 d88403598c223f832274fb365e26460ff7c95c37 SHA256 cb344a7fa3434413cb1e38271d871d4825e94da04199cc6a67772be3bcab83de
+DIST glibc-2.14.1-patches-2.tar.bz2 152871 RMD160 b5a24969009858e2988b04a46198b64bdef6f758 SHA1 9aa19bcd5514906f56b7fe61162142ca08575d4f SHA256 c82f580b43dc6450274649be2eb88b91064b8e16c39051c32229871880ea4f68
+DIST glibc-2.14.1-patches-5.tar.bz2 159559 RMD160 25b72ae44aab4ec3f7fc516f144353af9e26be0c SHA1 4f6455ccd04608d8e51d64afbf43f273fa6a07e3 SHA256 b185e1742d4e180015f16bd8f641cb369a7ceb3e2ed691fb6c9cfe72e4a0703e
+DIST glibc-2.14.1.tar.bz2 15650580 RMD160 f6efab63efdddefd7b868ffcba53885450064996 SHA1 f1945eea78bb30563d33c9e6a5f6f97f374135b4 SHA256 6e85a2fa3ebe6b28103361f09d27eeda37a021f24dab73f34064456d5a715b3b
+DIST glibc-2.14.tar.bz2 15630590 RMD160 f2ba450342f353c7b0a9001ad375ff0adf3f86fc SHA1 2236a3530f83637c4338d81d9ac0f5b4c5e69820 SHA256 8404b54651d42133d9a2ab17d30d698e53c5f250b2ad8e5f3d9a208ea7c75d6c
+DIST glibc-2.15-patches-7.tar.bz2 151866 RMD160 46ae4353490f54d76c213303643a8484ab874a20 SHA1 767280646628f66ba023d9e36e8f624704fc5484 SHA256 9dfa6651ce1a811dbc32d1afc250727bada7c54c5c286567bb4e0922e7472c2b
+DIST glibc-2.15.tar.xz 10675188 RMD160 bc0f83611fa657d4c8cfa726bb54cfc70cab2d42 SHA1 58b038e2f184bbaac02dbfa41ed8c5851fedd5c9 SHA256 d94d85a27cac2a76ab263b7a130309a46c27ca725e39cd3260e83082366c9dd8
+DIST glibc-2.9-20081201.tar.bz2 16430489 RMD160 1e1feb4ee9c0892a0544c05adb6dd249544621cf SHA1 5756ca3b543a370c4ec9ffc8038b72bf0aa61c71 SHA256 6f8e515775e20ed48610860d10315adda418a3649b3465f36ee5cd467364a8f6
+DIST glibc-2.9-patches-8.tar.bz2 106638 RMD160 dbf343c0f2254674c6096fd65fe5dd33ad119248 SHA1 106452700e7a1a525266f79e77a49b443a8ed411 SHA256 5f1f8b569ac02c2f538bebd64d137bccb442ddfcb28b3ef17b86134edd8e3f6c
+DIST glibc-2.9-ports-20081201.tar.bz2 487663 RMD160 80eb0035ed2e021e79755d4151ccd6d73cd78d8d SHA1 90a6ecbce37aabe6093c4dd0c8817cbf86321627 SHA256 19bb6e89855171d7ae01aef92054dfe4524521fbc13c67bfaa3ee81944210744
+DIST glibc-libidn-2.10.1.tar.bz2 102248 RMD160 0fbb3ecc09f59f0b9e90e0669bd9cd6075164173 SHA1 50c1ac0d9ddff6eb83f75aa1c4cb84ba6fffa0cd SHA256 0fa72d1dd06a30642d3bb20a659f4ed0f4af54a205d7102896b68169b38676dc
+DIST glibc-ports-2.10.1.tar.bz2 584860 RMD160 1f094d4df18306ccb01037d07f0a0e3014fdfc60 SHA1 3cc9eff22d624c5fb6d951bbcb31b40112238fe7 SHA256 b1f1ec9720036a3a33598b8478eef102535444a083d5b5813a6981ed74ab4071
+DIST glibc-ports-2.11.tar.bz2 599606 RMD160 e7262cb903b42d27bd0666fb170d2abb4c8b478f SHA1 76a0513c74b80e34f81abcaabbc538fa0f33b6a4 SHA256 38d212b1a22ed121c97f2827e7357e3e077084635ebc197246993d328b1b6589
+DIST glibc-ports-2.12.1.tar.bz2 621800 RMD160 98b5d5f544336f16bfc8af193e5c447ee6c197ed SHA1 396c1e3958a7563ebdffc8ada8e142e0d6c0b225 SHA256 3986c166d08c30b83c9cc7d972651550b548386d5a02e4e4c985d9832de83110
+DIST glibc-ports-2.13.tar.bz2 625945 RMD160 676406e35c8e4fdceb4fcfa83bfbdb1ef3a3aa6a SHA1 1cc771b4bf80f4b0872a342763f4aa4a9a9292cd SHA256 b11c4501ae929883447f409c31d65e82822b1c5693075a825a3d54612876ee5a
+DIST glibc-ports-2.14.1.tar.bz2 630641 RMD160 aebb9e53aaa98cd6a76b2a278685cda03049c7d3 SHA1 f649bd5c0191315c92f6a4f46aaf7aa1bf82445d SHA256 1c830afb6d4aa166edaa09ec539580377ecbb16ba655d0aad6f5cb5a9a269aa9
+DIST glibc-ports-2.14.tar.bz2 631253 RMD160 e15f35b9e3bd6acb1a0608be15056bfe7a94c207 SHA1 47da0ab038ea7cc28bc82ff558ad2f6779c79995 SHA256 580a656a55a17ba3db80ab0a9321332cd1f0aaddd7fad76004b524303fb6632d
+DIST glibc-ports-2.15.tar.xz 427764 RMD160 037a5f681c1a48ff9ce84bde3ad66fe33e43b52a SHA1 f2ec7341143a52bfaf60ff373255a52bc710e985 SHA256 36ba204155df8822811103182c7534902905674919796b8751dc295f46db91a5
+EBUILD glibc-2.10.1-r1.ebuild 8047 RMD160 100cda8dc069f707c47d2b7942055392d7bd7765 SHA1 d35342519d99a2c8dd553c7efd67ce9ea4529f05 SHA256 48e77a6e4d95bdee4930e666bc57847b889190bc134f4765614fb6cdefc11324
+EBUILD glibc-2.11.3.ebuild 8261 RMD160 4517b0d30b58f1abf9654a30d6b103775d4e26b1 SHA1 1a687247b05dedbb7b4172ea525b39278504c978 SHA256 c62921a427c42c130d49c8e48d946722a3e8029d4594712fa252dfb6a1a4efb9
+EBUILD glibc-2.12.1-r3.ebuild 8632 RMD160 a660a9c9d7d651781fb55a757124137c368f3841 SHA1 71d9012bd8c4578b0f8f97a01218714816f48f22 SHA256 d3e40988c664cdce4af4301f8f62ac992c105a399ca1b2f4d8da34a1edd1605f
+EBUILD glibc-2.12.2.ebuild 8632 RMD160 d6edafe5297fd625f9fc2828d930d40569e18f8b SHA1 5a4e5d36b2b99509bc0f9e8a32c88ef8d4e4f5d4 SHA256 363fdb68f3f18a0549977b8efa325f78c6b16ae1b57ef80510ac685bee94fdb7
+EBUILD glibc-2.13-r2.ebuild 8558 RMD160 4c0284795ac095d466c245dea773fbbd58ae3658 SHA1 a10398572b706507c370274267b7f8ed2b8d6bec SHA256 53acef5334c74a0c37c0ecd218d92cd42d4a9a224d83e0768f0842e0fb204ea0
+EBUILD glibc-2.13-r4.ebuild 8549 RMD160 e865f806a6c30e23985d72dec2f10c661574b07b SHA1 45bd9d3285dc3b40eb0d8c68385629cd050a7677 SHA256 a721ea5373d025a388c302921bff66ee5525a541402655f76dfb600eaf87e00e
+EBUILD glibc-2.14.1-r1.ebuild 8900 RMD160 c709d275cb82a9d5b32debbe262daaa560e5815f SHA1 fa9f1c68ceb50e2b64d506d2525bd0c8e4fa1ee3 SHA256 221bb9461a297854e92bd138e5d2dee72862b27a176334fdb9983f40c0a82b16
+EBUILD glibc-2.14.1-r2.ebuild 8918 RMD160 ee308b1d48f60646ba2aeaf066818e4a9e661202 SHA1 feb12f039e3c324debfa6aefd6caf013468cf255 SHA256 96c6d9d7cef09d848da5f6adf83b36bbfe716659962f8ac31a499d35f82e6a67
+EBUILD glibc-2.14.1.ebuild 8753 RMD160 43a94456bf81f29ab459a8184eb90e33c0df2b7d SHA1 16835011f75f5f9368a3773cc14ab3ff4b25bb21 SHA256 5cfcec552f246453bb34c4a84b4a173cd6068d8e5d9ea6f76109cd9867078e63
+EBUILD glibc-2.14.ebuild 8763 RMD160 08025db2ed84c7119924feabe0ab5d5a811ce729 SHA1 b6f8c375d22fab9115e224888c209d7cf8cf218a SHA256 cb9072e151c8260a097a21ffa40cd8e12991b599cb1d210f40689e221f046da9
+EBUILD glibc-2.15.ebuild 8527 RMD160 4f0e9c9bd686a1cb7da4c58272d7aa2aef462433 SHA1 f82aad6d076066c4c4c0a3c2ef3f0d4bd51f18cd SHA256 c8589ba60525ef7f1699f94e8b495954fb7b924da03f89321674c18927f57798
+EBUILD glibc-2.9_p20081201-r3.ebuild 7693 RMD160 d29e97a48c7d73ad524b00ee84ace31482d6cefa SHA1 1d2bc39eab289370c28036e578eb8b1e08558a31 SHA256 48f8eb185d511128b482a84be56d4d3e7bd655ee01d408b09600efd1be5f8397
+EBUILD glibc-9999.ebuild 8352 RMD160 6b856a7d19ecce635402e7a19377c3c773b2ea60 SHA1 50c96ba402f80d6dc7655acf825d393f0839f5cf SHA256 a3dec3020bde78dff2315a72c6557491f2abf26698083b5d1c36c1d85e467905
+MISC ChangeLog 39680 RMD160 36209405fdb59eb3ec29d3924422e521406eab7b SHA1 8264ec23464c68bd22476ddcbaeff3026d19b341 SHA256 dc01e48eba83f409037c4f4580eb435a57432a6cfb001f4c2261b1bfd6ae29a5
+MISC ChangeLog-2007 108587 RMD160 cab72e91dbf79869f246537d0d99870a836cc61d SHA1 ab2825c549e4bfe385f7b3d477b594f2317c3b37 SHA256 bd7e842bcda0f9e8375963d71dbb1604e1e8ef89484f3e205afde631eeec2c17
+MISC metadata.xml 423 RMD160 cf6f12db580ed1cff7cf7287723daece896268ae SHA1 ecd822cb67d353dea55f6a07d0e14a4b3a3644a7 SHA256 9e9a0143eff95971cf35957f2334ba791557e6408fff8784188fdba70d48f4b5
diff --git a/sys-libs/glibc/files/2.10/glibc-2.10-gentoo-chk_fail.c b/sys-libs/glibc/files/2.10/glibc-2.10-gentoo-chk_fail.c
new file mode 100644
index 0000000..37711e8
--- /dev/null
+++ b/sys-libs/glibc/files/2.10/glibc-2.10-gentoo-chk_fail.c
@@ -0,0 +1,315 @@
+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* Copyright (C) 2006-2008 Gentoo Foundation Inc.
+ * License terms as above.
+ *
+ * Hardened Gentoo SSP and FORTIFY handler
+ *
+ * An SSP failure handler that does not use functions from the rest of
+ * glibc; it uses the INTERNAL_SYSCALL methods directly. This ensures
+ * no possibility of recursion into the handler.
+ *
+ * Direct all bug reports to http://bugs.gentoo.org/
+ *
+ * Re-written from the glibc-2.3 Hardened Gentoo SSP handler
+ * by Kevin F. Quinn - <kevquinn[@]gentoo.org>
+ *
+ * The following people contributed to the glibc-2.3 Hardened
+ * Gentoo SSP and FORTIFY handler, from which this implementation draws much:
+ *
+ * Ned Ludd - <solar[@]gentoo.org>
+ * Alexander Gabert - <pappy[@]gentoo.org>
+ * The PaX Team - <pageexec[@]freemail.hu>
+ * Peter S. Mazinger - <ps.m[@]gmx.net>
+ * Yoann Vandoorselaere - <yoann[@]prelude-ids.org>
+ * Robert Connolly - <robert[@]linuxfromscratch.org>
+ * Cory Visi <cory[@]visi.name>
+ * Mike Frysinger <vapier[@]gentoo.org>
+ * Magnus Granberg <zorry[@]ume.nu>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <unistd.h>
+#include <signal.h>
+
+#include <sys/types.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+#include <bp-checks.h>
+
+#include <kernel-features.h>
+
+#include <alloca.h>
+/* from sysdeps */
+#include <socketcall.h>
+/* for the stuff in bits/socket.h */
+#include <sys/socket.h>
+#include <sys/un.h>
+
+/* Sanity check on SYSCALL macro names - force compilation
+ * failure if the names used here do not exist
+ */
+#if !defined __NR_socketcall && !defined __NR_socket
+# error Cannot do syscall socket or socketcall
+#endif
+#if !defined __NR_socketcall && !defined __NR_connect
+# error Cannot do syscall connect or socketcall
+#endif
+#ifndef __NR_write
+# error Cannot do syscall write
+#endif
+#ifndef __NR_close
+# error Cannot do syscall close
+#endif
+#ifndef __NR_getpid
+# error Cannot do syscall getpid
+#endif
+#ifndef __NR_kill
+# error Cannot do syscall kill
+#endif
+#ifndef __NR_exit
+# error Cannot do syscall exit
+#endif
+#ifdef SSP_SMASH_DUMPS_CORE
+# define ENABLE_SSP_SMASH_DUMPS_CORE 1
+# if !defined _KERNEL_NSIG && !defined _NSIG
+# error No _NSIG or _KERNEL_NSIG for rt_sigaction
+# endif
+# if !defined __NR_sigaction && !defined __NR_rt_sigaction
+# error Cannot do syscall sigaction or rt_sigaction
+# endif
+/* Although rt_sigaction expects sizeof(sigset_t) - it expects the size
+ * of the _kernel_ sigset_t which is not the same as the user sigset_t.
+ * Most arches have this as _NSIG bits - mips has _KERNEL_NSIG bits for
+ * some reason.
+ */
+# ifdef _KERNEL_NSIG
+# define _SSP_NSIG _KERNEL_NSIG
+# else
+# define _SSP_NSIG _NSIG
+# endif
+#else
+# define _SSP_NSIG 0
+# define ENABLE_SSP_SMASH_DUMPS_CORE 0
+#endif
+
+/* Define DO_SIGACTION - default to newer rt signal interface but
+ * fallback to old as needed.
+ */
+#ifdef __NR_rt_sigaction
+# define DO_SIGACTION(signum, act, oldact) \
+ INLINE_SYSCALL(rt_sigaction, 4, signum, act, oldact, _SSP_NSIG/8)
+#else
+# define DO_SIGACTION(signum, act, oldact) \
+ INLINE_SYSCALL(sigaction, 3, signum, act, oldact)
+#endif
+
+/* Define DO_SOCKET/DO_CONNECT functions to deal with socketcall vs socket/connect */
+#if defined(__NR_socket) && defined(__NR_connect)
+# define USE_OLD_SOCKETCALL 0
+#else
+# define USE_OLD_SOCKETCALL 1
+#endif
+
+/* stub out the __NR_'s so we can let gcc optimize away dead code */
+#ifndef __NR_socketcall
+# define __NR_socketcall 0
+#endif
+#ifndef __NR_socket
+# define __NR_socket 0
+#endif
+#ifndef __NR_connect
+# define __NR_connect 0
+#endif
+#define DO_SOCKET(result, domain, type, protocol) \
+ do { \
+ if (USE_OLD_SOCKETCALL) { \
+ socketargs[0] = domain; \
+ socketargs[1] = type; \
+ socketargs[2] = protocol; \
+ socketargs[3] = 0; \
+ result = INLINE_SYSCALL(socketcall, 2, SOCKOP_socket, socketargs); \
+ } else \
+ result = INLINE_SYSCALL(socket, 3, domain, type, protocol); \
+ } while (0)
+#define DO_CONNECT(result, sockfd, serv_addr, addrlen) \
+ do { \
+ if (USE_OLD_SOCKETCALL) { \
+ socketargs[0] = sockfd; \
+ socketargs[1] = (unsigned long int)serv_addr; \
+ socketargs[2] = addrlen; \
+ socketargs[3] = 0; \
+ result = INLINE_SYSCALL(socketcall, 2, SOCKOP_connect, socketargs); \
+ } else \
+ result = INLINE_SYSCALL(connect, 3, sockfd, serv_addr, addrlen); \
+ } while (0)
+
+#ifndef _PATH_LOG
+# define _PATH_LOG "/dev/log"
+#endif
+
+static const char path_log[] = _PATH_LOG;
+
+/* For building glibc with SSP switched on, define __progname to a
+ * constant if building for the run-time loader, to avoid pulling
+ * in more of libc.so into ld.so
+ */
+#ifdef IS_IN_rtld
+static char *__progname = "<rtld>";
+#else
+extern char *__progname;
+#endif
+
+/* Common handler code, used by chk_fail
+ * Inlined to ensure no self-references to the handler within itself.
+ * Data static to avoid putting more than necessary on the stack,
+ * to aid core debugging.
+ */
+__attribute__ ((__noreturn__ , __always_inline__))
+static inline void
+__hardened_gentoo_chk_fail(char func[], int damaged)
+{
+#define MESSAGE_BUFSIZ 256
+ static pid_t pid;
+ static int plen, i;
+ static char message[MESSAGE_BUFSIZ];
+ static const char msg_ssa[] = ": buffer overflow attack";
+ static const char msg_inf[] = " in function ";
+ static const char msg_ssd[] = "*** buffer overflow detected ***: ";
+ static const char msg_terminated[] = " - terminated\n";
+ static const char msg_report[] = "Report to http://bugs.gentoo.org/\n";
+ static const char msg_unknown[] = "<unknown>";
+ static int log_socket, connect_result;
+ static struct sockaddr_un sock;
+ static unsigned long int socketargs[4];
+
+ /* Build socket address
+ */
+ sock.sun_family = AF_UNIX;
+ i = 0;
+ while ((path_log[i] != '\0') && (i<(sizeof(sock.sun_path)-1))) {
+ sock.sun_path[i] = path_log[i];
+ i++;
+ }
+ sock.sun_path[i] = '\0';
+
+ /* Try SOCK_DGRAM connection to syslog */
+ connect_result = -1;
+ DO_SOCKET(log_socket, AF_UNIX, SOCK_DGRAM, 0);
+ if (log_socket != -1)
+ DO_CONNECT(connect_result, log_socket, &sock, sizeof(sock));
+ if (connect_result == -1) {
+ if (log_socket != -1)
+ INLINE_SYSCALL(close, 1, log_socket);
+ /* Try SOCK_STREAM connection to syslog */
+ DO_SOCKET(log_socket, AF_UNIX, SOCK_STREAM, 0);
+ if (log_socket != -1)
+ DO_CONNECT(connect_result, log_socket, &sock, sizeof(sock));
+ }
+
+ /* Build message. Messages are generated both in the old style and new style,
+ * so that log watchers that are configured for the old-style message continue
+ * to work.
+ */
+#define strconcat(str) \
+ {i=0; while ((str[i] != '\0') && ((i+plen)<(MESSAGE_BUFSIZ-1))) \
+ {\
+ message[plen+i]=str[i];\
+ i++;\
+ }\
+ plen+=i;}
+
+ /* R.Henderson post-gcc-4 style message */
+ plen = 0;
+ strconcat(msg_ssd);
+ if (__progname != (char *)0)
+ strconcat(__progname)
+ else
+ strconcat(msg_unknown);
+ strconcat(msg_terminated);
+
+ /* Write out error message to STDERR, to syslog if open */
+ INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen);
+ if (connect_result != -1)
+ INLINE_SYSCALL(write, 3, log_socket, message, plen);
+
+ /* Dr. Etoh pre-gcc-4 style message */
+ plen = 0;
+ if (__progname != (char *)0)
+ strconcat(__progname)
+ else
+ strconcat(msg_unknown);
+ strconcat(msg_ssa);
+ strconcat(msg_inf);
+ if (func != NULL)
+ strconcat(func)
+ else
+ strconcat(msg_unknown);
+ strconcat(msg_terminated);
+ /* Write out error message to STDERR, to syslog if open */
+ INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen);
+ if (connect_result != -1)
+ INLINE_SYSCALL(write, 3, log_socket, message, plen);
+
+ /* Direct reports to bugs.gentoo.org */
+ plen=0;
+ strconcat(msg_report);
+ message[plen++]='\0';
+
+ /* Write out error message to STDERR, to syslog if open */
+ INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen);
+ if (connect_result != -1)
+ INLINE_SYSCALL(write, 3, log_socket, message, plen);
+
+ if (log_socket != -1)
+ INLINE_SYSCALL(close, 1, log_socket);
+
+ /* Suicide */
+ pid = INLINE_SYSCALL(getpid, 0);
+
+ if (ENABLE_SSP_SMASH_DUMPS_CORE) {
+ static struct sigaction default_abort_act;
+ /* Remove any user-supplied handler for SIGABRT, before using it */
+ default_abort_act.sa_handler = SIG_DFL;
+ default_abort_act.sa_sigaction = NULL;
+ __sigfillset(&default_abort_act.sa_mask);
+ default_abort_act.sa_flags = 0;
+ if (DO_SIGACTION(SIGABRT, &default_abort_act, NULL) == 0)
+ INLINE_SYSCALL(kill, 2, pid, SIGABRT);
+ }
+
+ /* Note; actions cannot be added to SIGKILL */
+ INLINE_SYSCALL(kill, 2, pid, SIGKILL);
+
+ /* In case the kill didn't work, exit anyway
+ * The loop prevents gcc thinking this routine returns
+ */
+ while (1)
+ INLINE_SYSCALL(exit, 0);
+}
+
+__attribute__ ((__noreturn__))
+void __chk_fail(void)
+{
+ __hardened_gentoo_chk_fail(NULL, 0);
+}
+
diff --git a/sys-libs/glibc/files/2.10/glibc-2.10-hardened-configure-picdefault.patch b/sys-libs/glibc/files/2.10/glibc-2.10-hardened-configure-picdefault.patch
new file mode 100644
index 0000000..e75ccc7
--- /dev/null
+++ b/sys-libs/glibc/files/2.10/glibc-2.10-hardened-configure-picdefault.patch
@@ -0,0 +1,30 @@
+Prevent default-fPIE from confusing configure into thinking
+PIC code is default. This causes glibc to build both PIC and
+non-PIC code as normal, which on the hardened compiler generates
+PIC and PIE.
+
+Patch by Kevin F. Quinn <kevquinn@gentoo.org>
+Fixed for glibc 2.10 by Magnus Granberg <zorry@ume.nu>
+
+--- configure.in
++++ configure.in
+@@ -2145,7 +2145,7 @@
+ # error PIC is default.
+ #endif
+ EOF
+-if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
++if eval "${CC-cc} -fno-PIE -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
+ libc_cv_pic_default=no
+ fi
+ rm -f conftest.*])
+--- configure
++++ configure
+@@ -7698,7 +7698,7 @@
+ # error PIC is default.
+ #endif
+ EOF
+-if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then
++if eval "${CC-cc} -fno-PIE -S conftest.c 2>&5 1>&5"; then
+ libc_cv_pic_default=no
+ fi
+ rm -f conftest.*
diff --git a/sys-libs/glibc/files/2.10/glibc-2.10-hardened-inittls-nosysenter.patch b/sys-libs/glibc/files/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
new file mode 100644
index 0000000..cb6d8e3
--- /dev/null
+++ b/sys-libs/glibc/files/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
@@ -0,0 +1,274 @@
+When building glibc PIE (which is not something upstream support),
+several modifications are necessary to the glibc build process.
+
+First, any syscalls in PIEs must be of the PIC variant, otherwise
+textrels ensue. Then, any syscalls made before the initialisation
+of the TLS will fail on i386, as the sysenter variant on i386 uses
+the TLS, giving rise to a chicken-and-egg situation. This patch
+defines a PIC syscall variant that doesn't use sysenter, even when the sysenter
+version is normally used, and uses the non-sysenter version for the brk
+syscall that is performed by the TLS initialisation. Further, the TLS
+initialisation is moved in this case prior to the initialisation of
+dl_osversion, as that requires further syscalls.
+
+csu/libc-start.c: Move initial TLS initialization to before the
+initialisation of dl_osversion, when INTERNAL_SYSCALL_NOSYSENTER is defined
+
+csu/libc-tls.c: Use the no-sysenter version of sbrk when
+INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+misc/sbrk.c: Define a no-sysenter version of sbrk, using the no-sysenter
+version of brk - if INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+misc/brk.c: Define a no-sysenter version of brk if
+INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+sysdeps/unix/sysv/linux/i386/sysdep.h: Define INTERNAL_SYSCALL_NOSYSENTER
+Make INTERNAL_SYSCALL always use the PIC variant, even if not SHARED.
+
+Patch by Kevin F. Quinn <kevquinn@gentoo.org>
+Fixed for 2.10 by Magnus Granberg <zorry@ume.nu>
+
+--- csu/libc-start.c
++++ csu/libc-start.c
+@@ -28,6 +28,7 @@
+ extern int __libc_multiple_libcs;
+
+ #include <tls.h>
++#include <sysdep.h>
+ #ifndef SHARED
+ # include <dl-osinfo.h>
+ extern void __pthread_initialize_minimal (void);
+@@ -129,6 +130,11 @@
+ # endif
+ _dl_aux_init (auxvec);
+ # endif
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ /* Do the initial TLS initialization before _dl_osversion,
++ since the latter uses the uname syscall. */
++ __pthread_initialize_minimal ();
++# endif
+ # ifdef DL_SYSDEP_OSCHECK
+ if (!__libc_multiple_libcs)
+ {
+@@ -138,10 +144,12 @@
+ }
+ # endif
+
++# ifndef INTERNAL_SYSCALL_NOSYSENTER
+ /* Initialize the thread library at least a bit since the libgcc
+ functions are using thread functions if these are available and
+ we need to setup errno. */
+ __pthread_initialize_minimal ();
++# endif
+
+ /* Set up the stack checker's canary. */
+ uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard ();
+--- csu/libc-tls.c
++++ csu/libc-tls.c
+@@ -23,6 +23,7 @@
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <sys/param.h>
++#include <sysdep.h>
+
+
+ #ifdef SHARED
+@@ -29,6 +30,9 @@
+ #error makefile bug, this file is for static only
+ #endif
+
++#ifdef INTERNAL_SYSCALL_NOSYSENTER
++extern void *__sbrk_nosysenter (intptr_t __delta);
++#endif
+ extern ElfW(Phdr) *_dl_phdr;
+ extern size_t _dl_phnum;
+
+@@ -141,14 +145,26 @@
+
+ The initialized value of _dl_tls_static_size is provided by dl-open.c
+ to request some surplus that permits dynamic loading of modules with
+- IE-model TLS. */
++ IE-model TLS.
++
++ Where the normal sbrk would use a syscall that needs the TLS (i386)
++ use the special non-sysenter version instead. */
+ #if TLS_TCB_AT_TP
+ tcb_offset = roundup (memsz + GL(dl_tls_static_size), tcbalign);
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ tlsblock = __sbrk_nosysenter (tcb_offset + tcbsize + max_align);
++# else
+ tlsblock = __sbrk (tcb_offset + tcbsize + max_align);
++# endif
+ #elif TLS_DTV_AT_TP
+ tcb_offset = roundup (tcbsize, align ?: 1);
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ tlsblock = __sbrk_nosysenter (tcb_offset + memsz + max_align
++ + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size));
++# else
+ tlsblock = __sbrk (tcb_offset + memsz + max_align
+ + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size));
++# endif
+ tlsblock += TLS_PRE_TCB_SIZE;
+ #else
+ /* In case a model with a different layout for the TCB and DTV
+--- misc/sbrk.c
++++ misc/sbrk.c
+@@ -18,6 +18,7 @@
+ #include <errno.h>
+ #include <stdint.h>
+ #include <unistd.h>
++#include <sysdep.h>
+
+ /* Defined in brk.c. */
+ extern void *__curbrk;
+@@ -29,6 +30,35 @@
+ /* Extend the process's data space by INCREMENT.
+ If INCREMENT is negative, shrink data space by - INCREMENT.
+ Return start of new space allocated, or -1 for errors. */
++#ifdef INTERNAL_SYSCALL_NOSYSENTER
++/* This version is used by csu/libc-tls.c whem initialising the TLS
++ if the SYSENTER version requires the TLS (which it does on i386).
++ Obviously using the TLS before it is initialised is broken. */
++extern int __brk_nosysenter (void *addr);
++void *
++__sbrk_nosysenter (intptr_t increment)
++{
++ void *oldbrk;
++
++ /* If this is not part of the dynamic library or the library is used
++ via dynamic loading in a statically linked program update
++ __curbrk from the kernel's brk value. That way two separate
++ instances of __brk and __sbrk can share the heap, returning
++ interleaved pieces of it. */
++ if (__curbrk == NULL || __libc_multiple_libcs)
++ if (__brk_nosysenter (0) < 0) /* Initialize the break. */
++ return (void *) -1;
++
++ if (increment == 0)
++ return __curbrk;
++
++ oldbrk = __curbrk;
++ if (__brk_nosysenter (oldbrk + increment) < 0)
++ return (void *) -1;
++
++ return oldbrk;
++}
++#endif
+ void *
+ __sbrk (intptr_t increment)
+ {
+--- sysdeps/unix/sysv/linux/i386/brk.c
++++ sysdeps/unix/sysv/linux/i386/brk.c
+@@ -31,6 +31,30 @@
+ linker. */
+ weak_alias (__curbrk, ___brk_addr)
+
++#ifdef INTERNAL_SYSCALL_NOSYSENTER
++/* This version is used by csu/libc-tls.c whem initialising the TLS
++ * if the SYSENTER version requires the TLS (which it does on i386).
++ * Obviously using the TLS before it is initialised is broken. */
++int
++__brk_nosysenter (void *addr)
++{
++ void *__unbounded newbrk;
++
++ INTERNAL_SYSCALL_DECL (err);
++ newbrk = (void *__unbounded) INTERNAL_SYSCALL_NOSYSENTER (brk, err, 1,
++ __ptrvalue (addr));
++
++ __curbrk = newbrk;
++
++ if (newbrk < addr)
++ {
++ __set_errno (ENOMEM);
++ return -1;
++ }
++
++ return 0;
++}
++#endif
+ int
+ __brk (void *addr)
+ {
+--- sysdeps/unix/sysv/linux/i386/sysdep.h
++++ sysdeps/unix/sysv/linux/i386/sysdep.h
+@@ -187,7 +187,7 @@
+ /* The original calling convention for system calls on Linux/i386 is
+ to use int $0x80. */
+ #ifdef I386_USE_SYSENTER
+-# ifdef SHARED
++# if defined SHARED || defined __PIC__
+ # define ENTER_KERNEL call *%gs:SYSINFO_OFFSET
+ # else
+ # define ENTER_KERNEL call *_dl_sysinfo
+@@ -358,7 +358,7 @@
+ possible to use more than four parameters. */
+ #undef INTERNAL_SYSCALL
+ #ifdef I386_USE_SYSENTER
+-# ifdef SHARED
++# if defined SHARED || defined __PIC__
+ # define INTERNAL_SYSCALL(name, err, nr, args...) \
+ ({ \
+ register unsigned int resultvar; \
+@@ -384,6 +384,18 @@
+ : "0" (name), "i" (offsetof (tcbhead_t, sysinfo)) \
+ ASMFMT_##nr(args) : "memory", "cc"); \
+ (int) resultvar; })
++# define INTERNAL_SYSCALL_NOSYSENTER(name, err, nr, args...) \
++ ({ \
++ register unsigned int resultvar; \
++ EXTRAVAR_##nr \
++ asm volatile ( \
++ LOADARGS_NOSYSENTER_##nr \
++ "movl %1, %%eax\n\t" \
++ "int $0x80\n\t" \
++ RESTOREARGS_NOSYSENTER_##nr \
++ : "=a" (resultvar) \
++ : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc"); \
++ (int) resultvar; })
+ # else
+ # define INTERNAL_SYSCALL(name, err, nr, args...) \
+ ({ \
+@@ -447,12 +459,20 @@
+
+ #define LOADARGS_0
+ #ifdef __PIC__
+-# if defined I386_USE_SYSENTER && defined SHARED
++# if defined I386_USE_SYSENTER && ( defined SHARED || defined __PIC__ )
+ # define LOADARGS_1 \
+ "bpushl .L__X'%k3, %k3\n\t"
+ # define LOADARGS_5 \
+ "movl %%ebx, %4\n\t" \
+ "movl %3, %%ebx\n\t"
++# define LOADARGS_NOSYSENTER_1 \
++ "bpushl .L__X'%k2, %k2\n\t"
++# define LOADARGS_NOSYSENTER_2 LOADARGS_NOSYSENTER_1
++# define LOADARGS_NOSYSENTER_3 LOADARGS_3
++# define LOADARGS_NOSYSENTER_4 LOADARGS_3
++# define LOADARGS_NOSYSENTER_5 \
++ "movl %%ebx, %3\n\t" \
++ "movl %2, %%ebx\n\t"
+ # else
+ # define LOADARGS_1 \
+ "bpushl .L__X'%k2, %k2\n\t"
+@@ -474,11 +495,18 @@
+
+ #define RESTOREARGS_0
+ #ifdef __PIC__
+-# if defined I386_USE_SYSENTER && defined SHARED
++# if defined I386_USE_SYSENTER && ( defined SHARED || defined __PIC__ )
+ # define RESTOREARGS_1 \
+ "bpopl .L__X'%k3, %k3\n\t"
+ # define RESTOREARGS_5 \
+ "movl %4, %%ebx"
++# define RESTOREARGS_NOSYSENTER_1 \
++ "bpopl .L__X'%k2, %k2\n\t"
++# define RESTOREARGS_NOSYSENTER_2 RESTOREARGS_NOSYSENTER_1
++# define RESTOREARGS_NOSYSENTER_3 RESTOREARGS_3
++# define RESTOREARGS_NOSYSENTER_4 RESTOREARGS_3
++# define RESTOREARGS_NOSYSENTER_5 \
++ "movl %3, %%ebx"
+ # else
+ # define RESTOREARGS_1 \
+ "bpopl .L__X'%k2, %k2\n\t"
diff --git a/sys-libs/glibc/files/2.10/glibc-2.10-hardened-ssp-compat.patch b/sys-libs/glibc/files/2.10/glibc-2.10-hardened-ssp-compat.patch
new file mode 100644
index 0000000..a1c9eef
--- /dev/null
+++ b/sys-libs/glibc/files/2.10/glibc-2.10-hardened-ssp-compat.patch
@@ -0,0 +1,168 @@
+Add backwards compat support for gcc-3.x ssp ... older ssp versions
+used __guard and __stack_smash_handler symbols while gcc-4.1 and newer
+uses __stack_chk_guard and __stack_chk_fail.
+
+--- config.h.in
++++ config.h.in
+@@ -42,6 +42,9 @@
+ assembler instructions per line. Default is `;' */
+ #undef ASM_LINE_SEP
+
++/* Define if we want to enable support for old ssp symbols */
++#undef ENABLE_OLD_SSP_COMPAT
++
+ /* Define if not using ELF, but `.init' and `.fini' sections are available. */
+ #undef HAVE_INITFINI
+
+--- configure
++++ configure
+@@ -1378,6 +1378,9 @@ Optional Features:
+ --enable-kernel=VERSION compile for compatibility with kernel not older than
+ VERSION
+ --enable-all-warnings enable all useful warnings gcc can issue
++ --disable-old-ssp-compat
++ enable support for older ssp symbols
++ [default=no]
+ --enable-multi-arch enable single DSO with optimizations for multiple
+ architectures
+ --enable-experimental-malloc
+@@ -6462,6 +6465,20 @@ fi
+ $as_echo "$libc_cv_ssp" >&6; }
+
+
++# Check whether --enable-old-ssp-compat or --disable-old-ssp-compat was given.
++if test "${enable_old_ssp_compat+set}" = set; then
++ enableval="$enable_old_ssp_compat"
++ enable_old_ssp_compat=$enableval
++else
++ enable_old_ssp_compat=no
++fi;
++if test "x$enable_old_ssp_compat" = "xyes"; then
++ cat >>confdefs.h <<\_ACEOF
++#define ENABLE_OLD_SSP_COMPAT 1
++_ACEOF
++
++fi
++
+ { $as_echo "$as_me:$LINENO: checking for -fgnu89-inline" >&5
+ $as_echo_n "checking for -fgnu89-inline... " >&6; }
+ if test "${libc_cv_gnu89_inline+set}" = set; then
+--- configure.in
++++ configure.in
+@@ -1641,6 +1641,15 @@ fi
+ rm -f conftest*])
+ AC_SUBST(libc_cv_ssp)
+
++AC_ARG_ENABLE([old-ssp-compat],
++ AC_HELP_STRING([--enable-old-ssp-compat],
++ [enable support for older ssp symbols @<:@default=no@:>@]),
++ [enable_old_ssp_compat=$enableval],
++ [enable_old_ssp_compat=no])
++if test "x$enable_old_ssp_compat" = "xyes"; then
++ AC_DEFINE(ENABLE_OLD_SSP_COMPAT)
++fi
++
+ AC_CACHE_CHECK(for -fgnu89-inline, libc_cv_gnu89_inline, [dnl
+ cat > conftest.c <<EOF
+ int foo;
+--- csu/libc-start.c
++++ csu/libc-start.c
+@@ -37,6 +37,9 @@ extern void __pthread_initialize_minimal
+ uintptr_t __stack_chk_guard attribute_relro;
+ # endif
+ #endif
++#ifdef ENABLE_OLD_SSP_COMPAT
++uintptr_t __guard attribute_relro;
++#endif
+
+ #ifdef HAVE_PTR_NTHREADS
+ /* We need atomic operations. */
+@@ -141,6 +145,9 @@ LIBC_START_MAIN (int (*main) (int, char
+
+ /* Set up the stack checker's canary. */
+ uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random);
++#ifdef ENABLE_OLD_SSP_COMPAT
++ __guard = stack_chk_guard;
++#endif
+ # ifdef THREAD_SET_STACK_GUARD
+ THREAD_SET_STACK_GUARD (stack_chk_guard);
+ # else
+--- csu/Versions
++++ csu/Versions
+@@ -17,6 +17,12 @@ libc {
+ # New special glibc functions.
+ gnu_get_libc_release; gnu_get_libc_version;
+ }
++ GLIBC_2.3.2 {
++%ifdef ENABLE_OLD_SSP_COMPAT
++ # global objects and functions for the old propolice patch in gcc
++ __guard;
++%endif
++ }
+ GLIBC_PRIVATE {
+ %if HAVE___THREAD
+ # This version is for the TLS symbol, GLIBC_2.0 is the old object symbol.
+--- debug/Versions
++++ debug/Versions
+@@ -10,6 +10,12 @@ libc {
+ # These are to support some gcc features.
+ __cyg_profile_func_enter; __cyg_profile_func_exit;
+ }
++%ifdef ENABLE_OLD_SSP_COMPAT
++ GLIBC_2.3.2 {
++ # backwards ssp compat support; alias to __stack_chk_fail
++ __stack_smash_handler;
++ }
++%endif
+ GLIBC_2.3.4 {
+ __chk_fail;
+ __memcpy_chk; __memmove_chk; __mempcpy_chk; __memset_chk; __stpcpy_chk;
+--- elf/rtld.c
++++ elf/rtld.c
+@@ -89,6 +89,9 @@ INTDEF(_dl_argv)
+ in thread local area. */
+ uintptr_t __stack_chk_guard attribute_relro;
+ #endif
++#ifdef ENABLE_OLD_SSP_COMPAT
++uintptr_t __guard attribute_relro;
++#endif
+
+ /* Only exported for architectures that don't store the pointer guard
+ value in thread local area. */
+@@ -1817,6 +1821,9 @@ ERROR: ld.so: object '%s' cannot be load
+
+ /* Set up the stack checker's canary. */
+ uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random);
++#ifdef ENABLE_OLD_SSP_COMPAT
++ __guard = stack_chk_guard;
++#endif
+ #ifdef THREAD_SET_STACK_GUARD
+ THREAD_SET_STACK_GUARD (stack_chk_guard);
+ #else
+--- elf/Versions
++++ elf/Versions
+@@ -43,6 +43,12 @@ ld {
+ # runtime interface to TLS
+ __tls_get_addr;
+ }
++%ifdef ENABLE_OLD_SSP_COMPAT
++ GLIBC_2.3.2 {
++ # backwards ssp compat support
++ __guard;
++ }
++%endif
+ GLIBC_2.4 {
+ # stack canary
+ __stack_chk_guard;
+--- Versions.def
++++ Versions.def
+@@ -109,6 +109,9 @@ ld {
+ GLIBC_2.0
+ GLIBC_2.1
+ GLIBC_2.3
++%ifdef ENABLE_OLD_SSP_COMPAT
++ GLIBC_2.3.2
++%endif
+ GLIBC_2.4
+ GLIBC_PRIVATE
+ }
diff --git a/sys-libs/glibc/files/2.11/glibc-2.11-hardened-pie.patch b/sys-libs/glibc/files/2.11/glibc-2.11-hardened-pie.patch
new file mode 100644
index 0000000..df7292f
--- /dev/null
+++ b/sys-libs/glibc/files/2.11/glibc-2.11-hardened-pie.patch
@@ -0,0 +1,40 @@
+http://bugs.gentoo.org/292139
+
+2009-11-08 Magnus Granberg <zorry@ume.nu>
+
+ * Makeconfig (+link): Set to +link-pie.
+ (+link-static): Change $(static-start-installed-name) to
+ S$(static-start-installed-name).
+ (+prector): Set to +prectorS.
+ (+postctor): Set to +postctorS.
+
+--- libc/Makeconfig
++++ libc/Makeconfig
+@@ -447,11 +447,12 @@
+ $(common-objpfx)libc% $(+postinit),$^) \
+ $(link-extra-libs) $(link-libc) $(+postctorS) $(+postinit)
+ endif
+++link = $(+link-pie)
+ # Command for statically linking programs with the C library.
+ ifndef +link-static
+ +link-static = $(CC) -nostdlib -nostartfiles -static -o $@ \
+ $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
+- $(addprefix $(csu-objpfx),$(static-start-installed-name)) \
++ $(addprefix $(csu-objpfx),S$(static-start-installed-name)) \
+ $(+preinit) $(+prector) \
+ $(filter-out $(addprefix $(csu-objpfx),start.o \
+ $(start-installed-name))\
+@@ -549,11 +550,10 @@
+ ifeq ($(elf),yes)
+ +preinit = $(addprefix $(csu-objpfx),crti.o)
+ +postinit = $(addprefix $(csu-objpfx),crtn.o)
+-+prector = `$(CC) --print-file-name=crtbegin.o`
+-+postctor = `$(CC) --print-file-name=crtend.o`
+-# Variants of the two previous definitions for linking PIE programs.
+ +prectorS = `$(CC) --print-file-name=crtbeginS.o`
+ +postctorS = `$(CC) --print-file-name=crtendS.o`
+++prector = $(+prectorS)
+++postctor = $(+postctorS)
+ +interp = $(addprefix $(elf-objpfx),interp.os)
+ endif
+ csu-objpfx = $(common-objpfx)csu/
diff --git a/sys-libs/glibc/files/2.12/glibc-2.12-hardened-pie.patch b/sys-libs/glibc/files/2.12/glibc-2.12-hardened-pie.patch
new file mode 100644
index 0000000..3315171
--- /dev/null
+++ b/sys-libs/glibc/files/2.12/glibc-2.12-hardened-pie.patch
@@ -0,0 +1,39 @@
+2010-08-11 Magnus Granberg <zorry@ume.nu>
+
+ #332331
+ * Makeconfig (+link): Set to +link-pie.
+ (+link-static): Change $(static-start-installed-name) to
+ S$(static-start-installed-name).
+ (+prector): Set to +prectorS.
+ (+postctor): Set to +postctorS.
+
+--- libc/Makeconfig
++++ libc/Makeconfig
+@@ -447,11 +447,12 @@
+ $(common-objpfx)libc% $(+postinit),$^) \
+ $(link-extra-libs) $(link-libc) $(+postctorS) $(+postinit)
+ endif
+++link = $(+link-pie)
+ # Command for statically linking programs with the C library.
+ ifndef +link-static
+ +link-static = $(CC) -nostdlib -nostartfiles -static -o $@ \
+ $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
+- $(addprefix $(csu-objpfx),$(static-start-installed-name)) \
++ $(addprefix $(csu-objpfx),S$(static-start-installed-name)) \
+ $(+preinit) $(+prector) \
+ $(filter-out $(addprefix $(csu-objpfx),start.o \
+ $(start-installed-name))\
+@@ -549,11 +550,10 @@
+ ifeq ($(elf),yes)
+ +preinit = $(addprefix $(csu-objpfx),crti.o)
+ +postinit = $(addprefix $(csu-objpfx),crtn.o)
+-+prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbegin.o`
+-+postctor = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o`
+-# Variants of the two previous definitions for linking PIE programs.
+ +prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o`
+ +postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o`
+++prector = $(+prectorS)
+++postctor = $(+postctorS)
+ +interp = $(addprefix $(elf-objpfx),interp.os)
+ endif
+ csu-objpfx = $(common-objpfx)csu/
diff --git a/sys-libs/glibc/files/2.3.3/glibc-2.3.3-localedef-fix-trampoline.patch b/sys-libs/glibc/files/2.3.3/glibc-2.3.3-localedef-fix-trampoline.patch
new file mode 100644
index 0000000..7c4399f
--- /dev/null
+++ b/sys-libs/glibc/files/2.3.3/glibc-2.3.3-localedef-fix-trampoline.patch
@@ -0,0 +1,68 @@
+#! /bin/sh -e
+
+# DP: Description: Fix localedef segfault when run under exec-shield,
+# PaX or similar. (#231438, #198099)
+# DP: Dpatch Author: James Troup <james@nocrew.org>
+# DP: Patch Author: (probably) Jakub Jelinek <jakub@redhat.com>
+# DP: Upstream status: Unknown
+# DP: Status Details: Unknown
+# DP: Date: 2004-03-16
+
+if [ $# -ne 2 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+--- glibc-2.3.3-net/locale/programs/3level.h 16 Jun 2003 07:19:09 -0000 1.1.1.5
++++ glibc-2.3.3-redhat/locale/programs/3level.h 16 Jun 2003 09:32:40 -0000 1.4
+@@ -204,6 +204,42 @@ CONCAT(TABLE,_iterate) (struct TABLE *t,
+ }
+ }
+ }
++
++/* GCC ATM seems to do a poor job with pointers to nested functions passed
++ to inlined functions. Help it a little bit with this hack. */
++#define wchead_table_iterate(tp, fn) \
++do \
++ { \
++ struct wchead_table *t = (tp); \
++ uint32_t index1; \
++ for (index1 = 0; index1 < t->level1_size; index1++) \
++ { \
++ uint32_t lookup1 = t->level1[index1]; \
++ if (lookup1 != ((uint32_t) ~0)) \
++ { \
++ uint32_t lookup1_shifted = lookup1 << t->q; \
++ uint32_t index2; \
++ for (index2 = 0; index2 < (1 << t->q); index2++) \
++ { \
++ uint32_t lookup2 = t->level2[index2 + lookup1_shifted]; \
++ if (lookup2 != ((uint32_t) ~0)) \
++ { \
++ uint32_t lookup2_shifted = lookup2 << t->p; \
++ uint32_t index3; \
++ for (index3 = 0; index3 < (1 << t->p); index3++) \
++ { \
++ struct element_t *lookup3 \
++ = t->level3[index3 + lookup2_shifted]; \
++ if (lookup3 != NULL) \
++ fn ((((index1 << t->q) + index2) << t->p) + index3, \
++ lookup3); \
++ } \
++ } \
++ } \
++ } \
++ } \
++ } while (0)
++
+ #endif
+
+ #ifndef NO_FINALIZE
diff --git a/sys-libs/glibc/files/2.5/glibc-2.5-gentoo-stack_chk_fail.c b/sys-libs/glibc/files/2.5/glibc-2.5-gentoo-stack_chk_fail.c
new file mode 100644
index 0000000..e304440
--- /dev/null
+++ b/sys-libs/glibc/files/2.5/glibc-2.5-gentoo-stack_chk_fail.c
@@ -0,0 +1,311 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* Copyright (C) 2006 Gentoo Foundation Inc.
+ * License terms as above.
+ *
+ * Hardened Gentoo SSP handler
+ *
+ * An SSP failure handler that does not use functions from the rest of
+ * glibc; it uses the INTERNAL_SYSCALL methods directly. This ensures
+ * no possibility of recursion into the handler.
+ *
+ * Direct all bug reports to http://bugs.gentoo.org/
+ *
+ * Re-written from the glibc-2.3 Hardened Gentoo SSP handler
+ * by Kevin F. Quinn - <kevquinn[@]gentoo.org>
+ *
+ * The following people contributed to the glibc-2.3 Hardened
+ * Gentoo SSP handler, from which this implementation draws much:
+ *
+ * Ned Ludd - <solar[@]gentoo.org>
+ * Alexander Gabert - <pappy[@]gentoo.org>
+ * The PaX Team - <pageexec[@]freemail.hu>
+ * Peter S. Mazinger - <ps.m[@]gmx.net>
+ * Yoann Vandoorselaere - <yoann[@]prelude-ids.org>
+ * Robert Connolly - <robert[@]linuxfromscratch.org>
+ * Cory Visi <cory[@]visi.name>
+ * Mike Frysinger <vapier[@]gentoo.org>
+ */
+
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+
+#include <sys/types.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+#include <bp-checks.h>
+
+#include <kernel-features.h>
+
+#include <alloca.h>
+/* from sysdeps */
+#include <socketcall.h>
+/* for the stuff in bits/socket.h */
+#include <sys/socket.h>
+#include <sys/un.h>
+
+
+/* Sanity check on SYSCALL macro names - force compilation
+ * failure if the names used here do not exist
+ */
+#if !defined __NR_socketcall && !defined __NR_socket
+# error Cannot do syscall socket or socketcall
+#endif
+#if !defined __NR_socketcall && !defined __NR_connect
+# error Cannot do syscall connect or socketcall
+#endif
+#ifndef __NR_write
+# error Cannot do syscall write
+#endif
+#ifndef __NR_close
+# error Cannot do syscall close
+#endif
+#ifndef __NR_getpid
+# error Cannot do syscall getpid
+#endif
+#ifndef __NR_kill
+# error Cannot do syscall kill
+#endif
+#ifndef __NR_exit
+# error Cannot do syscall exit
+#endif
+#ifdef SSP_SMASH_DUMPS_CORE
+# if !defined _KERNEL_NSIG && !defined _NSIG
+# error No _NSIG or _KERNEL_NSIG for rt_sigaction
+# endif
+# if !defined __NR_sigation && !defined __NR_rt_sigaction
+# error Cannot do syscall sigaction or rt_sigaction
+# endif
+#endif
+
+
+
+/* Define DO_SOCKET/DO_CONNECT macros to deal with socketcall vs socket/connect */
+#ifdef __NR_socketcall
+
+# define DO_SOCKET(result,domain,type,protocol) \
+ {socketargs[0] = domain; \
+ socketargs[1] = type; \
+ socketargs[2] = protocol; \
+ socketargs[3] = 0; \
+ result = INLINE_SYSCALL(socketcall,2,SOCKOP_socket,socketargs);}
+
+# define DO_CONNECT(result,sockfd,serv_addr,addrlen) \
+ {socketargs[0] = sockfd; \
+ socketargs[1] = (unsigned long int)serv_addr; \
+ socketargs[2] = addrlen; \
+ socketargs[3] = 0; \
+ result = INLINE_SYSCALL(socketcall,2,SOCKOP_connect,socketargs);}
+
+#else
+
+# define DO_SOCKET(result,domain,type,protocol) \
+ {result = INLINE_SYSCALL(socket,3,domain,type,protocol);}
+
+# define DO_CONNECT(result,sockfd,serv_addr,addrlen) \
+ {result = INLINE_SYSCALL(connect,3,sockfd,serv_addr,addrlen);}
+
+#endif
+/* __NR_socketcall */
+
+
+#ifndef _PATH_LOG
+# define _PATH_LOG "/dev/log"
+#endif
+
+static const char path_log[]=_PATH_LOG;
+
+/* For building glibc with SSP switched on, define __progname to a
+ * constant if building for the run-time loader, to avoid pulling
+ * in more of libc.so into ld.so
+ */
+#ifdef IS_IN_rtld
+static char *__progname = "<rtld>";
+#else
+extern char *__progname;
+#endif
+
+
+/* Common handler code, used by stack_chk_fail and __stack_smash_handler
+ * Inlined to ensure no self-references to the handler within itself.
+ * Data static to avoid putting more than necessary on the stack,
+ * to aid core debugging.
+ */
+static inline void
+__attribute__ ((__noreturn__ , __always_inline__))
+__hardened_gentoo_stack_chk_fail (char func[], int damaged)
+{
+#define MESSAGE_BUFSIZ 256
+ static pid_t pid;
+ static int plen, i;
+ static char message[MESSAGE_BUFSIZ];
+ static const char msg_ssa[]=": stack smashing attack";
+ static const char msg_inf[]=" in function ";
+ static const char msg_ssd[]="*** stack smashing detected ***: ";
+ static const char msg_terminated[]=" - terminated\n";
+ static const char msg_report[]="Report to http://bugs.gentoo.org/\n";
+ static const char msg_unknown[]="<unknown>";
+#ifdef SSP_SMASH_DUMPS_CORE
+ static struct sigaction default_abort_act;
+#endif
+ static int log_socket, connect_result;
+ static struct sockaddr_un sock;
+#ifdef __NR_socketcall
+ static unsigned long int socketargs[4];
+#endif
+
+ /* Build socket address
+ */
+ sock.sun_family = AF_UNIX;
+ i=0;
+ while ((path_log[i] != '\0') && (i<(sizeof(sock.sun_path)-1)))
+ {
+ sock.sun_path[i]=path_log[i];
+ i++;
+ }
+ sock.sun_path[i]='\0';
+
+ /* Try SOCK_DGRAM connection to syslog */
+ connect_result=-1;
+ DO_SOCKET(log_socket,AF_UNIX,SOCK_DGRAM,0);
+ if (log_socket != -1)
+ DO_CONNECT(connect_result,log_socket,(&sock),(sizeof(sock)));
+ if (connect_result == -1)
+ {
+ if (log_socket != -1)
+ INLINE_SYSCALL(close,1,log_socket);
+ /* Try SOCK_STREAM connection to syslog */
+ DO_SOCKET(log_socket,AF_UNIX,SOCK_STREAM,0);
+ if (log_socket != -1)
+ DO_CONNECT(connect_result,log_socket,(&sock),(sizeof(sock)));
+ }
+
+ /* Build message. Messages are generated both in the old style and new style,
+ * so that log watchers that are configured for the old-style message continue
+ * to work.
+ */
+#define strconcat(str) \
+ {i=0; while ((str[i] != '\0') && ((i+plen)<(MESSAGE_BUFSIZ-1))) \
+ {\
+ message[plen+i]=str[i];\
+ i++;\
+ }\
+ plen+=i;}
+
+ /* R.Henderson post-gcc-4 style message */
+ plen=0;
+ strconcat(msg_ssd);
+ if (__progname != (char *)0)
+ strconcat(__progname)
+ else
+ strconcat(msg_unknown);
+ strconcat(msg_terminated);
+
+ /* Write out error message to STDERR, to syslog if open */
+ INLINE_SYSCALL(write,3,STDERR_FILENO,message,plen);
+ if (connect_result != -1)
+ INLINE_SYSCALL(write,3,log_socket,message,plen);
+
+ /* Dr. Etoh pre-gcc-4 style message */
+ plen=0;
+ if (__progname != (char *)0)
+ strconcat(__progname)
+ else
+ strconcat(msg_unknown);
+ strconcat(msg_ssa);
+ strconcat(msg_inf);
+ if (func!=NULL)
+ strconcat(func)
+ else
+ strconcat(msg_unknown);
+ strconcat(msg_terminated);
+ /* Write out error message to STDERR, to syslog if open */
+ INLINE_SYSCALL(write,3,STDERR_FILENO,message,plen);
+ if (connect_result != -1)
+ INLINE_SYSCALL(write,3,log_socket,message,plen);
+
+ /* Direct reports to bugs.gentoo.org */
+ plen=0;
+ strconcat(msg_report);
+ message[plen++]='\0';
+
+ /* Write out error message to STDERR, to syslog if open */
+ INLINE_SYSCALL(write,3,STDERR_FILENO,message,plen);
+ if (connect_result != -1)
+ INLINE_SYSCALL(write,3,log_socket,message,plen);
+
+ if (log_socket != -1)
+ INLINE_SYSCALL(close,1,log_socket);
+
+ /* Suicide */
+ pid=INLINE_SYSCALL(getpid,0);
+#ifdef SSP_SMASH_DUMPS_CORE
+ /* Remove any user-supplied handler for SIGABRT, before using it */
+ default_abort_act.sa_handler = SIG_DFL;
+ default_abort_act.sa_sigaction = NULL;
+ __sigfillset(&default_abort_act.sa_mask);
+ default_abort_act.sa_flags = 0;
+ /* sigaction doesn't exist on amd64; however rt_sigaction seems to
+ * exist everywhere. rt_sigaction has an extra parameter - the
+ * size of sigset_t.
+ */
+# ifdef __NR_sigation
+ if (INLINE_SYSCALL(sigaction,3,SIGABRT,&default_abort_act,NULL) == 0)
+# else
+ /* Although rt_sigaction expects sizeof(sigset_t) - it expects the size
+ * of the _kernel_ sigset_t which is not the same as the user sigset_t.
+ * Most arches have this as _NSIG bits - mips has _KERNEL_NSIG bits for
+ * some reason.
+ */
+# ifdef _KERNEL_NSIG
+ if (INLINE_SYSCALL(rt_sigaction,4,SIGABRT,&default_abort_act,NULL,_KERNEL_NSIG/8) == 0)
+# else
+ if (INLINE_SYSCALL(rt_sigaction,4,SIGABRT,&default_abort_act,NULL,_NSIG/8) == 0)
+# endif
+# endif
+ INLINE_SYSCALL(kill,2,pid,SIGABRT);
+#endif
+ /* Note; actions cannot be added to SIGKILL */
+ INLINE_SYSCALL(kill,2,pid,SIGKILL);
+
+ /* In case the kill didn't work, exit anyway
+ * The loop prevents gcc thinking this routine returns
+ */
+ while (1) INLINE_SYSCALL(exit,0);
+}
+
+void
+__attribute__ ((__noreturn__))
+ __stack_chk_fail (void)
+{
+ __hardened_gentoo_stack_chk_fail(NULL,0);
+}
+
+#ifdef ENABLE_OLD_SSP_COMPAT
+void
+__attribute__ ((__noreturn__))
+__stack_smash_handler(char func[], int damaged)
+{
+ __hardened_gentoo_stack_chk_fail(func,damaged);
+}
+#endif
+
diff --git a/sys-libs/glibc/files/2.5/glibc-2.5-hardened-configure-picdefault.patch b/sys-libs/glibc/files/2.5/glibc-2.5-hardened-configure-picdefault.patch
new file mode 100644
index 0000000..253a61b
--- /dev/null
+++ b/sys-libs/glibc/files/2.5/glibc-2.5-hardened-configure-picdefault.patch
@@ -0,0 +1,29 @@
+Prevent default-fPIE from confusing configure into thinking
+PIC code is default. This causes glibc to build both PIC and
+non-PIC code as normal, which on the hardened compiler generates
+PIC and PIE.
+
+Patch by Kevin F. Quinn <kevquinn@gentoo.org>
+
+--- configure.in
++++ configure.in
+@@ -2145,7 +2145,7 @@
+ # error PIC is default.
+ #endif
+ EOF
+-if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
++if eval "${CC-cc} -fno-PIE -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
+ pic_default=no
+ fi
+ rm -f conftest.*])
+--- configure
++++ configure
+@@ -7698,7 +7698,7 @@
+ # error PIC is default.
+ #endif
+ EOF
+-if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then
++if eval "${CC-cc} -fno-PIE -S conftest.c 2>&5 1>&5"; then
+ pic_default=no
+ fi
+ rm -f conftest.*
diff --git a/sys-libs/glibc/files/2.5/glibc-2.5-hardened-inittls-nosysenter.patch b/sys-libs/glibc/files/2.5/glibc-2.5-hardened-inittls-nosysenter.patch
new file mode 100644
index 0000000..420e6fd
--- /dev/null
+++ b/sys-libs/glibc/files/2.5/glibc-2.5-hardened-inittls-nosysenter.patch
@@ -0,0 +1,283 @@
+When building glibc PIE (which is not something upstream support),
+several modifications are necessary to the glibc build process.
+
+First, any syscalls in PIEs must be of the PIC variant, otherwise
+textrels ensue. Then, any syscalls made before the initialisation
+of the TLS will fail on i386, as the sysenter variant on i386 uses
+the TLS, giving rise to a chicken-and-egg situation. This patch
+defines a PIC syscall variant that doesn't use sysenter, even when the sysenter
+version is normally used, and uses the non-sysenter version for the brk
+syscall that is performed by the TLS initialisation. Further, the TLS
+initialisation is moved in this case prior to the initialisation of
+dl_osversion, as that requires further syscalls.
+
+csu/libc-start.c: Move initial TLS initialization to before the
+initialisation of dl_osversion, when INTERNAL_SYSCALL_NOSYSENTER is defined
+
+csu/libc-tls.c: Use the no-sysenter version of sbrk when
+INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+misc/sbrk.c: Define a no-sysenter version of sbrk, using the no-sysenter
+version of brk - if INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+misc/brk.c: Define a no-sysenter version of brk if
+INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+sysdeps/unix/sysv/linux/i386/sysdep.h: Define INTERNAL_SYSCALL_NOSYSENTER
+Make INTERNAL_SYSCALL always use the PIC variant, even if not SHARED.
+
+Patch by Kevin F. Quinn <kevquinn@gentoo.org>
+
+--- csu/libc-start.c.orig 2007-01-21 11:51:06.000000000 +0100
++++ csu/libc-start.c 2007-01-21 11:55:57.000000000 +0100
+@@ -28,6 +28,7 @@
+ extern int __libc_multiple_libcs;
+
+ #include <tls.h>
++#include <sysdep.h>
+ #ifndef SHARED
+ # include <dl-osinfo.h>
+ extern void __pthread_initialize_minimal (void)
+@@ -133,6 +134,14 @@
+ # endif
+ _dl_aux_init (auxvec);
+ # endif
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ /* Do the initial TLS initialization before _dl_osversion,
++ since the latter uses the uname syscall. */
++# if !(USE_TLS - 0) && !defined NONTLS_INIT_TP
++ if (__pthread_initialize_minimal)
++# endif
++ __pthread_initialize_minimal ();
++# endif
+ # ifdef DL_SYSDEP_OSCHECK
+ if (!__libc_multiple_libcs)
+ {
+@@ -142,15 +151,17 @@
+ }
+ # endif
+
++# ifndef INTERNAL_SYSCALL_NOSYSENTER
+ /* Initialize the thread library at least a bit since the libgcc
+ functions are using thread functions if these are available and
+ we need to setup errno. If there is no thread library and we
+ handle TLS the function is defined in the libc to initialized the
+ TLS handling. */
+-# if !(USE_TLS - 0) && !defined NONTLS_INIT_TP
++# if !(USE_TLS - 0) && !defined NONTLS_INIT_TP
+ if (__pthread_initialize_minimal)
+-# endif
++# endif
+ __pthread_initialize_minimal ();
++# endif
+ #endif
+
+ # ifndef SHARED
+--- csu/libc-tls.c.orig 2007-01-21 11:37:02.000000000 +0100
++++ csu/libc-tls.c 2007-01-21 12:09:33.000000000 +0100
+@@ -23,6 +23,7 @@
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <sys/param.h>
++#include <sysdep.h>
+
+
+ #ifdef SHARED
+@@ -30,6 +31,9 @@
+ #endif
+
+ #ifdef USE_TLS
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++extern void *__sbrk_nosysenter (intptr_t __delta);
++# endif
+ extern ElfW(Phdr) *_dl_phdr;
+ extern size_t _dl_phnum;
+
+@@ -142,14 +146,26 @@
+
+ The initialized value of _dl_tls_static_size is provided by dl-open.c
+ to request some surplus that permits dynamic loading of modules with
+- IE-model TLS. */
++ IE-model TLS.
++
++ Where the normal sbrk would use a syscall that needs the TLS (i386)
++ use the special non-sysenter version instead. */
+ # if TLS_TCB_AT_TP
+ tcb_offset = roundup (memsz + GL(dl_tls_static_size), tcbalign);
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ tlsblock = __sbrk_nosysenter (tcb_offset + tcbsize + max_align);
++# else
+ tlsblock = __sbrk (tcb_offset + tcbsize + max_align);
++# endif
+ # elif TLS_DTV_AT_TP
+ tcb_offset = roundup (tcbsize, align ?: 1);
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ tlsblock = __sbrk_nosysenter (tcb_offset + memsz + max_align
++ + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size));
++# else
+ tlsblock = __sbrk (tcb_offset + memsz + max_align
+ + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size));
++# endif
+ tlsblock += TLS_PRE_TCB_SIZE;
+ # else
+ /* In case a model with a different layout for the TCB and DTV
+--- misc/sbrk.c.orig 2007-01-21 11:38:27.000000000 +0100
++++ misc/sbrk.c 2007-01-21 12:07:29.000000000 +0100
+@@ -18,6 +18,7 @@
+
+ #include <unistd.h>
+ #include <errno.h>
++#include <sysdep.h>
+
+ /* Defined in brk.c. */
+ extern void *__curbrk;
+@@ -29,6 +30,35 @@
+ /* Extend the process's data space by INCREMENT.
+ If INCREMENT is negative, shrink data space by - INCREMENT.
+ Return start of new space allocated, or -1 for errors. */
++#ifdef INTERNAL_SYSCALL_NOSYSENTER
++/* This version is used by csu/libc-tls.c whem initialising the TLS
++ if the SYSENTER version requires the TLS (which it does on i386).
++ Obviously using the TLS before it is initialised is broken. */
++extern int __brk_nosysenter (void *addr);
++void *
++__sbrk_nosysenter (intptr_t increment)
++{
++ void *oldbrk;
++
++ /* If this is not part of the dynamic library or the library is used
++ via dynamic loading in a statically linked program update
++ __curbrk from the kernel's brk value. That way two separate
++ instances of __brk and __sbrk can share the heap, returning
++ interleaved pieces of it. */
++ if (__curbrk == NULL || __libc_multiple_libcs)
++ if (__brk_nosysenter (0) < 0) /* Initialize the break. */
++ return (void *) -1;
++
++ if (increment == 0)
++ return __curbrk;
++
++ oldbrk = __curbrk;
++ if (__brk_nosysenter (oldbrk + increment) < 0)
++ return (void *) -1;
++
++ return oldbrk;
++}
++#endif
+ void *
+ __sbrk (intptr_t increment)
+ {
+--- sysdeps/unix/sysv/linux/i386/brk.c.orig 2007-01-21 11:39:16.000000000 +0100
++++ sysdeps/unix/sysv/linux/i386/brk.c 2007-01-21 11:44:01.000000000 +0100
+@@ -31,6 +31,30 @@
+ linker. */
+ weak_alias (__curbrk, ___brk_addr)
+
++#ifdef INTERNAL_SYSCALL_NOSYSENTER
++/* This version is used by csu/libc-tls.c whem initialising the TLS
++ * if the SYSENTER version requires the TLS (which it does on i386).
++ * Obviously using the TLS before it is initialised is broken. */
++int
++__brk_nosysenter (void *addr)
++{
++ void *__unbounded newbrk;
++
++ INTERNAL_SYSCALL_DECL (err);
++ newbrk = (void *__unbounded) INTERNAL_SYSCALL_NOSYSENTER (brk, err, 1,
++ __ptrvalue (addr));
++
++ __curbrk = newbrk;
++
++ if (newbrk < addr)
++ {
++ __set_errno (ENOMEM);
++ return -1;
++ }
++
++ return 0;
++}
++#endif
+ int
+ __brk (void *addr)
+ {
+--- sysdeps/unix/sysv/linux/i386/sysdep.h.orig 2007-01-21 13:08:00.000000000 +0100
++++ sysdeps/unix/sysv/linux/i386/sysdep.h 2007-01-21 13:19:10.000000000 +0100
+@@ -187,7 +187,7 @@
+ /* The original calling convention for system calls on Linux/i386 is
+ to use int $0x80. */
+ #ifdef I386_USE_SYSENTER
+-# ifdef SHARED
++# if defined SHARED || defined __PIC__
+ # define ENTER_KERNEL call *%gs:SYSINFO_OFFSET
+ # else
+ # define ENTER_KERNEL call *_dl_sysinfo
+@@ -358,7 +358,7 @@
+ possible to use more than four parameters. */
+ #undef INTERNAL_SYSCALL
+ #ifdef I386_USE_SYSENTER
+-# ifdef SHARED
++# if defined SHARED || defined __PIC__
+ # define INTERNAL_SYSCALL(name, err, nr, args...) \
+ ({ \
+ register unsigned int resultvar; \
+@@ -384,6 +384,18 @@
+ : "0" (name), "i" (offsetof (tcbhead_t, sysinfo)) \
+ ASMFMT_##nr(args) : "memory", "cc"); \
+ (int) resultvar; })
++# define INTERNAL_SYSCALL_NOSYSENTER(name, err, nr, args...) \
++ ({ \
++ register unsigned int resultvar; \
++ EXTRAVAR_##nr \
++ asm volatile ( \
++ LOADARGS_NOSYSENTER_##nr \
++ "movl %1, %%eax\n\t" \
++ "int $0x80\n\t" \
++ RESTOREARGS_NOSYSENTER_##nr \
++ : "=a" (resultvar) \
++ : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc"); \
++ (int) resultvar; })
+ # else
+ # define INTERNAL_SYSCALL(name, err, nr, args...) \
+ ({ \
+@@ -447,12 +459,20 @@
+
+ #define LOADARGS_0
+ #ifdef __PIC__
+-# if defined I386_USE_SYSENTER && defined SHARED
++# if defined I386_USE_SYSENTER && ( defined SHARED || defined __PIC__ )
+ # define LOADARGS_1 \
+ "bpushl .L__X'%k3, %k3\n\t"
+ # define LOADARGS_5 \
+ "movl %%ebx, %4\n\t" \
+ "movl %3, %%ebx\n\t"
++# define LOADARGS_NOSYSENTER_1 \
++ "bpushl .L__X'%k2, %k2\n\t"
++# define LOADARGS_NOSYSENTER_2 LOADARGS_NOSYSENTER_1
++# define LOADARGS_NOSYSENTER_3 LOADARGS_3
++# define LOADARGS_NOSYSENTER_4 LOADARGS_3
++# define LOADARGS_NOSYSENTER_5 \
++ "movl %%ebx, %3\n\t" \
++ "movl %2, %%ebx\n\t"
+ # else
+ # define LOADARGS_1 \
+ "bpushl .L__X'%k2, %k2\n\t"
+@@ -474,11 +495,18 @@
+
+ #define RESTOREARGS_0
+ #ifdef __PIC__
+-# if defined I386_USE_SYSENTER && defined SHARED
++# if defined I386_USE_SYSENTER && ( defined SHARED || defined __PIC__ )
+ # define RESTOREARGS_1 \
+ "bpopl .L__X'%k3, %k3\n\t"
+ # define RESTOREARGS_5 \
+ "movl %4, %%ebx"
++# define RESTOREARGS_NOSYSENTER_1 \
++ "bpopl .L__X'%k2, %k2\n\t"
++# define RESTOREARGS_NOSYSENTER_2 RESTOREARGS_NOSYSENTER_1
++# define RESTOREARGS_NOSYSENTER_3 RESTOREARGS_3
++# define RESTOREARGS_NOSYSENTER_4 RESTOREARGS_3
++# define RESTOREARGS_NOSYSENTER_5 \
++ "movl %3, %%ebx"
+ # else
+ # define RESTOREARGS_1 \
+ "bpopl .L__X'%k2, %k2\n\t"
diff --git a/sys-libs/glibc/files/2.5/glibc-2.5-hardened-pie.patch b/sys-libs/glibc/files/2.5/glibc-2.5-hardened-pie.patch
new file mode 100644
index 0000000..46f3de4
--- /dev/null
+++ b/sys-libs/glibc/files/2.5/glibc-2.5-hardened-pie.patch
@@ -0,0 +1,39 @@
+Change link commands for glibc executables to build PIEs
+
+Patch by Kevin F. Quinn <kevquinn@gentoo.org>
+
+--- Makeconfig
++++ Makeconfig
+@@ -415,10 +415,10 @@
+
+ # Command for linking programs with the C library.
+ ifndef +link
+-+link = $(CC) -nostdlib -nostartfiles -o $@ \
+++link = $(CC) -nostdlib -nostartfiles -fPIE -pie -o $@ \
+ $(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
+ $(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
+- $(addprefix $(csu-objpfx),$(start-installed-name)) \
++ $(addprefix $(csu-objpfx),S$(start-installed-name)) \
+ $(+preinit) $(+prector) \
+ $(filter-out $(addprefix $(csu-objpfx),start.o \
+ $(start-installed-name))\
+@@ -429,7 +429,7 @@
+ ifndef +link-static
+ +link-static = $(CC) -nostdlib -nostartfiles -static -o $@ \
+ $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
+- $(addprefix $(csu-objpfx),$(static-start-installed-name)) \
++ $(addprefix $(csu-objpfx),S$(static-start-installed-name)) \
+ $(+preinit) $(+prector) \
+ $(filter-out $(addprefix $(csu-objpfx),start.o \
+ $(start-installed-name))\
+@@ -528,8 +528,8 @@
+ ifeq ($(elf),yes)
+ +preinit = $(addprefix $(csu-objpfx),crti.o)
+ +postinit = $(addprefix $(csu-objpfx),crtn.o)
+-+prector = `$(CC) --print-file-name=crtbegin.o`
+-+postctor = `$(CC) --print-file-name=crtend.o`
+++prector = `$(CC) --print-file-name=crtbeginS.o`
+++postctor = `$(CC) --print-file-name=crtendS.o`
+ +interp = $(addprefix $(elf-objpfx),interp.os)
+ endif
+ csu-objpfx = $(common-objpfx)csu/
diff --git a/sys-libs/glibc/files/2.6/glibc-2.6-gentoo-stack_chk_fail.c b/sys-libs/glibc/files/2.6/glibc-2.6-gentoo-stack_chk_fail.c
new file mode 100644
index 0000000..217bf1a
--- /dev/null
+++ b/sys-libs/glibc/files/2.6/glibc-2.6-gentoo-stack_chk_fail.c
@@ -0,0 +1,321 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* Copyright (C) 2006-2007 Gentoo Foundation Inc.
+ * License terms as above.
+ *
+ * Hardened Gentoo SSP handler
+ *
+ * An SSP failure handler that does not use functions from the rest of
+ * glibc; it uses the INTERNAL_SYSCALL methods directly. This ensures
+ * no possibility of recursion into the handler.
+ *
+ * Direct all bug reports to http://bugs.gentoo.org/
+ *
+ * Re-written from the glibc-2.3 Hardened Gentoo SSP handler
+ * by Kevin F. Quinn - <kevquinn[@]gentoo.org>
+ *
+ * The following people contributed to the glibc-2.3 Hardened
+ * Gentoo SSP handler, from which this implementation draws much:
+ *
+ * Ned Ludd - <solar[@]gentoo.org>
+ * Alexander Gabert - <pappy[@]gentoo.org>
+ * The PaX Team - <pageexec[@]freemail.hu>
+ * Peter S. Mazinger - <ps.m[@]gmx.net>
+ * Yoann Vandoorselaere - <yoann[@]prelude-ids.org>
+ * Robert Connolly - <robert[@]linuxfromscratch.org>
+ * Cory Visi <cory[@]visi.name>
+ * Mike Frysinger <vapier[@]gentoo.org>
+ */
+
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+
+#include <sys/types.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+#include <bp-checks.h>
+
+#include <kernel-features.h>
+
+#include <alloca.h>
+/* from sysdeps */
+#include <socketcall.h>
+/* for the stuff in bits/socket.h */
+#include <sys/socket.h>
+#include <sys/un.h>
+
+
+/* Sanity check on SYSCALL macro names - force compilation
+ * failure if the names used here do not exist
+ */
+#if !defined __NR_socketcall && !defined __NR_socket
+# error Cannot do syscall socket or socketcall
+#endif
+#if !defined __NR_socketcall && !defined __NR_connect
+# error Cannot do syscall connect or socketcall
+#endif
+#ifndef __NR_write
+# error Cannot do syscall write
+#endif
+#ifndef __NR_close
+# error Cannot do syscall close
+#endif
+#ifndef __NR_getpid
+# error Cannot do syscall getpid
+#endif
+#ifndef __NR_kill
+# error Cannot do syscall kill
+#endif
+#ifndef __NR_exit
+# error Cannot do syscall exit
+#endif
+#ifdef SSP_SMASH_DUMPS_CORE
+# define ENABLE_SSP_SMASH_DUMPS_CORE 1
+# if !defined _KERNEL_NSIG && !defined _NSIG
+# error No _NSIG or _KERNEL_NSIG for rt_sigaction
+# endif
+# if !defined __NR_sigaction && !defined __NR_rt_sigaction
+# error Cannot do syscall sigaction or rt_sigaction
+# endif
+/* Although rt_sigaction expects sizeof(sigset_t) - it expects the size
+ * of the _kernel_ sigset_t which is not the same as the user sigset_t.
+ * Most arches have this as _NSIG bits - mips has _KERNEL_NSIG bits for
+ * some reason.
+ */
+# ifdef _KERNEL_NSIG
+# define _SSP_NSIG _KERNEL_NSIG
+# else
+# define _SSP_NSIG _NSIG
+# endif
+#else
+# define _SSP_NSIG 0
+# define ENABLE_SSP_SMASH_DUMPS_CORE 0
+#endif
+
+/* Define DO_SIGACTION - default to newer rt signal interface but
+ * fallback to old as needed.
+ */
+#ifdef __NR_rt_sigaction
+# define DO_SIGACTION(signum, act, oldact) \
+ INLINE_SYSCALL(rt_sigaction, 4, signum, act, oldact, _SSP_NSIG/8)
+#else
+# define DO_SIGACTION(signum, act, oldact) \
+ INLINE_SYSCALL(sigaction, 3, signum, act, oldact)
+#endif
+
+/* Define DO_SOCKET/DO_CONNECT functions to deal with socketcall vs socket/connect */
+#if defined(__NR_socket) && defined(__NR_connect)
+# define USE_OLD_SOCKETCALL 0
+#else
+# define USE_OLD_SOCKETCALL 1
+#endif
+/* stub out the __NR_'s so we can let gcc optimize away dead code */
+#ifndef __NR_socketcall
+# define __NR_socketcall 0
+#endif
+#ifndef __NR_socket
+# define __NR_socket 0
+#endif
+#ifndef __NR_connect
+# define __NR_connect 0
+#endif
+#define DO_SOCKET(result, domain, type, protocol) \
+ do { \
+ if (USE_OLD_SOCKETCALL) { \
+ socketargs[0] = domain; \
+ socketargs[1] = type; \
+ socketargs[2] = protocol; \
+ socketargs[3] = 0; \
+ result = INLINE_SYSCALL(socketcall, 2, SOCKOP_socket, socketargs); \
+ } else \
+ result = INLINE_SYSCALL(socket, 3, domain, type, protocol); \
+ } while (0)
+#define DO_CONNECT(result, sockfd, serv_addr, addrlen) \
+ do { \
+ if (USE_OLD_SOCKETCALL) { \
+ socketargs[0] = sockfd; \
+ socketargs[1] = (unsigned long int)serv_addr; \
+ socketargs[2] = addrlen; \
+ socketargs[3] = 0; \
+ result = INLINE_SYSCALL(socketcall, 2, SOCKOP_connect, socketargs); \
+ } else \
+ result = INLINE_SYSCALL(connect, 3, sockfd, serv_addr, addrlen); \
+ } while (0)
+
+#ifndef _PATH_LOG
+# define _PATH_LOG "/dev/log"
+#endif
+
+static const char path_log[] = _PATH_LOG;
+
+/* For building glibc with SSP switched on, define __progname to a
+ * constant if building for the run-time loader, to avoid pulling
+ * in more of libc.so into ld.so
+ */
+#ifdef IS_IN_rtld
+static char *__progname = "<rtld>";
+#else
+extern char *__progname;
+#endif
+
+
+/* Common handler code, used by stack_chk_fail and __stack_smash_handler
+ * Inlined to ensure no self-references to the handler within itself.
+ * Data static to avoid putting more than necessary on the stack,
+ * to aid core debugging.
+ */
+__attribute__ ((__noreturn__ , __always_inline__))
+static inline void
+__hardened_gentoo_stack_chk_fail(char func[], int damaged)
+{
+#define MESSAGE_BUFSIZ 256
+ static pid_t pid;
+ static int plen, i;
+ static char message[MESSAGE_BUFSIZ];
+ static const char msg_ssa[] = ": stack smashing attack";
+ static const char msg_inf[] = " in function ";
+ static const char msg_ssd[] = "*** stack smashing detected ***: ";
+ static const char msg_terminated[] = " - terminated\n";
+ static const char msg_report[] = "Report to http://bugs.gentoo.org/\n";
+ static const char msg_unknown[] = "<unknown>";
+ static int log_socket, connect_result;
+ static struct sockaddr_un sock;
+ static unsigned long int socketargs[4];
+
+ /* Build socket address
+ */
+ sock.sun_family = AF_UNIX;
+ i = 0;
+ while ((path_log[i] != '\0') && (i<(sizeof(sock.sun_path)-1))) {
+ sock.sun_path[i] = path_log[i];
+ i++;
+ }
+ sock.sun_path[i] = '\0';
+
+ /* Try SOCK_DGRAM connection to syslog */
+ connect_result = -1;
+ DO_SOCKET(log_socket, AF_UNIX, SOCK_DGRAM, 0);
+ if (log_socket != -1)
+ DO_CONNECT(connect_result, log_socket, &sock, sizeof(sock));
+ if (connect_result == -1) {
+ if (log_socket != -1)
+ INLINE_SYSCALL(close, 1, log_socket);
+ /* Try SOCK_STREAM connection to syslog */
+ DO_SOCKET(log_socket, AF_UNIX, SOCK_STREAM, 0);
+ if (log_socket != -1)
+ DO_CONNECT(connect_result, log_socket, &sock, sizeof(sock));
+ }
+
+ /* Build message. Messages are generated both in the old style and new style,
+ * so that log watchers that are configured for the old-style message continue
+ * to work.
+ */
+#define strconcat(str) \
+ {i=0; while ((str[i] != '\0') && ((i+plen)<(MESSAGE_BUFSIZ-1))) \
+ {\
+ message[plen+i]=str[i];\
+ i++;\
+ }\
+ plen+=i;}
+
+ /* R.Henderson post-gcc-4 style message */
+ plen = 0;
+ strconcat(msg_ssd);
+ if (__progname != (char *)0)
+ strconcat(__progname)
+ else
+ strconcat(msg_unknown);
+ strconcat(msg_terminated);
+
+ /* Write out error message to STDERR, to syslog if open */
+ INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen);
+ if (connect_result != -1)
+ INLINE_SYSCALL(write, 3, log_socket, message, plen);
+
+ /* Dr. Etoh pre-gcc-4 style message */
+ plen = 0;
+ if (__progname != (char *)0)
+ strconcat(__progname)
+ else
+ strconcat(msg_unknown);
+ strconcat(msg_ssa);
+ strconcat(msg_inf);
+ if (func != NULL)
+ strconcat(func)
+ else
+ strconcat(msg_unknown);
+ strconcat(msg_terminated);
+ /* Write out error message to STDERR, to syslog if open */
+ INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen);
+ if (connect_result != -1)
+ INLINE_SYSCALL(write, 3, log_socket, message, plen);
+
+ /* Direct reports to bugs.gentoo.org */
+ plen=0;
+ strconcat(msg_report);
+ message[plen++]='\0';
+
+ /* Write out error message to STDERR, to syslog if open */
+ INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen);
+ if (connect_result != -1)
+ INLINE_SYSCALL(write, 3, log_socket, message, plen);
+
+ if (log_socket != -1)
+ INLINE_SYSCALL(close, 1, log_socket);
+
+ /* Suicide */
+ pid = INLINE_SYSCALL(getpid, 0);
+
+ if (ENABLE_SSP_SMASH_DUMPS_CORE) {
+ static struct sigaction default_abort_act;
+ /* Remove any user-supplied handler for SIGABRT, before using it */
+ default_abort_act.sa_handler = SIG_DFL;
+ default_abort_act.sa_sigaction = NULL;
+ __sigfillset(&default_abort_act.sa_mask);
+ default_abort_act.sa_flags = 0;
+ if (DO_SIGACTION(SIGABRT, &default_abort_act, NULL) == 0)
+ INLINE_SYSCALL(kill, 2, pid, SIGABRT);
+ }
+
+ /* Note; actions cannot be added to SIGKILL */
+ INLINE_SYSCALL(kill, 2, pid, SIGKILL);
+
+ /* In case the kill didn't work, exit anyway
+ * The loop prevents gcc thinking this routine returns
+ */
+ while (1)
+ INLINE_SYSCALL(exit, 0);
+}
+
+__attribute__ ((__noreturn__))
+void __stack_chk_fail(void)
+{
+ __hardened_gentoo_stack_chk_fail(NULL, 0);
+}
+
+#ifdef ENABLE_OLD_SSP_COMPAT
+__attribute__ ((__noreturn__))
+void __stack_smash_handler(char func[], int damaged)
+{
+ __hardened_gentoo_stack_chk_fail(func, damaged);
+}
+#endif
diff --git a/sys-libs/glibc/files/2.6/glibc-2.6-hardened-inittls-nosysenter.patch b/sys-libs/glibc/files/2.6/glibc-2.6-hardened-inittls-nosysenter.patch
new file mode 100644
index 0000000..be8ca19
--- /dev/null
+++ b/sys-libs/glibc/files/2.6/glibc-2.6-hardened-inittls-nosysenter.patch
@@ -0,0 +1,273 @@
+When building glibc PIE (which is not something upstream support),
+several modifications are necessary to the glibc build process.
+
+First, any syscalls in PIEs must be of the PIC variant, otherwise
+textrels ensue. Then, any syscalls made before the initialisation
+of the TLS will fail on i386, as the sysenter variant on i386 uses
+the TLS, giving rise to a chicken-and-egg situation. This patch
+defines a PIC syscall variant that doesn't use sysenter, even when the sysenter
+version is normally used, and uses the non-sysenter version for the brk
+syscall that is performed by the TLS initialisation. Further, the TLS
+initialisation is moved in this case prior to the initialisation of
+dl_osversion, as that requires further syscalls.
+
+csu/libc-start.c: Move initial TLS initialization to before the
+initialisation of dl_osversion, when INTERNAL_SYSCALL_NOSYSENTER is defined
+
+csu/libc-tls.c: Use the no-sysenter version of sbrk when
+INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+misc/sbrk.c: Define a no-sysenter version of sbrk, using the no-sysenter
+version of brk - if INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+misc/brk.c: Define a no-sysenter version of brk if
+INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+sysdeps/unix/sysv/linux/i386/sysdep.h: Define INTERNAL_SYSCALL_NOSYSENTER
+Make INTERNAL_SYSCALL always use the PIC variant, even if not SHARED.
+
+Patch by Kevin F. Quinn <kevquinn@gentoo.org>
+
+--- csu/libc-start.c
++++ csu/libc-start.c
+@@ -28,6 +28,7 @@
+ extern int __libc_multiple_libcs;
+
+ #include <tls.h>
++#include <sysdep.h>
+ #ifndef SHARED
+ # include <dl-osinfo.h>
+ extern void __pthread_initialize_minimal (void);
+@@ -129,6 +130,11 @@
+ # endif
+ _dl_aux_init (auxvec);
+ # endif
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ /* Do the initial TLS initialization before _dl_osversion,
++ since the latter uses the uname syscall. */
++ __pthread_initialize_minimal ();
++# endif
+ # ifdef DL_SYSDEP_OSCHECK
+ if (!__libc_multiple_libcs)
+ {
+@@ -138,10 +144,12 @@
+ }
+ # endif
+
++# ifndef INTERNAL_SYSCALL_NOSYSENTER
+ /* Initialize the thread library at least a bit since the libgcc
+ functions are using thread functions if these are available and
+ we need to setup errno. */
+ __pthread_initialize_minimal ();
++# endif
+ #endif
+
+ # ifndef SHARED
+--- csu/libc-tls.c
++++ csu/libc-tls.c
+@@ -23,6 +23,7 @@
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <sys/param.h>
++#include <sysdep.h>
+
+
+ #ifdef SHARED
+@@ -29,6 +30,9 @@
+ #error makefile bug, this file is for static only
+ #endif
+
++#ifdef INTERNAL_SYSCALL_NOSYSENTER
++extern void *__sbrk_nosysenter (intptr_t __delta);
++#endif
+ extern ElfW(Phdr) *_dl_phdr;
+ extern size_t _dl_phnum;
+
+@@ -141,14 +145,26 @@
+
+ The initialized value of _dl_tls_static_size is provided by dl-open.c
+ to request some surplus that permits dynamic loading of modules with
+- IE-model TLS. */
++ IE-model TLS.
++
++ Where the normal sbrk would use a syscall that needs the TLS (i386)
++ use the special non-sysenter version instead. */
+ #if TLS_TCB_AT_TP
+ tcb_offset = roundup (memsz + GL(dl_tls_static_size), tcbalign);
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ tlsblock = __sbrk_nosysenter (tcb_offset + tcbsize + max_align);
++# else
+ tlsblock = __sbrk (tcb_offset + tcbsize + max_align);
++# endif
+ #elif TLS_DTV_AT_TP
+ tcb_offset = roundup (tcbsize, align ?: 1);
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ tlsblock = __sbrk_nosysenter (tcb_offset + memsz + max_align
++ + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size));
++# else
+ tlsblock = __sbrk (tcb_offset + memsz + max_align
+ + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size));
++# endif
+ tlsblock += TLS_PRE_TCB_SIZE;
+ #else
+ /* In case a model with a different layout for the TCB and DTV
+--- misc/sbrk.c
++++ misc/sbrk.c
+@@ -18,6 +18,7 @@
+
+ #include <unistd.h>
+ #include <errno.h>
++#include <sysdep.h>
+
+ /* Defined in brk.c. */
+ extern void *__curbrk;
+@@ -29,6 +30,35 @@
+ /* Extend the process's data space by INCREMENT.
+ If INCREMENT is negative, shrink data space by - INCREMENT.
+ Return start of new space allocated, or -1 for errors. */
++#ifdef INTERNAL_SYSCALL_NOSYSENTER
++/* This version is used by csu/libc-tls.c whem initialising the TLS
++ if the SYSENTER version requires the TLS (which it does on i386).
++ Obviously using the TLS before it is initialised is broken. */
++extern int __brk_nosysenter (void *addr);
++void *
++__sbrk_nosysenter (intptr_t increment)
++{
++ void *oldbrk;
++
++ /* If this is not part of the dynamic library or the library is used
++ via dynamic loading in a statically linked program update
++ __curbrk from the kernel's brk value. That way two separate
++ instances of __brk and __sbrk can share the heap, returning
++ interleaved pieces of it. */
++ if (__curbrk == NULL || __libc_multiple_libcs)
++ if (__brk_nosysenter (0) < 0) /* Initialize the break. */
++ return (void *) -1;
++
++ if (increment == 0)
++ return __curbrk;
++
++ oldbrk = __curbrk;
++ if (__brk_nosysenter (oldbrk + increment) < 0)
++ return (void *) -1;
++
++ return oldbrk;
++}
++#endif
+ void *
+ __sbrk (intptr_t increment)
+ {
+--- sysdeps/unix/sysv/linux/i386/brk.c
++++ sysdeps/unix/sysv/linux/i386/brk.c
+@@ -31,6 +31,30 @@
+ linker. */
+ weak_alias (__curbrk, ___brk_addr)
+
++#ifdef INTERNAL_SYSCALL_NOSYSENTER
++/* This version is used by csu/libc-tls.c whem initialising the TLS
++ * if the SYSENTER version requires the TLS (which it does on i386).
++ * Obviously using the TLS before it is initialised is broken. */
++int
++__brk_nosysenter (void *addr)
++{
++ void *__unbounded newbrk;
++
++ INTERNAL_SYSCALL_DECL (err);
++ newbrk = (void *__unbounded) INTERNAL_SYSCALL_NOSYSENTER (brk, err, 1,
++ __ptrvalue (addr));
++
++ __curbrk = newbrk;
++
++ if (newbrk < addr)
++ {
++ __set_errno (ENOMEM);
++ return -1;
++ }
++
++ return 0;
++}
++#endif
+ int
+ __brk (void *addr)
+ {
+--- sysdeps/unix/sysv/linux/i386/sysdep.h
++++ sysdeps/unix/sysv/linux/i386/sysdep.h
+@@ -187,7 +187,7 @@
+ /* The original calling convention for system calls on Linux/i386 is
+ to use int $0x80. */
+ #ifdef I386_USE_SYSENTER
+-# ifdef SHARED
++# if defined SHARED || defined __PIC__
+ # define ENTER_KERNEL call *%gs:SYSINFO_OFFSET
+ # else
+ # define ENTER_KERNEL call *_dl_sysinfo
+@@ -358,7 +358,7 @@
+ possible to use more than four parameters. */
+ #undef INTERNAL_SYSCALL
+ #ifdef I386_USE_SYSENTER
+-# ifdef SHARED
++# if defined SHARED || defined __PIC__
+ # define INTERNAL_SYSCALL(name, err, nr, args...) \
+ ({ \
+ register unsigned int resultvar; \
+@@ -384,6 +384,18 @@
+ : "0" (name), "i" (offsetof (tcbhead_t, sysinfo)) \
+ ASMFMT_##nr(args) : "memory", "cc"); \
+ (int) resultvar; })
++# define INTERNAL_SYSCALL_NOSYSENTER(name, err, nr, args...) \
++ ({ \
++ register unsigned int resultvar; \
++ EXTRAVAR_##nr \
++ asm volatile ( \
++ LOADARGS_NOSYSENTER_##nr \
++ "movl %1, %%eax\n\t" \
++ "int $0x80\n\t" \
++ RESTOREARGS_NOSYSENTER_##nr \
++ : "=a" (resultvar) \
++ : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc"); \
++ (int) resultvar; })
+ # else
+ # define INTERNAL_SYSCALL(name, err, nr, args...) \
+ ({ \
+@@ -447,12 +459,20 @@
+
+ #define LOADARGS_0
+ #ifdef __PIC__
+-# if defined I386_USE_SYSENTER && defined SHARED
++# if defined I386_USE_SYSENTER && ( defined SHARED || defined __PIC__ )
+ # define LOADARGS_1 \
+ "bpushl .L__X'%k3, %k3\n\t"
+ # define LOADARGS_5 \
+ "movl %%ebx, %4\n\t" \
+ "movl %3, %%ebx\n\t"
++# define LOADARGS_NOSYSENTER_1 \
++ "bpushl .L__X'%k2, %k2\n\t"
++# define LOADARGS_NOSYSENTER_2 LOADARGS_NOSYSENTER_1
++# define LOADARGS_NOSYSENTER_3 LOADARGS_3
++# define LOADARGS_NOSYSENTER_4 LOADARGS_3
++# define LOADARGS_NOSYSENTER_5 \
++ "movl %%ebx, %3\n\t" \
++ "movl %2, %%ebx\n\t"
+ # else
+ # define LOADARGS_1 \
+ "bpushl .L__X'%k2, %k2\n\t"
+@@ -474,11 +495,18 @@
+
+ #define RESTOREARGS_0
+ #ifdef __PIC__
+-# if defined I386_USE_SYSENTER && defined SHARED
++# if defined I386_USE_SYSENTER && ( defined SHARED || defined __PIC__ )
+ # define RESTOREARGS_1 \
+ "bpopl .L__X'%k3, %k3\n\t"
+ # define RESTOREARGS_5 \
+ "movl %4, %%ebx"
++# define RESTOREARGS_NOSYSENTER_1 \
++ "bpopl .L__X'%k2, %k2\n\t"
++# define RESTOREARGS_NOSYSENTER_2 RESTOREARGS_NOSYSENTER_1
++# define RESTOREARGS_NOSYSENTER_3 RESTOREARGS_3
++# define RESTOREARGS_NOSYSENTER_4 RESTOREARGS_3
++# define RESTOREARGS_NOSYSENTER_5 \
++ "movl %3, %%ebx"
+ # else
+ # define RESTOREARGS_1 \
+ "bpopl .L__X'%k2, %k2\n\t"
diff --git a/sys-libs/glibc/files/2.7/glibc-2.7-hardened-inittls-nosysenter.patch b/sys-libs/glibc/files/2.7/glibc-2.7-hardened-inittls-nosysenter.patch
new file mode 100644
index 0000000..ecf57a9
--- /dev/null
+++ b/sys-libs/glibc/files/2.7/glibc-2.7-hardened-inittls-nosysenter.patch
@@ -0,0 +1,273 @@
+When building glibc PIE (which is not something upstream support),
+several modifications are necessary to the glibc build process.
+
+First, any syscalls in PIEs must be of the PIC variant, otherwise
+textrels ensue. Then, any syscalls made before the initialisation
+of the TLS will fail on i386, as the sysenter variant on i386 uses
+the TLS, giving rise to a chicken-and-egg situation. This patch
+defines a PIC syscall variant that doesn't use sysenter, even when the sysenter
+version is normally used, and uses the non-sysenter version for the brk
+syscall that is performed by the TLS initialisation. Further, the TLS
+initialisation is moved in this case prior to the initialisation of
+dl_osversion, as that requires further syscalls.
+
+csu/libc-start.c: Move initial TLS initialization to before the
+initialisation of dl_osversion, when INTERNAL_SYSCALL_NOSYSENTER is defined
+
+csu/libc-tls.c: Use the no-sysenter version of sbrk when
+INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+misc/sbrk.c: Define a no-sysenter version of sbrk, using the no-sysenter
+version of brk - if INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+misc/brk.c: Define a no-sysenter version of brk if
+INTERNAL_SYSCALL_NOSYSENTER is defined.
+
+sysdeps/unix/sysv/linux/i386/sysdep.h: Define INTERNAL_SYSCALL_NOSYSENTER
+Make INTERNAL_SYSCALL always use the PIC variant, even if not SHARED.
+
+Patch by Kevin F. Quinn <kevquinn@gentoo.org>
+
+--- csu/libc-start.c
++++ csu/libc-start.c
+@@ -28,6 +28,7 @@
+ extern int __libc_multiple_libcs;
+
+ #include <tls.h>
++#include <sysdep.h>
+ #ifndef SHARED
+ # include <dl-osinfo.h>
+ extern void __pthread_initialize_minimal (void);
+@@ -129,6 +130,11 @@
+ # endif
+ _dl_aux_init (auxvec);
+ # endif
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ /* Do the initial TLS initialization before _dl_osversion,
++ since the latter uses the uname syscall. */
++ __pthread_initialize_minimal ();
++# endif
+ # ifdef DL_SYSDEP_OSCHECK
+ if (!__libc_multiple_libcs)
+ {
+@@ -138,10 +144,12 @@
+ }
+ # endif
+
++# ifndef INTERNAL_SYSCALL_NOSYSENTER
+ /* Initialize the thread library at least a bit since the libgcc
+ functions are using thread functions if these are available and
+ we need to setup errno. */
+ __pthread_initialize_minimal ();
++# endif
+
+ /* Set up the stack checker's canary. */
+ uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard ();
+--- csu/libc-tls.c
++++ csu/libc-tls.c
+@@ -23,6 +23,7 @@
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <sys/param.h>
++#include <sysdep.h>
+
+
+ #ifdef SHARED
+@@ -29,6 +30,9 @@
+ #error makefile bug, this file is for static only
+ #endif
+
++#ifdef INTERNAL_SYSCALL_NOSYSENTER
++extern void *__sbrk_nosysenter (intptr_t __delta);
++#endif
+ extern ElfW(Phdr) *_dl_phdr;
+ extern size_t _dl_phnum;
+
+@@ -141,14 +145,26 @@
+
+ The initialized value of _dl_tls_static_size is provided by dl-open.c
+ to request some surplus that permits dynamic loading of modules with
+- IE-model TLS. */
++ IE-model TLS.
++
++ Where the normal sbrk would use a syscall that needs the TLS (i386)
++ use the special non-sysenter version instead. */
+ #if TLS_TCB_AT_TP
+ tcb_offset = roundup (memsz + GL(dl_tls_static_size), tcbalign);
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ tlsblock = __sbrk_nosysenter (tcb_offset + tcbsize + max_align);
++# else
+ tlsblock = __sbrk (tcb_offset + tcbsize + max_align);
++# endif
+ #elif TLS_DTV_AT_TP
+ tcb_offset = roundup (tcbsize, align ?: 1);
++# ifdef INTERNAL_SYSCALL_NOSYSENTER
++ tlsblock = __sbrk_nosysenter (tcb_offset + memsz + max_align
++ + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size));
++# else
+ tlsblock = __sbrk (tcb_offset + memsz + max_align
+ + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size));
++# endif
+ tlsblock += TLS_PRE_TCB_SIZE;
+ #else
+ /* In case a model with a different layout for the TCB and DTV
+--- misc/sbrk.c
++++ misc/sbrk.c
+@@ -18,6 +18,7 @@
+
+ #include <unistd.h>
+ #include <errno.h>
++#include <sysdep.h>
+
+ /* Defined in brk.c. */
+ extern void *__curbrk;
+@@ -29,6 +30,35 @@
+ /* Extend the process's data space by INCREMENT.
+ If INCREMENT is negative, shrink data space by - INCREMENT.
+ Return start of new space allocated, or -1 for errors. */
++#ifdef INTERNAL_SYSCALL_NOSYSENTER
++/* This version is used by csu/libc-tls.c whem initialising the TLS
++ if the SYSENTER version requires the TLS (which it does on i386).
++ Obviously using the TLS before it is initialised is broken. */
++extern int __brk_nosysenter (void *addr);
++void *
++__sbrk_nosysenter (intptr_t increment)
++{
++ void *oldbrk;
++
++ /* If this is not part of the dynamic library or the library is used
++ via dynamic loading in a statically linked program update
++ __curbrk from the kernel's brk value. That way two separate
++ instances of __brk and __sbrk can share the heap, returning
++ interleaved pieces of it. */
++ if (__curbrk == NULL || __libc_multiple_libcs)
++ if (__brk_nosysenter (0) < 0) /* Initialize the break. */
++ return (void *) -1;
++
++ if (increment == 0)
++ return __curbrk;
++
++ oldbrk = __curbrk;
++ if (__brk_nosysenter (oldbrk + increment) < 0)
++ return (void *) -1;
++
++ return oldbrk;
++}
++#endif
+ void *
+ __sbrk (intptr_t increment)
+ {
+--- sysdeps/unix/sysv/linux/i386/brk.c
++++ sysdeps/unix/sysv/linux/i386/brk.c
+@@ -31,6 +31,30 @@
+ linker. */
+ weak_alias (__curbrk, ___brk_addr)
+
++#ifdef INTERNAL_SYSCALL_NOSYSENTER
++/* This version is used by csu/libc-tls.c whem initialising the TLS
++ * if the SYSENTER version requires the TLS (which it does on i386).
++ * Obviously using the TLS before it is initialised is broken. */
++int
++__brk_nosysenter (void *addr)
++{
++ void *__unbounded newbrk;
++
++ INTERNAL_SYSCALL_DECL (err);
++ newbrk = (void *__unbounded) INTERNAL_SYSCALL_NOSYSENTER (brk, err, 1,
++ __ptrvalue (addr));
++
++ __curbrk = newbrk;
++
++ if (newbrk < addr)
++ {
++ __set_errno (ENOMEM);
++ return -1;
++ }
++
++ return 0;
++}
++#endif
+ int
+ __brk (void *addr)
+ {
+--- sysdeps/unix/sysv/linux/i386/sysdep.h
++++ sysdeps/unix/sysv/linux/i386/sysdep.h
+@@ -187,7 +187,7 @@
+ /* The original calling convention for system calls on Linux/i386 is
+ to use int $0x80. */
+ #ifdef I386_USE_SYSENTER
+-# ifdef SHARED
++# if defined SHARED || defined __PIC__
+ # define ENTER_KERNEL call *%gs:SYSINFO_OFFSET
+ # else
+ # define ENTER_KERNEL call *_dl_sysinfo
+@@ -358,7 +358,7 @@
+ possible to use more than four parameters. */
+ #undef INTERNAL_SYSCALL
+ #ifdef I386_USE_SYSENTER
+-# ifdef SHARED
++# if defined SHARED || defined __PIC__
+ # define INTERNAL_SYSCALL(name, err, nr, args...) \
+ ({ \
+ register unsigned int resultvar; \
+@@ -384,6 +384,18 @@
+ : "0" (name), "i" (offsetof (tcbhead_t, sysinfo)) \
+ ASMFMT_##nr(args) : "memory", "cc"); \
+ (int) resultvar; })
++# define INTERNAL_SYSCALL_NOSYSENTER(name, err, nr, args...) \
++ ({ \
++ register unsigned int resultvar; \
++ EXTRAVAR_##nr \
++ asm volatile ( \
++ LOADARGS_NOSYSENTER_##nr \
++ "movl %1, %%eax\n\t" \
++ "int $0x80\n\t" \
++ RESTOREARGS_NOSYSENTER_##nr \
++ : "=a" (resultvar) \
++ : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc"); \
++ (int) resultvar; })
+ # else
+ # define INTERNAL_SYSCALL(name, err, nr, args...) \
+ ({ \
+@@ -447,12 +459,20 @@
+
+ #define LOADARGS_0
+ #ifdef __PIC__
+-# if defined I386_USE_SYSENTER && defined SHARED
++# if defined I386_USE_SYSENTER && ( defined SHARED || defined __PIC__ )
+ # define LOADARGS_1 \
+ "bpushl .L__X'%k3, %k3\n\t"
+ # define LOADARGS_5 \
+ "movl %%ebx, %4\n\t" \
+ "movl %3, %%ebx\n\t"
++# define LOADARGS_NOSYSENTER_1 \
++ "bpushl .L__X'%k2, %k2\n\t"
++# define LOADARGS_NOSYSENTER_2 LOADARGS_NOSYSENTER_1
++# define LOADARGS_NOSYSENTER_3 LOADARGS_3
++# define LOADARGS_NOSYSENTER_4 LOADARGS_3
++# define LOADARGS_NOSYSENTER_5 \
++ "movl %%ebx, %3\n\t" \
++ "movl %2, %%ebx\n\t"
+ # else
+ # define LOADARGS_1 \
+ "bpushl .L__X'%k2, %k2\n\t"
+@@ -474,11 +495,18 @@
+
+ #define RESTOREARGS_0
+ #ifdef __PIC__
+-# if defined I386_USE_SYSENTER && defined SHARED
++# if defined I386_USE_SYSENTER && ( defined SHARED || defined __PIC__ )
+ # define RESTOREARGS_1 \
+ "bpopl .L__X'%k3, %k3\n\t"
+ # define RESTOREARGS_5 \
+ "movl %4, %%ebx"
++# define RESTOREARGS_NOSYSENTER_1 \
++ "bpopl .L__X'%k2, %k2\n\t"
++# define RESTOREARGS_NOSYSENTER_2 RESTOREARGS_NOSYSENTER_1
++# define RESTOREARGS_NOSYSENTER_3 RESTOREARGS_3
++# define RESTOREARGS_NOSYSENTER_4 RESTOREARGS_3
++# define RESTOREARGS_NOSYSENTER_5 \
++ "movl %3, %%ebx"
+ # else
+ # define RESTOREARGS_1 \
+ "bpopl .L__X'%k2, %k2\n\t"
diff --git a/sys-libs/glibc/files/eblits/common.eblit b/sys-libs/glibc/files/eblits/common.eblit
new file mode 100644
index 0000000..e3a0abe
--- /dev/null
+++ b/sys-libs/glibc/files/eblits/common.eblit
@@ -0,0 +1,285 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/common.eblit,v 1.25 2011/12/22 01:09:58 vapier Exp $
+
+alt_prefix() {
+ is_crosscompile && echo /usr/${CTARGET}
+}
+
+# We need to be able to set alternative headers for
+# compiling for non-native platform
+# Will also become useful for testing kernel-headers without screwing up
+# the whole system.
+# note: intentionally undocumented.
+alt_headers() {
+ echo ${ALT_HEADERS:=$(alt_prefix)/usr/include}
+}
+alt_build_headers() {
+ if [[ -z ${ALT_BUILD_HEADERS} ]] ; then
+ ALT_BUILD_HEADERS=$(alt_headers)
+ if tc-is-cross-compiler ; then
+ ALT_BUILD_HEADERS=${ROOT}$(alt_headers)
+ if [[ ! -e ${EPREFIX}/${ALT_BUILD_HEADERS}/linux/version.h ]] ; then
+ local header_path=$(echo '#include <linux/version.h>' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h')
+ ALT_BUILD_HEADERS=${header_path%/linux/version.h}
+ fi
+ fi
+ fi
+ echo "${ALT_BUILD_HEADERS}"
+}
+
+alt_usrlibdir() {
+ echo $(alt_prefix)/usr/$(get_libdir)
+}
+
+setup_target_flags() {
+ # This largely mucks with compiler flags. None of which should matter
+ # when building up just the headers.
+ just_headers && return 0
+
+ case $(tc-arch) in
+ x86)
+ # -march needed for #185404 #199334
+ if ! glibc_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ filter-flags '-march=*'
+ export CFLAGS="-march=${t} ${CFLAGS}"
+ einfo "Auto adding -march=${t} to CFLAGS #185404"
+ fi
+ ;;
+ amd64)
+ # -march needed for #185404 #199334
+ if ! glibc_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ filter-flags '-march=*'
+ # ugly, ugly, ugly. ugly.
+ CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}")
+ export CFLAGS_x86="${CFLAGS_x86} -march=${t}"
+ einfo "Auto adding -march=${t} to CFLAGS_x86 #185404"
+ fi
+ ;;
+ ppc)
+ append-flags "-freorder-blocks"
+ ;;
+ sparc)
+ # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though.
+ filter-flags "-fcall-used-g7"
+ append-flags "-fcall-used-g6"
+ filter-flags "-mvis"
+
+ GLIBCMAJOR=$(get_version_component_range 1 ${PV})
+ GLIBCMINOR=$(get_version_component_range 2 ${PV})
+
+ # set CTARGET_OPT so glibc can use cpu-specific .S files for better performance
+ # - UltraSPARC T1 (niagara) support requires >= glibc 2.8
+ # - UltraSPARC T2 (niagara2) support requires >= glibc 2.7
+
+ if is_crosscompile || [[ ${PROFILE_ARCH} == "sparc64" ]] || { has_multilib_profile && ! tc-is-cross-compiler; } ; then
+ case ${ABI}:${CTARGET} in
+ sparc64:*|\
+ default:sparc64*)
+ filter-flags -Wa,-xarch -Wa,-A
+
+ if is-flagq "-mcpu=niagara2" && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.7 ]] ; then
+ CTARGET_OPT="sparc64v2-unknown-linux-gnu"
+ append-flags "-Wa,-xarch=v9b"
+ export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9b"
+ elif { is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2" ; } && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.6 ]] ; then
+ CTARGET_OPT="sparc64v-unknown-linux-gnu"
+ append-flags "-Wa,-xarch=v9b"
+ export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9b"
+ elif is-flagq "-mcpu=ultrasparc3" || is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2"; then
+ CTARGET_OPT="sparc64b-unknown-linux-gnu"
+ append-flags "-Wa,-xarch=v9b"
+ export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9b"
+ else
+ CTARGET_OPT="sparc64-unknown-linux-gnu"
+ append-flags "-Wa,-xarch=v9a"
+ export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9a"
+ fi
+ ;;
+ *)
+ if is-flagq "-mcpu=niagara2" && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.7 ]] ; then
+ CTARGET_OPT="sparcv9v2-unknown-linux-gnu"
+ elif { is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2" ; } && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.6 ]] ; then
+ CTARGET_OPT="sparcv9v-unknown-linux-gnu"
+ elif is-flagq "-mcpu=ultrasparc3" || is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2"; then
+ CTARGET_OPT="sparcv9b-unknown-linux-gnu"
+ else
+ CTARGET_OPT="sparcv9-unknown-linux-gnu"
+ fi
+ ;;
+ esac
+ else
+ if is-flagq "-mcpu=niagara2" && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.7 ]] ; then
+ CTARGET_OPT="sparcv9v2-unknown-linux-gnu"
+ elif { is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2" ; } && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.6 ]] ; then
+ CTARGET_OPT="sparcv9v-unknown-linux-gnu"
+ elif is-flagq "-mcpu=ultrasparc3" || is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2"; then
+ CTARGET_OPT="sparcv9b-unknown-linux-gnu"
+ elif { is_crosscompile && want_nptl; } || is-flagq "-mcpu=ultrasparc2" || is-flagq "-mcpu=ultrasparc"; then
+ CTARGET_OPT="sparcv9-unknown-linux-gnu"
+ fi
+ fi
+ ;;
+ esac
+}
+
+setup_flags() {
+ # Make sure host make.conf doesn't pollute us
+ if is_crosscompile || tc-is-cross-compiler ; then
+ CHOST=${CTARGET} strip-unsupported-flags
+ fi
+
+ # Store our CFLAGS because it's changed depending on which CTARGET
+ # we are building when pulling glibc on a multilib profile
+ CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}}
+ CFLAGS=${CFLAGS_BASE}
+ CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}}
+ CXXFLAGS=${CXXFLAGS_BASE}
+ ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}}
+ ASFLAGS=${ASFLAGS_BASE}
+
+ # Over-zealous CFLAGS can often cause problems. What may work for one
+ # person may not work for another. To avoid a large influx of bugs
+ # relating to failed builds, we strip most CFLAGS out to ensure as few
+ # problems as possible.
+ strip-flags
+ strip-unsupported-flags
+ filter-flags -m32 -m64 -mabi=*
+
+ unset CBUILD_OPT CTARGET_OPT
+ if has_multilib_profile ; then
+ CTARGET_OPT=$(get_abi_CTARGET)
+ [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST)
+ fi
+
+ setup_target_flags
+
+ if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then
+ CBUILD_OPT=${CTARGET_OPT}
+ fi
+
+ # Lock glibc at -O2 -- linuxthreads needs it and we want to be
+ # conservative here. -fno-strict-aliasing is to work around #155906
+ filter-flags -O?
+ append-flags -O2 -fno-strict-aliasing
+
+ # Cant build glibc itself with fortify code
+ append-cppflags -U_FORTIFY_SOURCE
+
+ # building glibc with SSP is fraught with difficulty, especially
+ # due to __stack_chk_fail_local which would mean significant changes
+ # to the glibc build process. See bug #94325 #293721
+ use hardened && gcc-specs-ssp && append-cflags $(test-flags-CC -fno-stack-protector)
+
+ if use hardened && gcc-specs-pie ; then
+ # Force PIC macro definition for all compilations since they're all
+ # either -fPIC or -fPIE with the default-PIE compiler.
+ append-cppflags -DPIC
+ else
+ # Don't build -fPIE without the default-PIE compiler and the
+ # hardened-pie patch
+ filter-flags -fPIE
+ fi
+}
+
+want_nptl() {
+ [[ -z ${LT_VER} ]] && return 0
+ want_tls || return 1
+ use nptl || return 1
+
+ # Only list the arches that cannot do NPTL
+ case $(tc-arch) in
+ m68k) return 1;;
+ sparc)
+ # >= v9 is needed for nptl.
+ [[ ${PROFILE_ARCH} == "sparc" ]] && return 1
+ ;;
+ esac
+
+ return 0
+}
+
+want_linuxthreads() {
+ [[ -z ${LT_VER} ]] && return 1
+ use linuxthreads
+}
+
+want_tls() {
+ # Archs that can use TLS (Thread Local Storage)
+ case $(tc-arch) in
+ x86)
+ # requires i486 or better #106556
+ [[ ${CTARGET} == i[4567]86* ]] && return 0
+ return 1
+ ;;
+ esac
+
+ return 0
+}
+
+want__thread() {
+ want_tls || return 1
+
+ # For some reason --with-tls --with__thread is causing segfaults on sparc32.
+ [[ ${PROFILE_ARCH} == "sparc" ]] && return 1
+
+ [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD}
+
+ # only test gcc -- cant test linking yet
+ tc-has-tls -c ${CTARGET}
+ WANT__THREAD=$?
+
+ return ${WANT__THREAD}
+}
+
+use_multiarch() {
+ # Make sure binutils is new enough to support indirect functions #336792
+ local bver=$($(tc-getLD ${CTARGET}) -v | awk '{print $NF}') nver
+ case $(tc-arch ${CTARGET}) in
+ amd64|x86) nver="2.20" ;;
+ sparc) nver="2.21" ;;
+ *) return 1 ;;
+ esac
+ version_is_at_least ${nver} ${bver}
+}
+
+# Setup toolchain variables that had historically
+# been defined in the profiles for these archs.
+setup_env() {
+ # silly users
+ unset LD_RUN_PATH
+
+ multilib_env ${CTARGET_OPT:-${CTARGET}}
+ if is_crosscompile || tc-is-cross-compiler ; then
+ if ! use multilib ; then
+ MULTILIB_ABIS=${DEFAULT_ABI}
+ else
+ MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}}
+ fi
+
+ # If the user has CFLAGS_<CTARGET> in their make.conf, use that,
+ # and fall back on CFLAGS.
+ local VAR=CFLAGS_${CTARGET//[-.]/_}
+ CFLAGS=${!VAR-${CFLAGS}}
+ fi
+
+ setup_flags
+
+ export ABI=${ABI:-${DEFAULT_ABI:-default}}
+
+ local VAR=CFLAGS_${ABI}
+ # We need to export CFLAGS with abi information in them because glibc's
+ # configure script checks CFLAGS for some targets (like mips). Keep
+ # around the original clean value to avoid appending multiple ABIs on
+ # top of each other.
+ : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})}
+ export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}"
+}
+
+just_headers() {
+ is_crosscompile && use crosscompile_opts_headers-only
+}
diff --git a/sys-libs/glibc/files/eblits/common.eblit~ b/sys-libs/glibc/files/eblits/common.eblit~
new file mode 100644
index 0000000..db4c5f3
--- /dev/null
+++ b/sys-libs/glibc/files/eblits/common.eblit~
@@ -0,0 +1,287 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/common.eblit,v 1.11 2010/06/16 01:43:37 zorry Exp $
+
+# We need to be able to set alternative headers for
+# compiling for non-native platform
+# Will also become useful for testing kernel-headers without screwing up
+# the whole system.
+# note: intentionally undocumented.
+alt_headers() {
+ if [[ -z ${ALT_HEADERS} ]] ; then
+ if is_crosscompile ; then
+ ALT_HEADERS="${EPREFIX}/usr/${CTARGET}/usr/include"
+ else
+ ALT_HEADERS="${EPREFIX}/usr/include"
+ fi
+ fi
+ echo "${ALT_HEADERS}"
+}
+alt_build_headers() {
+ if [[ -z ${ALT_BUILD_HEADERS} ]] ; then
+ ALT_BUILD_HEADERS=$(alt_headers)
+ if tc-is-cross-compiler ; then
+ ALT_BUILD_HEADERS=${ROOT}$(alt_headers)
+ if [[ ! -e ${ALT_BUILD_HEADERS}/linux/version.h ]] ; then
+ local header_path=$(echo '#include <linux/version.h>' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h')
+ ALT_BUILD_HEADERS=${header_path%/linux/version.h}
+ fi
+ fi
+ fi
+ echo "${ALT_BUILD_HEADERS}"
+}
+
+alt_usrlibdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/usr/$(get_libdir)
+ else
+ echo /usr/$(get_libdir)
+ fi
+}
+
+setup_flags() {
+ # Make sure host make.conf doesn't pollute us
+ if is_crosscompile || tc-is-cross-compiler ; then
+ CHOST=${CTARGET} strip-unsupported-flags
+ fi
+
+ # Store our CFLAGS because it's changed depending on which CTARGET
+ # we are building when pulling glibc on a multilib profile
+ CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}}
+ CFLAGS=${CFLAGS_BASE}
+ CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}}
+ CXXFLAGS=${CXXFLAGS_BASE}
+ ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}}
+ ASFLAGS=${ASFLAGS_BASE}
+
+ # Over-zealous CFLAGS can often cause problems. What may work for one
+ # person may not work for another. To avoid a large influx of bugs
+ # relating to failed builds, we strip most CFLAGS out to ensure as few
+ # problems as possible.
+ strip-flags
+ strip-unsupported-flags
+ filter-flags -m32 -m64 -mabi=*
+
+ unset CBUILD_OPT CTARGET_OPT
+ if has_multilib_profile ; then
+ CTARGET_OPT=$(get_abi_CTARGET)
+ [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST)
+ fi
+
+ case $(tc-arch) in
+ x86)
+ # -march needed for #185404
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ if ! echo "" | $(tc-getCC) ${CFLAGS} -E -dD - | grep -qs __${t}__ ; then
+ filter-flags '-march=*'
+ export CFLAGS="-march=${t} ${CFLAGS}"
+ fi
+ ;;
+ amd64)
+ # Punt this when amd64's 2004.3 is removed
+ CFLAGS_x86="-m32"
+
+ # -march needed for #185404
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ if ! echo "" | $(tc-getCC) ${CFLAGS} ${CFLAGS_x86} -m32 -E -dD - | grep -qs __${t}__ ; then
+ filter-flags '-march=*'
+ export CFLAGS_x86="${CFLAGS_x86} -march=${t}"
+ fi
+ ;;
+ ppc)
+ append-flags "-freorder-blocks"
+ ;;
+ sparc)
+ # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though.
+ filter-flags "-fcall-used-g7"
+ append-flags "-fcall-used-g6"
+ filter-flags "-mvis"
+
+ GLIBCMAJOR=$(get_version_component_range 1 ${PV})
+ GLIBCMINOR=$(get_version_component_range 2 ${PV})
+
+ # set CTARGET_OPT so glibc can use cpu-specific .S files for better performance
+ # - UltraSPARC T1 (niagara) support requires >= glibc 2.8
+ # - UltraSPARC T2 (niagara2) support requires >= glibc 2.7
+
+ if is_crosscompile || [[ ${PROFILE_ARCH} == "sparc64" ]] || { has_multilib_profile && ! tc-is-cross-compiler; } ; then
+ case ${ABI} in
+ sparc64)
+ filter-flags -Wa,-xarch -Wa,-A
+
+ if is-flagq "-mcpu=niagara2" && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.7 ]] ; then
+ CTARGET_OPT="sparc64v2-unknown-linux-gnu"
+ append-flags "-Wa,-xarch=v9b"
+ export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9b"
+ elif { is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2" ; } && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.6 ]] ; then
+ CTARGET_OPT="sparc64v-unknown-linux-gnu"
+ append-flags "-Wa,-xarch=v9b"
+ export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9b"
+ elif is-flagq "-mcpu=ultrasparc3" || is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2"; then
+ CTARGET_OPT="sparc64b-unknown-linux-gnu"
+ append-flags "-Wa,-xarch=v9b"
+ export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9b"
+ else
+ CTARGET_OPT="sparc64-unknown-linux-gnu"
+ append-flags "-Wa,-xarch=v9a"
+ export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9a"
+ fi
+ ;;
+ *)
+ if is-flagq "-mcpu=niagara2" && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.7 ]] ; then
+ CTARGET_OPT="sparcv9v2-unknown-linux-gnu"
+ elif { is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2" ; } && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.6 ]] ; then
+ CTARGET_OPT="sparcv9v-unknown-linux-gnu"
+ elif is-flagq "-mcpu=ultrasparc3" || is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2"; then
+ CTARGET_OPT="sparcv9b-unknown-linux-gnu"
+ else
+ CTARGET_OPT="sparcv9-unknown-linux-gnu"
+ fi
+ ;;
+ esac
+ else
+ if is-flagq "-mcpu=niagara2" && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.7 ]] ; then
+ CTARGET_OPT="sparcv9v2-unknown-linux-gnu"
+ elif { is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2" ; } && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.6 ]] ; then
+ CTARGET_OPT="sparcv9v-unknown-linux-gnu"
+ elif is-flagq "-mcpu=ultrasparc3" || is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2"; then
+ CTARGET_OPT="sparcv9b-unknown-linux-gnu"
+ elif { is_crosscompile && want_nptl; } || is-flagq "-mcpu=ultrasparc2" || is-flagq "-mcpu=ultrasparc"; then
+ CTARGET_OPT="sparcv9-unknown-linux-gnu"
+ fi
+ fi
+ ;;
+ esac
+
+ if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then
+ CBUILD_OPT=${CTARGET_OPT}
+ fi
+
+ # Lock glibc at -O2 -- linuxthreads needs it and we want to be
+ # conservative here. -fno-strict-aliasing is to work around #155906
+ filter-flags -O?
+ append-flags -O2 -fno-strict-aliasing
+
+ # Cant build glibc itself with fortify code
+ append-cppflags -U_FORTIFY_SOURCE
+
+ # building glibc with SSP is fraught with difficulty, especially
+ # due to __stack_chk_fail_local which would mean significant changes
+ # to the glibc build process. See bug #94325 #293721
+ use hardened && gcc-specs-ssp && append-cflags $(test-flags-CC -fno-stack-protector)
+
+ if use hardened && gcc-specs-pie ; then
+ # Force PIC macro definition for all compilations since they're all
+ # either -fPIC or -fPIE with the default-PIE compiler.
+ append-cppflags -DPIC
+ else
+ # Don't build -fPIE without the default-PIE compiler and the
+ # hardened-pie patch
+ filter-flags -fPIE
+ fi
+}
+
+want_nptl() {
+ [[ -z ${LT_VER} ]] && return 0
+ want_tls || return 1
+ use nptl || return 1
+
+ # Only list the arches that cannot do NPTL
+ case $(tc-arch) in
+ m68k) return 1;;
+ sparc)
+ # >= v9 is needed for nptl.
+ [[ ${PROFILE_ARCH} == "sparc" ]] && return 1
+ ;;
+ esac
+
+ return 0
+}
+
+want_linuxthreads() {
+ [[ -z ${LT_VER} ]] && return 1
+ ! use nptlonly && return 0
+ want_nptl || return 0
+ return 1
+}
+
+want_tls() {
+ # Archs that can use TLS (Thread Local Storage)
+ case $(tc-arch) in
+ sparc)
+ # 2.3.6 should have tls support on sparc64
+ # when using newer binutils
+ case ${CTARGET/-*} in
+ sparc64*) return 1 ;;
+ *) return 0 ;;
+ esac
+ ;;
+ x86)
+ # requires i486 or better #106556
+ [[ ${CTARGET} == i[4567]86* ]] && return 0
+ return 1
+ ;;
+ esac
+
+ return 0
+}
+
+want__thread() {
+ want_tls || return 1
+
+ # For some reason --with-tls --with__thread is causing segfaults on sparc32.
+ [[ ${PROFILE_ARCH} == "sparc" ]] && return 1
+
+ [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD}
+
+ # only test gcc -- cant test linking yet
+ tc-has-tls -c ${CTARGET}
+ WANT__THREAD=$?
+
+ return ${WANT__THREAD}
+}
+
+use_multilib() {
+ case ${CTARGET} in
+ sparc*|mips64*|x86_64*|powerpc64*|s390x*)
+ has_multilib_profile || use multilib ;;
+ *) false ;;
+ esac
+}
+
+# Setup toolchain variables that would be defined in the profiles for these archs.
+setup_env() {
+ # silly users
+ unset LD_RUN_PATH
+
+ if is_crosscompile || tc-is-cross-compiler ; then
+ multilib_env ${CTARGET}
+ if ! use multilib ; then
+ MULTILIB_ABIS=${DEFAULT_ABI}
+ else
+ MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}}
+ fi
+
+ # If the user has CFLAGS_<CTARGET> in their make.conf, use that,
+ # and fall back on CFLAGS.
+ local VAR=CFLAGS_${CTARGET//[-.]/_}
+ CFLAGS=${!VAR-${CFLAGS}}
+ fi
+
+ setup_flags
+
+ export ABI=${ABI:-${DEFAULT_ABI:-default}}
+
+ if is_crosscompile || tc-is-cross-compiler ; then
+ local VAR=CFLAGS_${ABI}
+ # We need to export CFLAGS with abi information in them because
+ # glibc's configure script checks CFLAGS for some targets (like mips)
+ export CFLAGS="${!VAR} ${CFLAGS}"
+ fi
+}
+
+just_headers() {
+ is_crosscompile && use crosscompile_opts_headers-only
+}
diff --git a/sys-libs/glibc/files/eblits/pkg_postinst.eblit b/sys-libs/glibc/files/eblits/pkg_postinst.eblit
new file mode 100644
index 0000000..2566eed
--- /dev/null
+++ b/sys-libs/glibc/files/eblits/pkg_postinst.eblit
@@ -0,0 +1,29 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/pkg_postinst.eblit,v 1.1 2009/03/01 21:06:22 vapier Exp $
+
+eblit-glibc-pkg_postinst() {
+ # nothing to do if just installing headers
+ just_headers && return
+
+ if ! tc-is-cross-compiler && [[ -x ${ROOT}/usr/sbin/iconvconfig ]] ; then
+ # Generate fastloading iconv module configuration file.
+ "${ROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}"
+ fi
+
+ if ! is_crosscompile && [[ ${ROOT} == "/" ]] ; then
+ # Reload init ... if in a chroot or a diff init package, ignore
+ # errors from this step #253697
+ /sbin/telinit U 2>/dev/null
+
+ # if the host locales.gen contains no entries, we'll install everything
+ local locale_list="${ROOT}etc/locale.gen"
+ if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then
+ ewarn "Generating all locales; edit /etc/locale.gen to save time/space"
+ locale_list="${ROOT}usr/share/i18n/SUPPORTED"
+ fi
+ local x jobs
+ for x in ${MAKEOPTS} ; do [[ ${x} == -j* ]] && jobs=${x#-j} ; done
+ locale-gen -j ${jobs:-1} --config "${locale_list}"
+ fi
+}
diff --git a/sys-libs/glibc/files/eblits/pkg_preinst.eblit b/sys-libs/glibc/files/eblits/pkg_preinst.eblit
new file mode 100644
index 0000000..a62499e
--- /dev/null
+++ b/sys-libs/glibc/files/eblits/pkg_preinst.eblit
@@ -0,0 +1,83 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/pkg_preinst.eblit,v 1.4 2011/11/16 16:07:46 vapier Exp $
+
+fix_lib64_symlinks() {
+ # the original Gentoo/AMD64 devs decided that since 64bit is the native
+ # bitdepth for AMD64, lib should be used for 64bit libraries. however,
+ # this ignores the FHS and breaks multilib horribly... especially
+ # since it wont even work without a lib64 symlink anyways. *rolls eyes*
+ # see bug 59710 for more information.
+ # Travis Tilley <lv@gentoo.org> (08 Aug 2004)
+ if [ -L ${EROOT}/lib64 ] ; then
+ ewarn "removing /lib64 symlink and moving lib to lib64..."
+ ewarn "dont hit ctrl-c until this is done"
+ rm ${EROOT}/lib64
+ # now that lib64 is gone, nothing will run without calling ld.so
+ # directly. luckily the window of brokenness is almost non-existant
+ use amd64 && /lib/ld-linux-x86-64.so.2 /bin/mv ${EROOT}/lib ${EROOT}/lib64
+ use ppc64 && /lib/ld64.so.1 /bin/mv ${EROOT}/lib ${EROOT}/lib64
+ # all better :)
+ ldconfig
+ ln -s lib64 ${EROOT}/lib
+ einfo "done! :-)"
+ einfo "fixed broken lib64/lib symlink in ${EROOT}"
+ fi
+ if [ -L ${EROOT}/usr/lib64 ] ; then
+ rm ${EROOT}/usr/lib64
+ mv ${EROOT}/usr/lib ${EROOT}/usr/lib64
+ ln -s lib64 ${EROOT}/usr/lib
+ einfo "fixed broken lib64/lib symlink in ${EROOT}/usr"
+ fi
+ if [ -L ${EROOT}/usr/X11R6/lib64 ] ; then
+ rm ${EROOT}/usr/X11R6/lib64
+ mv ${EROOT}/usr/X11R6/lib ${EROOT}/usr/X11R6/lib64
+ ln -s lib64 ${EROOT}/usr/X11R6/lib
+ einfo "fixed broken lib64/lib symlink in ${EROOT}/usr/X11R6"
+ fi
+}
+
+eblit-glibc-pkg_preinst() {
+ # nothing to do if just installing headers
+ just_headers && return
+
+ # PPC64+others may want to eventually be added to this logic if they
+ # decide to be multilib compatible and FHS compliant. note that this
+ # chunk of FHS compliance only applies to 64bit archs where 32bit
+ # compatibility is a major concern (not IA64, for example).
+
+ # amd64's 2005.0 is the first amd64 profile to not need this code.
+ # 2005.0 is setup properly, and this is executed as part of the
+ # 2004.3 -> 2005.0 upgrade script.
+ # It can be removed after 2004.3 has been purged from portage.
+ { use amd64 || use ppc64; } && [ "$(get_libdir)" == "lib64" ] && ! has_multilib_profile && fix_lib64_symlinks
+
+ # prepare /etc/ld.so.conf.d/ for files
+ mkdir -p "${EROOT}"/etc/ld.so.conf.d
+
+ # simple test to make sure our new glibc isnt completely broken.
+ # make sure we don't test with statically built binaries since
+ # they will fail. also, skip if this glibc is a cross compiler.
+ [[ ${ROOT} != "/" ]] && return 0
+ [[ -d ${D}/$(get_libdir) ]] || return 0
+ cd / #228809
+ local x striptest
+ for x in date env ls true uname ; do
+ x=$(type -p ${x})
+ [[ -z ${x} ]] && continue
+ striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null)
+ [[ -z ${striptest} ]] && continue
+ [[ ${striptest} == *"statically linked"* ]] && continue
+ # we enter ${D} so to avoid trouble if the path contains
+ # special characters; for instance if the path contains the
+ # colon character (:), then the linker will try to split it
+ # and look for the libraries in an unexpected place. This can
+ # lead to unsafe code execution if the generated prefix is
+ # within a world-writable directory
+ # (e.g. /var/tmp/portage:${HOSTNAME})
+ pushd "${D}"/$(get_libdir) 2>/dev/null
+ ./ld-*.so --library-path . ${x} > /dev/null \
+ || die "simple run test (${x}) failed"
+ popd 2>/dev/null
+ done
+}
diff --git a/sys-libs/glibc/files/eblits/pkg_setup.eblit b/sys-libs/glibc/files/eblits/pkg_setup.eblit
new file mode 100644
index 0000000..4e52695
--- /dev/null
+++ b/sys-libs/glibc/files/eblits/pkg_setup.eblit
@@ -0,0 +1,122 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/pkg_setup.eblit,v 1.10 2011/12/14 16:42:46 vapier Exp $
+
+glibc_compile_test() {
+ local ret save_cflags=${CFLAGS}
+ CFLAGS+=" $1"
+ shift
+
+ pushd "${T}" >/dev/null
+
+ rm -f glibc-test*
+ printf '%b' "$*" > glibc-test.c
+
+ emake -s glibc-test
+ ret=$?
+
+ popd >/dev/null
+
+ CFLAGS=${save_cflags}
+ return ${ret}
+}
+
+glibc_run_test() {
+ local ret
+
+ if [[ ${EMERGE_FROM} == "binary" ]] ; then
+ # ignore build failures when installing a binary package #324685
+ glibc_compile_test "" "$@" 2>/dev/null || return 0
+ else
+ if ! glibc_compile_test "" "$@" ; then
+ ewarn "Simple build failed ... assuming this is desired #324685"
+ return 0
+ fi
+ fi
+
+ pushd "${T}" >/dev/null
+
+ ./glibc-test
+ ret=$?
+ rm -f glibc-test*
+
+ popd >/dev/null
+
+ return ${ret}
+}
+
+eblit-glibc-pkg_setup() {
+ # prevent native builds from downgrading ... maybe update to allow people
+ # to change between diff -r versions ? (2.3.6-r4 -> 2.3.6-r2)
+ if [[ ${ROOT} == "/" ]] && [[ ${CBUILD} == ${CHOST} ]] && [[ ${CHOST} == ${CTARGET} ]] ; then
+ if has_version '>'${CATEGORY}/${PF} ; then
+ eerror "Sanity check to keep you from breaking your system:"
+ eerror " Downgrading glibc is not supported and a sure way to destruction"
+ die "aborting to save your system"
+ fi
+
+ if ! glibc_run_test '#include <pwd.h>\nint main(){return getpwuid(0)==0;}\n'
+ then
+ eerror "Your patched vendor kernel is broken. You need to get an"
+ eerror "update from whoever is providing the kernel to you."
+ eerror "http://sourceware.org/bugzilla/show_bug.cgi?id=5227"
+ eerror "http://bugs.gentoo.org/262698"
+ die "keeping your system alive, say thank you"
+ fi
+
+ if ! glibc_run_test '#include <unistd.h>\n#include <sys/syscall.h>\nint main(){return syscall(1000)!=-1;}\n'
+ then
+ eerror "Your old kernel is broken. You need to update it to"
+ eerror "a newer version as syscall(<bignum>) will break."
+ eerror "http://bugs.gentoo.org/279260"
+ die "keeping your system alive, say thank you"
+ fi
+ fi
+
+ # users have had a chance to phase themselves, time to give em the boot
+ if [[ -e ${ROOT}/etc/locale.gen ]] && [[ -e ${ROOT}/etc/locales.build ]] ; then
+ eerror "You still haven't deleted ${ROOT}/etc/locales.build."
+ eerror "Do so now after making sure ${ROOT}/etc/locale.gen is kosher."
+ die "lazy upgrader detected"
+ fi
+
+ if [[ ${CTARGET} == i386-* ]] ; then
+ eerror "i386 CHOSTs are no longer supported."
+ eerror "Chances are you don't actually want/need i386."
+ eerror "Please read http://www.gentoo.org/doc/en/change-chost.xml"
+ die "please fix your CHOST"
+ fi
+
+ if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then
+ ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS."
+ ewarn "This will result in a 50% performance penalty when running with a 32bit"
+ ewarn "hypervisor, which is probably not what you want."
+ fi
+
+ use hardened && ! gcc-specs-pie && \
+ ewarn "PIE hardening not applied, as your compiler doesn't default to PIE"
+
+ # Make sure host system is up to date #394453
+ if has_version '<sys-libs/glibc-2.13' && \
+ [[ -n $(scanelf -qys__guard -F'#s%F' "${EROOT}"/lib*/l*-*.so) ]]
+ then
+ ebegin "Scanning system for __guard to see if you need to rebuild first ..."
+ local files=$(
+ scanelf -qys__guard -F'#s%F' \
+ "${EROOT}"/*bin/ \
+ "${EROOT}"/lib* \
+ "${EROOT}"/usr/*bin/ \
+ "${EROOT}"/usr/lib* | \
+ egrep -v \
+ -e "^${EROOT}/lib.*/(libc|ld)-2.*.so$" \
+ -e "^${EROOT}/sbin/(ldconfig|sln)$"
+ )
+ [[ -z ${files} ]]
+ if ! eend $? ; then
+ eerror "Your system still has old SSP __guard symbols. You need to"
+ eerror "rebuild all the packages that provide these files first:"
+ eerror "${files}"
+ die "old __guard detected"
+ fi
+ fi
+}
diff --git a/sys-libs/glibc/files/eblits/src_compile.eblit b/sys-libs/glibc/files/eblits/src_compile.eblit
new file mode 100644
index 0000000..9aeb684
--- /dev/null
+++ b/sys-libs/glibc/files/eblits/src_compile.eblit
@@ -0,0 +1,212 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_compile.eblit,v 1.23 2012/01/17 23:51:59 vapier Exp $
+
+glibc_do_configure() {
+ local myconf
+
+ einfo "Configuring GLIBC for $1"
+
+ # set addons
+ pushd "${S}" > /dev/null
+ local ADDONS=$(echo */configure | sed \
+ -e 's:/configure::g' \
+ -e 's:\(linuxthreads\|nptl\|rtkaio\|glibc-compat\)\( \|$\)::g' \
+ -e 's: \+$::' \
+ -e 's! !,!g' \
+ -e 's!^!,!' \
+ -e '/^,\*$/d')
+ [[ -d ports ]] && ADDONS="${ADDONS},ports"
+ popd > /dev/null
+
+ myconf="${myconf} $(use_enable hardened stackguard-randomization)"
+ if has_version '<sys-libs/glibc-2.13' ; then
+ myconf="${myconf} --enable-old-ssp-compat"
+ fi
+
+ use glibc-omitfp && myconf="${myconf} --enable-omitfp"
+
+ [[ ${CTARGET//_/-} == *-softfloat-* ]] && myconf="${myconf} --without-fp"
+
+ if [[ $1 == "linuxthreads" ]] ; then
+ if want_tls ; then
+ myconf="${myconf} --with-tls"
+
+ if ! want__thread || use glibc-compat20 || [[ ${LT_KER_VER} == 2.[02].* ]] ; then
+ myconf="${myconf} --without-__thread"
+ else
+ myconf="${myconf} --with-__thread"
+ fi
+ else
+ myconf="${myconf} --without-tls --without-__thread"
+ fi
+
+ myconf="${myconf} --disable-sanity-checks"
+ myconf="${myconf} --enable-add-ons=linuxthreads${ADDONS}"
+ myconf="${myconf} --enable-kernel=${LT_KER_VER}"
+ elif [[ $1 == "nptl" ]] ; then
+ myconf="${myconf} --enable-add-ons=nptl${ADDONS}"
+ myconf="${myconf} --enable-kernel=${NPTL_KERN_VER}"
+ else
+ die "invalid pthread option"
+ fi
+
+ # Since SELinux support is only required for nscd, only enable it if:
+ # 1. USE selinux
+ # 2. only for the primary ABI on multilib systems
+ # 3. Not a crosscompile
+ if ! is_crosscompile && use selinux ; then
+ if use multilib || has_multilib_profile ; then
+ if is_final_abi ; then
+ myconf="${myconf} --with-selinux"
+ else
+ myconf="${myconf} --without-selinux"
+ fi
+ else
+ myconf="${myconf} --with-selinux"
+ fi
+ else
+ myconf="${myconf} --without-selinux"
+ fi
+
+ myconf="${myconf}
+ --without-cvs
+ --enable-bind-now
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ $(use_enable profile)
+ $(use_with gd)
+ --with-headers=${EPREFIX}/$(alt_build_headers)
+ --prefix=/usr
+ --libdir=/usr/$(get_libdir)
+ --mandir=/usr/share/man
+ --infodir=/usr/share/info
+ --libexecdir=/usr/$(get_libdir)/misc/glibc
+ $(use_multiarch || echo --disable-multi-arch)
+ ${EXTRA_ECONF}"
+
+ # There is no configure option for this and we need to export it
+ # since the glibc build will re-run configure on itself
+ export libc_cv_slibdir=/$(get_libdir)
+
+ # We take care of patching our binutils to use both hash styles,
+ # and many people like to force gnu hash style only, so disable
+ # this overriding check. #347761
+ export libc_cv_hashstyle=no
+
+ local GBUILDDIR=${WORKDIR}/build-${ABI}-${CTARGET}-$1
+ mkdir -p "${GBUILDDIR}"
+ cd "${GBUILDDIR}"
+ echo "${S}"/configure ${myconf}
+ "${S}"/configure ${myconf} || die "failed to configure glibc"
+}
+
+toolchain-glibc_src_compile() {
+ echo
+ local v
+ for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC {AS,C,CPP,CXX,LD}FLAGS ; do
+ einfo " $(printf '%15s' ${v}:) ${!v}"
+ done
+ export CC=$(tc-getCC ${CTARGET})
+ einfo " $(printf '%15s' 'Manual CC:') ${CC}"
+ echo
+
+ if want_linuxthreads ; then
+ glibc_do_configure linuxthreads
+ emake || die "make for ${ABI} failed"
+ fi
+ if want_nptl ; then
+ # ... and then do the optional nptl build
+ unset LD_ASSUME_KERNEL
+ glibc_do_configure nptl
+ emake || die "make for ${ABI} failed"
+ fi
+}
+
+toolchain-glibc_headers_compile() {
+ local GBUILDDIR=${WORKDIR}/build-${ABI}-${CTARGET}-headers
+ mkdir -p "${GBUILDDIR}"
+ cd "${GBUILDDIR}"
+
+ # if we don't have a compiler yet, we cant really test it now ...
+ # hopefully they don't affect header geneation, so let's hope for
+ # the best here ...
+ export \
+ ac_cv_header_cpuid_h=yes \
+ libc_cv_386_tls=yes \
+ libc_cv_asm_cfi_directives=yes \
+ libc_cv_broken_visibility_attribute=no \
+ libc_cv_gcc___thread=yes \
+ libc_cv_mlong_double_128=yes \
+ libc_cv_mlong_double_128ibm=yes \
+ libc_cv_ppc_machine=yes \
+ libc_cv_ppc_rel16=yes \
+ libc_cv_visibility_attribute=yes \
+ libc_cv_z_combreloc=yes \
+ libc_cv_z_execstack=yes \
+ libc_cv_z_initfirst=yes \
+ libc_cv_z_nodelete=yes \
+ libc_cv_z_nodlopen=yes \
+ libc_cv_z_relro=yes
+
+ # Pick out the correct location for build headers
+ local ports="" myconf="--disable-sanity-checks --enable-hacker-mode"
+ [[ -d ${S}/ports ]] && ports=",ports"
+ myconf="${myconf}
+ --enable-add-ons=nptl${ports}
+ --without-cvs
+ --enable-bind-now
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ --with-headers=${EPREFIX}/$(alt_build_headers)
+ --prefix=/usr
+ ${EXTRA_ECONF}"
+
+ # Nothing is compiled here which would affect the headers for the target.
+ # so forcing CC/CFLAGS is sane. unless you dont have `gcc`. then i
+ # dont care :p.
+ echo "${S}"/configure ${myconf}
+ CC=gcc \
+ CFLAGS="-O1 -pipe" \
+ CPPFLAGS="-U_FORTIFY_SOURCE" \
+ LDFLAGS="" \
+ "${S}"/configure ${myconf} || die "failed to configure glibc"
+}
+
+eblit-glibc-src_compile() {
+ if is_crosscompile ; then
+ export \
+ libc_cv_c_cleanup=yes \
+ libc_cv_forced_unwind=yes
+ fi
+
+ if just_headers ; then
+ export ABI=default
+ toolchain-glibc_headers_compile
+ return
+ fi
+
+ setup_env
+
+ if [[ -z ${OABI} ]] ; then
+ local abilist=""
+ if has_multilib_profile ; then
+ abilist=$(get_install_abis)
+ elif is_crosscompile || tc-is-cross-compiler ; then
+ abilist=${DEFAULT_ABI}
+ fi
+ einfo "Building glibc for ABIs: ${abilist}"
+ if [[ -n ${abilist} ]] ; then
+ OABI=${ABI}
+ for ABI in ${abilist} ; do
+ export ABI
+ src_compile
+ done
+ ABI=${OABI}
+ unset OABI
+ return 0
+ fi
+ fi
+
+ toolchain-glibc_src_compile
+}
diff --git a/sys-libs/glibc/files/eblits/src_compile.eblit~ b/sys-libs/glibc/files/eblits/src_compile.eblit~
new file mode 100644
index 0000000..9f2b597
--- /dev/null
+++ b/sys-libs/glibc/files/eblits/src_compile.eblit~
@@ -0,0 +1,208 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_compile.eblit,v 1.10 2009/11/06 00:33:03 vapier Exp $
+
+glibc_do_configure() {
+ local myconf
+
+ # set addons
+ pushd "${S}" > /dev/null
+ local ADDONS=$(echo */configure | sed \
+ -e 's:/configure::g' \
+ -e 's:\(linuxthreads\|nptl\|rtkaio\|glibc-compat\)\( \|$\)::g' \
+ -e 's: \+$::' \
+ -e 's! !,!g' \
+ -e 's!^!,!' \
+ -e '/^,\*$/d')
+ [[ -d ports ]] && ADDONS="${ADDONS},ports"
+ popd > /dev/null
+
+ use nls || myconf="${myconf} --disable-nls"
+ myconf="${myconf} $(use_enable hardened stackguard-randomization)"
+ if [[ $(<"${T}"/.ssp.compat) == "yes" ]] ; then
+ myconf="${myconf} --enable-old-ssp-compat"
+ else
+ myconf="${myconf} --disable-old-ssp-compat"
+ fi
+
+ use glibc-omitfp && myconf="${myconf} --enable-omitfp"
+
+ [[ ${CTARGET//_/-} == *-softfloat-* ]] && myconf="${myconf} --without-fp"
+
+ if [[ $1 == "linuxthreads" ]] ; then
+ if want_tls ; then
+ myconf="${myconf} --with-tls"
+
+ if ! want__thread || use glibc-compat20 || [[ ${LT_KER_VER} == 2.[02].* ]] ; then
+ myconf="${myconf} --without-__thread"
+ else
+ myconf="${myconf} --with-__thread"
+ fi
+ else
+ myconf="${myconf} --without-tls --without-__thread"
+ fi
+
+ myconf="${myconf} --disable-sanity-checks"
+ myconf="${myconf} --enable-add-ons=linuxthreads${ADDONS}"
+ myconf="${myconf} --enable-kernel=${LT_KER_VER}"
+ elif [[ $1 == "nptl" ]] ; then
+ myconf="${myconf} --enable-add-ons=nptl${ADDONS}"
+ myconf="${myconf} --enable-kernel=${NPTL_KERN_VER}"
+ else
+ die "invalid pthread option"
+ fi
+
+ # Since SELinux support is only required for nscd, only enable it if:
+ # 1. USE selinux
+ # 2. only for the primary ABI on multilib systems
+ # 3. Not a crosscompile
+ if ! is_crosscompile && use selinux ; then
+ if use multilib || has_multilib_profile ; then
+ if is_final_abi ; then
+ myconf="${myconf} --with-selinux"
+ else
+ myconf="${myconf} --without-selinux"
+ fi
+ else
+ myconf="${myconf} --with-selinux"
+ fi
+ else
+ myconf="${myconf} --without-selinux"
+ fi
+
+ myconf="${myconf}
+ --without-cvs
+ --enable-bind-now
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ $(use_enable profile)
+ $(use_with gd)
+ --with-headers=$(alt_build_headers)
+ --prefix=${EPREFIX}/usr
+ --libdir=${EPREFIX}/usr/$(get_libdir)
+ --mandir=${EPREFIX}/usr/share/man
+ --infodir=${EPREFIX}/usr/share/info
+ --libexecdir=${EPREFIX}/usr/$(get_libdir)/misc/glibc
+ ${EXTRA_ECONF}"
+
+ # There is no configure option for this and we need to export it
+ # since the glibc build will re-run configure on itself
+ export libc_cv_slibdir=/$(get_libdir)
+
+ has_version app-admin/eselect-compiler || export CC=$(tc-getCC ${CTARGET})
+
+ local GBUILDDIR=${WORKDIR}/build-${ABI}-${CTARGET}-$1
+ mkdir -p "${GBUILDDIR}"
+ cd "${GBUILDDIR}"
+ einfo "Configuring GLIBC for $1 with: ${myconf// /\n\t\t}"
+ "${S}"/configure ${myconf} || die "failed to configure glibc"
+
+ # since we'll be punting them for cross-compilers, and they can cause
+ # problems (ia64+static), we'll just skip building altogether
+ is_crosscompile && sed -i '1ibuild-programs = no' config.make
+}
+
+toolchain-glibc_src_compile() {
+ echo
+ local v
+ for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CFLAGS ; do
+ einfo " $(printf '%15s' ${v}:) ${!v}"
+ done
+ echo
+
+ if want_linuxthreads ; then
+ glibc_do_configure linuxthreads
+ einfo "Building GLIBC with linuxthreads..."
+ make PARALLELMFLAGS="${MAKEOPTS}" || die "make for ${ABI} failed"
+ fi
+ if want_nptl ; then
+ # ... and then do the optional nptl build
+ unset LD_ASSUME_KERNEL
+ glibc_do_configure nptl
+ einfo "Building GLIBC with NPTL..."
+ make PARALLELMFLAGS="${MAKEOPTS}" || die "make for ${ABI} failed"
+ fi
+}
+
+toolchain-glibc_headers_compile() {
+ local GBUILDDIR=${WORKDIR}/build-${ABI}-${CTARGET}-headers
+ mkdir -p "${GBUILDDIR}"
+ cd "${GBUILDDIR}"
+
+ # if we don't have a compiler yet, we cant really test it now ...
+ # hopefully they don't affect header geneation, so let's hope for
+ # the best here ...
+ export \
+ libc_cv_386_tls=yes \
+ libc_cv_asm_cfi_directives=yes \
+ libc_cv_broken_visibility_attribute=no \
+ libc_cv_gcc___thread=yes \
+ libc_cv_mlong_double_128=yes \
+ libc_cv_mlong_double_128ibm=yes \
+ libc_cv_ppc_machine=yes \
+ libc_cv_visibility_attribute=yes \
+ libc_cv_z_combreloc=yes \
+ libc_cv_z_execstack=yes \
+ libc_cv_z_initfirst=yes \
+ libc_cv_z_nodelete=yes \
+ libc_cv_z_nodlopen=yes \
+ libc_cv_z_relro=yes
+
+ # Pick out the correct location for build headers
+ local ports="" myconf="--disable-sanity-checks --enable-hacker-mode"
+ [[ -d ${S}/ports ]] && ports=",ports"
+ myconf="${myconf}
+ --enable-add-ons=nptl${ports}
+ --without-cvs
+ --enable-bind-now
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ --with-headers=$(alt_build_headers)
+ --prefix=${EPREFIX}/usr
+ ${EXTRA_ECONF}"
+
+ # Nothing is compiled here which would affect the headers for the target.
+ # so forcing CC/CFLAGS is sane. unless you dont have `gcc`. then i
+ # dont care :p.
+ einfo "Configuring GLIBC headers with: ${myconf// /\n\t\t}"
+ CC=gcc \
+ CFLAGS="-O1 -pipe" \
+ "${S}"/configure ${myconf} || die "failed to configure glibc"
+}
+
+eblit-glibc-src_compile() {
+ if is_crosscompile ; then
+ export \
+ libc_cv_c_cleanup=yes \
+ libc_cv_forced_unwind=yes
+ fi
+
+ if just_headers ; then
+ toolchain-glibc_headers_compile
+ return
+ fi
+
+ setup_env
+
+ if [[ -z ${OABI} ]] ; then
+ local abilist=""
+ if has_multilib_profile ; then
+ abilist=$(get_install_abis)
+ einfo "Building multilib glibc for ABIs: ${abilist}"
+ elif is_crosscompile || tc-is-cross-compiler ; then
+ abilist=${DEFAULT_ABI}
+ fi
+ if [[ -n ${abilist} ]] ; then
+ OABI=${ABI}
+ for ABI in ${abilist} ; do
+ export ABI
+ src_compile
+ done
+ ABI=${OABI}
+ unset OABI
+ return 0
+ fi
+ fi
+
+ toolchain-glibc_src_compile
+}
diff --git a/sys-libs/glibc/files/eblits/src_install.eblit b/sys-libs/glibc/files/eblits/src_install.eblit
new file mode 100644
index 0000000..1f551a6
--- /dev/null
+++ b/sys-libs/glibc/files/eblits/src_install.eblit
@@ -0,0 +1,230 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_install.eblit,v 1.20 2011/12/22 01:09:58 vapier Exp $
+
+toolchain-glibc_src_install() {
+ local GBUILDDIR
+ if want_linuxthreads ; then
+ GBUILDDIR=${WORKDIR}/build-${ABI}-${CTARGET}-linuxthreads
+ else
+ GBUILDDIR=${WORKDIR}/build-${ABI}-${CTARGET}-nptl
+ fi
+
+ local install_root="${ED}$(alt_prefix)"
+ if want_linuxthreads ; then
+ cd "${WORKDIR}"/build-${ABI}-${CTARGET}-linuxthreads
+ einfo "Installing GLIBC ${ABI} with linuxthreads ..."
+ else
+ cd "${WORKDIR}"/build-${ABI}-${CTARGET}-nptl
+ einfo "Installing GLIBC ${ABI} with NPTL ..."
+ fi
+ emake install_root="${install_root}" install || die
+
+ if want_linuxthreads && want_nptl ; then
+ einfo "Installing NPTL to $(alt_libdir)/tls/..."
+ cd "${WORKDIR}"/build-${ABI}-${CTARGET}-nptl
+ dodir $(alt_libdir)/tls $(alt_usrlibdir)/nptl
+
+ local l src_lib
+ for l in libc libm librt libpthread libthread_db ; do
+ # take care of shared lib first ...
+ l=${l}.so
+ if [[ -e ${l} ]] ; then
+ src_lib=${l}
+ else
+ src_lib=$(eval echo */${l})
+ fi
+ cp -a ${src_lib} "${ED}"$(alt_libdir)/tls/${l} || die "copying nptl ${l}"
+ fperms a+rx $(alt_libdir)/tls/${l}
+ dosym ${l} $(alt_libdir)/tls/$(scanelf -qSF'%S#F' ${src_lib})
+
+ # then grab the linker script or the symlink ...
+ if [[ -L ${ED}$(alt_usrlibdir)/${l} ]] ; then
+ dosym $(alt_libdir)/tls/${l} $(alt_usrlibdir)/nptl/${l}
+ else
+ sed \
+ -e "s:/${l}:/tls/${l}:g" \
+ -e "s:/${l/%.so/_nonshared.a}:/nptl/${l/%.so/_nonshared.a}:g" \
+ "${ED}"$(alt_usrlibdir)/${l} > "${ED}"$(alt_usrlibdir)/nptl/${l}
+ fi
+
+ # then grab the static lib ...
+ src_lib=${src_lib/%.so/.a}
+ [[ ! -e ${src_lib} ]] && src_lib=${src_lib/%.a/_pic.a}
+ cp -a ${src_lib} "${ED}"$(alt_usrlibdir)/nptl/ || die "copying nptl ${src_lib}"
+ src_lib=${src_lib/%.a/_nonshared.a}
+ if [[ -e ${src_lib} ]] ; then
+ cp -a ${src_lib} "${ED}"$(alt_usrlibdir)/nptl/ || die "copying nptl ${src_lib}"
+ fi
+ done
+
+ # use the nptl linker instead of the linuxthreads one as the linuxthreads
+ # one may lack TLS support and that can be really bad for business
+ cp -a elf/ld.so "${ED}"$(alt_libdir)/$(scanelf -qSF'%S#F' elf/ld.so) || die "copying nptl interp"
+ fi
+
+ # We'll take care of the cache ourselves
+ rm -f "${ED}"/etc/ld.so.cache
+
+ # Everything past this point just needs to be done once ...
+ is_final_abi || return 0
+
+ # Make sure the non-native interp can be found on multilib systems
+ if [[ ${SYMLINK_LIB} == "yes" ]] && has_multilib_profile ; then
+ local abi32 ldso
+ case $(tc-arch) in
+ amd64) abi32="x86" ldso="ld-linux.so.2" ;;
+ ppc64) abi32="ppc" ldso="ld.so.1" ;;
+ esac
+ if [[ -n ${ldso} ]] ; then
+ [[ ! -e ${ED}/lib ]] && dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib
+ dosym ../$(get_abi_LIBDIR ${abi32})/${ldso} $(alt_prefix)/lib/${ldso}
+ fi
+ fi
+
+ #################################################################
+ # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY #
+ # Make sure we install some symlink hacks so that when we build
+ # a 2nd stage cross-compiler, gcc finds the target system
+ # headers correctly. See gcc/doc/gccinstall.info
+ if is_crosscompile ; then
+ # We need to make sure that /lib and /usr/lib always exists.
+ # gcc likes to use relative paths to get to its multilibs like
+ # /usr/lib/../lib64/. So while we don't install any files into
+ # /usr/lib/, we do need it to exist.
+ cd "${ED}"$(alt_libdir)/..
+ [[ -e lib ]] || mkdir lib
+ cd "${ED}"$(alt_usrlibdir)/..
+ [[ -e lib ]] || mkdir lib
+
+ dosym usr/include $(alt_prefix)/sys-include
+ return 0
+ fi
+
+ # Files for Debian-style locale updating
+ dodir /usr/share/i18n
+ sed \
+ -e "/^#/d" \
+ -e "/SUPPORTED-LOCALES=/d" \
+ -e "s: \\\\::g" -e "s:/: :g" \
+ "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \
+ || die "generating /usr/share/i18n/SUPPORTED failed"
+ cd "${WORKDIR}"/extra/locale
+ dosbin locale-gen || die
+ doman *.[0-8]
+ insinto /etc
+ doins locale.gen || die
+
+ # Make sure all the ABI's can find the locales and so we only
+ # have to generate one set
+ local a
+ keepdir /usr/$(get_libdir)/locale
+ for a in $(get_install_abis) ; do
+ if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then
+ dosym /usr/$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale
+ fi
+ done
+
+ if ! has noinfo ${FEATURES} && [[ -n ${INFOPAGE_VER} ]] ; then
+ einfo "Installing info pages..."
+
+ emake \
+ -C "${GBUILDDIR}" \
+ install_root="${install_root}" \
+ info -i || die
+ fi
+
+ if [[ -n ${MANPAGE_VER} ]] ; then
+ einfo "Installing man pages..."
+
+ # Install linuxthreads man pages even if nptl is enabled
+ cd "${WORKDIR}"/man
+ doman *.3thr
+ fi
+
+ cd "${S}"
+
+ # Install misc network config files
+ insinto /etc
+ doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf || die
+ doins "${WORKDIR}"/extra/etc/*.conf || die
+ doinitd "${WORKDIR}"/extra/etc/nscd || die
+
+ sed -i -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" "${ED}"/etc/init.d/nscd
+
+ echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc
+ doenvd "${T}"/00glibc || die
+
+ dodoc BUGS ChangeLog* CONFORMANCE FAQ NEWS NOTES PROJECTS README*
+
+ # Prevent overwriting of the /etc/localtime symlink. We'll handle the
+ # creation of the "factory" symlink in pkg_postinst().
+ rm -f "${ED}"/etc/localtime
+}
+
+toolchain-glibc_headers_install() {
+ local GBUILDDIR=${WORKDIR}/build-${ABI}-${CTARGET}-headers
+ cd "${GBUILDDIR}"
+ emake install_root="${ED}/usr/${CTARGET}" install-headers || die "install-headers failed"
+ # Copy over headers that are not part of install-headers ... these
+ # are pretty much taken verbatim from crosstool, see it for more details
+ insinto $(alt_headers)/bits
+ doins misc/syscall-list.h bits/stdio_lim.h || die "doins include bits"
+ insinto $(alt_headers)/gnu
+ doins "${S}"/include/gnu/stubs.h || die "doins include gnu"
+ # Make sure we install the sys-include symlink so that when
+ # we build a 2nd stage cross-compiler, gcc finds the target
+ # system headers correctly. See gcc/doc/gccinstall.info
+ dosym usr/include /usr/${CTARGET}/sys-include
+}
+
+src_strip() {
+ # gdb is lame and requires some debugging information to remain in
+ # libpthread, so we need to strip it by hand. libthread_db makes no
+ # sense stripped as it is only used when debugging.
+ local pthread=$(has splitdebug ${FEATURES} && echo "libthread_db" || echo "lib{pthread,thread_db}")
+ env \
+ -uRESTRICT \
+ CHOST=${CTARGET} \
+ STRIP_MASK="/*/{,tls/}${pthread}*" \
+ prepallstrip
+ # if user has stripping enabled and does not have split debug turned on,
+ # then leave the debugging sections in libpthread.
+ if ! has nostrip ${FEATURES} && ! has splitdebug ${FEATURES} ; then
+ ${STRIP:-${CTARGET}-strip} --strip-debug "${ED}"/*/libpthread-*.so
+ fi
+}
+
+eblit-glibc-src_install() {
+ if just_headers ; then
+ export ABI=default
+ toolchain-glibc_headers_install
+ return
+ fi
+
+ setup_env
+
+ if [[ -z ${OABI} ]] ; then
+ local abilist=""
+ if has_multilib_profile ; then
+ abilist=$(get_install_abis)
+ einfo "Installing multilib glibc for ABIs: ${abilist}"
+ elif is_crosscompile || tc-is-cross-compiler ; then
+ abilist=${DEFAULT_ABI}
+ fi
+ if [[ -n ${abilist} ]] ; then
+ OABI=${ABI}
+ for ABI in ${abilist} ; do
+ export ABI
+ eblit-glibc-src_install
+ done
+ ABI=${OABI}
+ unset OABI
+ src_strip
+ return 0
+ fi
+ fi
+
+ toolchain-glibc_src_install
+ [[ -z ${OABI} ]] && src_strip
+}
diff --git a/sys-libs/glibc/files/eblits/src_install.eblit~ b/sys-libs/glibc/files/eblits/src_install.eblit~
new file mode 100644
index 0000000..28034f4
--- /dev/null
+++ b/sys-libs/glibc/files/eblits/src_install.eblit~
@@ -0,0 +1,252 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_install.eblit,v 1.9 2009/12/19 23:44:54 vapier Exp $
+
+toolchain-glibc_src_install() {
+ local GBUILDDIR
+ if want_linuxthreads ; then
+ GBUILDDIR=${WORKDIR}/build-${ABI}-${CTARGET}-linuxthreads
+ else
+ GBUILDDIR=${WORKDIR}/build-${ABI}-${CTARGET}-nptl
+ fi
+
+ local install_root=${ED}
+ is_crosscompile && install_root="${install_root}/usr/${CTARGET}"
+ if want_linuxthreads ; then
+ cd "${WORKDIR}"/build-${ABI}-${CTARGET}-linuxthreads
+ einfo "Installing GLIBC ${ABI} with linuxthreads ..."
+ else # nptlonly
+ cd "${WORKDIR}"/build-${ABI}-${CTARGET}-nptl
+ einfo "Installing GLIBC ${ABI} with NPTL ..."
+ fi
+ make PARALLELMFLAGS="${MAKEOPTS}" \
+ install_root="${install_root}" \
+ install || die
+
+ if is_crosscompile ; then
+ # punt all the junk not needed by a cross-compiler
+ cd "${D}"/usr/${CTARGET} || die
+ rm -rf ./{,usr/}{bin,etc,sbin,share} ./{,usr/}*/{gconv,misc}
+ fi
+
+ if want_linuxthreads && want_nptl ; then
+ einfo "Installing NPTL to $(alt_libdir)/tls/..."
+ cd "${WORKDIR}"/build-${ABI}-${CTARGET}-nptl
+ dodir $(alt_libdir)/tls $(alt_usrlibdir)/nptl
+
+ local l src_lib
+ for l in libc libm librt libpthread libthread_db ; do
+ # take care of shared lib first ...
+ l=${l}.so
+ if [[ -e ${l} ]] ; then
+ src_lib=${l}
+ else
+ src_lib=$(eval echo */${l})
+ fi
+ cp -a ${src_lib} "${D}"$(alt_libdir)/tls/${l} || die "copying nptl ${l}"
+ fperms a+rx $(alt_libdir)/tls/${l}
+ dosym ${l} $(alt_libdir)/tls/$(scanelf -qSF'%S#F' ${src_lib})
+
+ # then grab the linker script or the symlink ...
+ if [[ -L ${D}$(alt_usrlibdir)/${l} ]] ; then
+ dosym $(alt_libdir)/tls/${l} $(alt_usrlibdir)/nptl/${l}
+ else
+ sed \
+ -e "s:/${l}:/tls/${l}:g" \
+ -e "s:/${l/%.so/_nonshared.a}:/nptl/${l/%.so/_nonshared.a}:g" \
+ "${D}"$(alt_usrlibdir)/${l} > "${D}"$(alt_usrlibdir)/nptl/${l}
+ fi
+
+ # then grab the static lib ...
+ src_lib=${src_lib/%.so/.a}
+ [[ ! -e ${src_lib} ]] && src_lib=${src_lib/%.a/_pic.a}
+ cp -a ${src_lib} "${D}"$(alt_usrlibdir)/nptl/ || die "copying nptl ${src_lib}"
+ src_lib=${src_lib/%.a/_nonshared.a}
+ if [[ -e ${src_lib} ]] ; then
+ cp -a ${src_lib} "${D}"$(alt_usrlibdir)/nptl/ || die "copying nptl ${src_lib}"
+ fi
+ done
+
+ # use the nptl linker instead of the linuxthreads one as the linuxthreads
+ # one may lack TLS support and that can be really bad for business
+ cp -a elf/ld.so "${D}"$(alt_libdir)/$(scanelf -qSF'%S#F' elf/ld.so) || die "copying nptl interp"
+ fi
+
+ # We'll take care of the cache ourselves
+ rm -f "${D}"/etc/ld.so.cache
+
+ # Some things want this, notably ash.
+ dosym libbsd-compat.a $(alt_usrlibdir)/libbsd.a
+
+ # Handle includes for different ABIs if glibc itself doesn't do it
+ # XXX: curr glibc should finally handle all of them correctly
+ #case $(tc-arch) in
+ # amd64|mips|ppc|s390) ;;
+ # *) prep_ml_includes $(alt_headers) ;;
+ #esac
+
+ # When cross-compiling for a non-multilib setup, make sure we have
+ # lib and a proper symlink setup
+ if is_crosscompile && ! use multilib && ! has_multilib_profile && [[ $(get_libdir) != "lib" ]] ; then
+ cd "${D}"$(alt_libdir)/..
+ mv $(get_libdir) lib || die
+ ln -s lib $(get_libdir) || die
+ cd "${D}"$(alt_usrlibdir)/..
+ mv $(get_libdir) lib || die
+ ln -s lib $(get_libdir) || die
+ fi
+
+ #################################################################
+ # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY #
+ # Make sure we install some symlink hacks so that when we build
+ # a 2nd stage cross-compiler, gcc finds the target system
+ # headers correctly. See gcc/doc/gccinstall.info
+ if is_crosscompile ; then
+ dosym usr/include ${EPREFIX}/usr/${CTARGET}/sys-include
+ return 0
+ fi
+
+ # Everything past this point just needs to be done once ...
+ is_final_abi || return 0
+
+ # Make sure the non-native interp can be found on multilib systems
+ if has_multilib_profile ; then
+ case $(tc-arch) in
+ amd64)
+ [[ ! -e ${D}/lib ]] && dosym $(get_abi_LIBDIR amd64) /lib
+ dosym ../$(get_abi_LIBDIR x86)/ld-linux.so.2 /lib/ld-linux.so.2
+ ;;
+ ppc64)
+ [[ ! -e ${D}/lib ]] && dosym $(get_abi_LIBDIR ppc64) /lib
+ dosym ../$(get_abi_LIBDIR ppc)/ld.so.1 /lib/ld.so.1
+ ;;
+ esac
+ fi
+
+ # Files for Debian-style locale updating
+ dodir /usr/share/i18n
+ sed \
+ -e "/^#/d" \
+ -e "/SUPPORTED-LOCALES=/d" \
+ -e "s: \\\\::g" -e "s:/: :g" \
+ "${S}"/localedata/SUPPORTED > "${D}"/usr/share/i18n/SUPPORTED \
+ || die "generating /usr/share/i18n/SUPPORTED failed"
+ cd "${WORKDIR}"/extra/locale
+ dosbin locale-gen || die
+ doman *.[0-8]
+ insinto /etc
+ doins locale.gen || die
+
+ # Make sure all the ABI's can find the locales and so we only
+ # have to generate one set
+ local a
+ keepdir /usr/$(get_libdir)/locale
+ for a in $(get_install_abis) ; do
+ if [[ ! -e ${D}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then
+ dosym /usr/$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale
+ fi
+ done
+
+ if ! has noinfo ${FEATURES} && [[ -n ${INFOPAGE_VER} ]] ; then
+ einfo "Installing info pages..."
+
+ make \
+ -C "${GBUILDDIR}" \
+ PARALLELMFLAGS="${MAKEOPTS}" \
+ install_root="${install_root}" \
+ info -i || die
+ fi
+
+ if [[ -n ${MANPAGE_VER} ]] ; then
+ einfo "Installing man pages..."
+
+ # Install linuxthreads man pages even if nptl is enabled
+ cd "${WORKDIR}"/man
+ doman *.3thr
+ fi
+
+ cd "${S}"
+
+ # Install misc network config files
+ insinto /etc
+ doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf || die
+ doins "${WORKDIR}"/extra/etc/*.conf || die
+ doinitd "${WORKDIR}"/extra/etc/nscd || die
+
+ sed -i -e "s:@PIDFILE@:$(strings "${D}"/usr/sbin/nscd | grep nscd.pid):" "${D}"/etc/init.d/nscd
+
+ echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc
+ doenvd "${T}"/00glibc || die
+
+ dodoc BUGS ChangeLog* CONFORMANCE FAQ NEWS NOTES PROJECTS README*
+
+ # Prevent overwriting of the /etc/localtime symlink. We'll handle the
+ # creation of the "factory" symlink in pkg_postinst().
+ rm -f "${D}"/etc/localtime
+}
+
+toolchain-glibc_headers_install() {
+ local GBUILDDIR=${WORKDIR}/build-${ABI}-${CTARGET}-headers
+ cd "${GBUILDDIR}"
+ make install_root="${ED}/usr/${CTARGET}" install-headers || die "install-headers failed"
+ # Copy over headers that are not part of install-headers ... these
+ # are pretty much taken verbatim from crosstool, see it for more details
+ insinto $(alt_headers)/bits
+ doins misc/syscall-list.h bits/stdio_lim.h || die "doins include bits"
+ insinto $(alt_headers)/gnu
+ doins "${S}"/include/gnu/stubs.h || die "doins include gnu"
+ # Make sure we install the sys-include symlink so that when
+ # we build a 2nd stage cross-compiler, gcc finds the target
+ # system headers correctly. See gcc/doc/gccinstall.info
+ dosym usr/include /usr/${CTARGET}/sys-include
+}
+
+src_strip() {
+ # gdb is lame and requires some debugging information to remain in
+ # libpthread, so we need to strip it by hand. libthread_db makes no
+ # sense stripped as it is only used when debugging.
+ local pthread=$(hasq splitdebug ${FEATURES} && echo "libthread_db" || echo "lib{pthread,thread_db}")
+ env \
+ -uRESTRICT \
+ CHOST=${CTARGET} \
+ STRIP_MASK="/*/{,tls/}${pthread}*" \
+ prepallstrip
+ # if user has stripping enabled and does not have split debug turned on,
+ # then leave the debugging sections in libpthread.
+ if ! hasq nostrip ${FEATURES} && ! hasq splitdebug ${FEATURES} ; then
+ ${STRIP:-${CTARGET}-strip} --strip-debug "${D}"/*/libpthread-*.so
+ fi
+}
+
+eblit-glibc-src_install() {
+ if just_headers ; then
+ toolchain-glibc_headers_install
+ return
+ fi
+
+ setup_env
+
+ if [[ -z ${OABI} ]] ; then
+ local abilist=""
+ if has_multilib_profile ; then
+ abilist=$(get_install_abis)
+ einfo "Installing multilib glibc for ABIs: ${abilist}"
+ elif is_crosscompile || tc-is-cross-compiler ; then
+ abilist=${DEFAULT_ABI}
+ fi
+ if [[ -n ${abilist} ]] ; then
+ OABI=${ABI}
+ for ABI in ${abilist} ; do
+ export ABI
+ eblit-glibc-src_install
+ done
+ ABI=${OABI}
+ unset OABI
+ src_strip
+ return 0
+ fi
+ fi
+
+ toolchain-glibc_src_install
+ [[ -z ${OABI} ]] && src_strip
+}
diff --git a/sys-libs/glibc/files/eblits/src_test.eblit b/sys-libs/glibc/files/eblits/src_test.eblit
new file mode 100644
index 0000000..edcdac7
--- /dev/null
+++ b/sys-libs/glibc/files/eblits/src_test.eblit
@@ -0,0 +1,42 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_test.eblit,v 1.4 2010/08/10 08:08:05 vapier Exp $
+
+toolchain-glibc_src_test() {
+ cd "${WORKDIR}"/build-${ABI}-${CTARGET}-$1 || die "cd build-${ABI}-${CTARGET}-$1"
+ unset LD_ASSUME_KERNEL
+ emake -j1 check && return 0
+ einfo "make check failed - re-running with --keep-going to get the rest of the results"
+ emake -j1 -k check
+ ewarn "make check failed for ${ABI}-${CTARGET}-$1"
+ return 1
+}
+
+eblit-glibc-src_test() {
+ local ret=0
+
+ setup_env
+
+ # give tests more time to complete
+ export TIMEOUTFACTOR=5
+
+ if [[ -z ${OABI} ]] && has_multilib_profile ; then
+ OABI=${ABI}
+ einfo "Testing multilib glibc for ABIs: $(get_install_abis)"
+ for ABI in $(get_install_abis) ; do
+ export ABI
+ einfo " Testing ${ABI} glibc"
+ src_test
+ ((ret+=$?))
+ done
+ ABI=${OABI}
+ unset OABI
+ [[ ${ret} -ne 0 ]] \
+ && die "tests failed" \
+ || return 0
+ fi
+
+ want_linuxthreads && toolchain-glibc_src_test linuxthreads ; ((ret+=$?))
+ want_nptl && toolchain-glibc_src_test nptl ; ((ret+=$?))
+ return ${ret}
+}
diff --git a/sys-libs/glibc/files/eblits/src_unpack.eblit b/sys-libs/glibc/files/eblits/src_unpack.eblit
new file mode 100644
index 0000000..eb56d54
--- /dev/null
+++ b/sys-libs/glibc/files/eblits/src_unpack.eblit
@@ -0,0 +1,185 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_unpack.eblit,v 1.16 2012/02/16 00:27:08 vapier Exp $
+
+int_to_KV() {
+ local version=$1 major minor micro
+ major=$((version / 65536))
+ minor=$(((version % 65536) / 256))
+ micro=$((version % 256))
+ echo ${major}.${minor}.${micro}
+}
+
+eend_KV() {
+ [[ $(KV_to_int $1) -ge $(KV_to_int $2) ]]
+ eend $?
+}
+
+get_kheader_version() {
+ printf '#include <linux/version.h>\nLINUX_VERSION_CODE\n' | \
+ $(tc-getCPP ${CTARGET}) -I "${EPREFIX}/$(alt_build_headers)" | \
+ tail -n 1
+}
+
+check_nptl_support() {
+ # don't care about the compiler here as we arent using it
+ just_headers && return
+
+ local run_kv build_kv want_kv
+ run_kv=$(int_to_KV $(get_KV))
+ build_kv=$(int_to_KV $(get_kheader_version))
+ want_kv=${NPTL_KERN_VER}
+
+ ebegin "Checking gcc for __thread support"
+ if ! eend $(want__thread ; echo $?) ; then
+ echo
+ eerror "Could not find a gcc that supports the __thread directive!"
+ eerror "Please update your binutils/gcc and try again."
+ die "No __thread support in gcc!"
+ fi
+
+ if ! is_crosscompile && ! tc-is-cross-compiler ; then
+ # Building fails on an non-supporting kernel
+ ebegin "Checking kernel version (${run_kv} >= ${want_kv})"
+ if ! eend_KV ${run_kv} ${want_kv} ; then
+ echo
+ eerror "You need a kernel of at least ${want_kv} for NPTL support!"
+ die "Kernel version too low!"
+ fi
+ fi
+
+ ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})"
+ if ! eend_KV ${build_kv} ${want_kv} ; then
+ echo
+ eerror "You need linux-headers of at least ${want_kv} for NPTL support!"
+ die "linux-headers version too low!"
+ fi
+}
+
+unpack_pkg() {
+ local a=${PN}
+ [[ -n ${SNAP_VER} ]] && a="${a}-${RELEASE_VER}"
+ [[ -n $1 ]] && a="${a}-$1"
+ if [[ -n ${SNAP_VER} ]] ; then
+ a="${a}-${SNAP_VER}"
+ else
+ if [[ -n $2 ]] ; then
+ a="${a}-$2"
+ else
+ a="${a}-${RELEASE_VER}"
+ fi
+ fi
+ if has ${a}.tar.xz ${A} ; then
+ unpacker ${a}.tar.xz
+ else
+ unpack ${a}.tar.bz2
+ fi
+ [[ -n $1 ]] && { mv ${a} $1 || die ; }
+}
+
+toolchain-glibc_src_unpack() {
+ # Check NPTL support _before_ we unpack things to save some time
+ want_nptl && check_nptl_support
+
+ if [[ -n ${EGIT_REPO_URIS} ]] ; then
+ local i d
+ for ((i=0; i<${#EGIT_REPO_URIS[@]}; ++i)) ; do
+ EGIT_REPO_URI=${EGIT_REPO_URIS[$i]}
+ EGIT_SOURCEDIR=${EGIT_SOURCEDIRS[$i]}
+ git-2_src_unpack
+ done
+ else
+ unpack_pkg
+ fi
+
+ cd "${S}"
+ touch locale/C-translit.h #185476 #218003
+ [[ -n ${LT_VER} ]] && unpack_pkg linuxthreads ${LT_VER}
+ [[ -n ${PORTS_VER} ]] && unpack_pkg ports ${PORTS_VER}
+ [[ -n ${LIBIDN_VER} ]] && unpack_pkg libidn
+
+ if [[ -n ${PATCH_VER} ]] ; then
+ cd "${WORKDIR}"
+ unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ # pull out all the addons
+ local d
+ for d in extra/*/configure ; do
+ d=${d%/configure}
+ [[ -d ${S}/${d} ]] && die "${d} already exists in \${S}"
+ mv "${d}" "${S}" || die "moving ${d} failed"
+ done
+ fi
+
+ # XXX: We should do the branchupdate, before extracting the manpages and
+ # infopages else it does not help much (mtimes change if there is a change
+ # to them with branchupdate)
+ if [[ -n ${BRANCH_UPDATE} ]] ; then
+ cd "${S}"
+ epatch "${DISTDIR}"/glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+
+ # Snapshot date patch
+ einfo "Patching version to display snapshot date ..."
+ sed -i -e "s:\(#define RELEASE\).*:\1 \"${BRANCH_UPDATE}\":" version.h
+ fi
+
+ if [[ -n ${MANPAGE_VER} ]] ; then
+ cd "${WORKDIR}"
+ unpack glibc-manpages-${MANPAGE_VER}.tar.bz2
+ fi
+
+ if [[ -n ${INFOPAGE_VER} ]] ; then
+ cd "${S}"
+ unpack glibc-infopages-${INFOPAGE_VER}.tar.bz2
+ fi
+
+ # tag, glibc is it
+ cd "${S}"
+ [[ -e csu/Banner ]] && die "need new banner location"
+ [[ -n ${SNAP_VER} ]] && echo "Gentoo snapshot ${SNAP_VER}" >> csu/Banner
+ [[ -n ${BRANCH_UPDATE} ]] && echo "Gentoo branch ${BRANCH_UPDATE}" >> csu/Banner
+ if [[ -n ${PATCH_VER} ]] && ! use vanilla ; then
+ cd "${S}"
+ EPATCH_MULTI_MSG="Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER} ..." \
+ EPATCH_EXCLUDE=${GLIBC_PATCH_EXCLUDE} \
+ EPATCH_SUFFIX="patch" \
+ ARCH=$(tc-arch) \
+ epatch "${WORKDIR}"/patches
+ echo "Gentoo patchset ${PATCH_VER}" >> csu/Banner
+ fi
+
+ if just_headers ; then
+ if [[ -e ports/sysdeps/mips/preconfigure ]] ; then
+ # mips peeps like to screw with us. if building headers,
+ # we don't have a real compiler, so we can't let them
+ # insert -mabi on us.
+ sed -i '/CPPFLAGS=.*-mabi/s|.*|:|' ports/sysdeps/mips/preconfigure || die
+ find ports/sysdeps/mips/ -name Makefile -exec sed -i '/^CC.*-mabi=/s:-mabi=.*:-D_MIPS_SZPTR=32:' {} +
+ fi
+ fi
+
+ epatch_user
+
+ gnuconfig_update
+}
+
+eblit-glibc-src_unpack() {
+ setup_env
+
+ toolchain-glibc_src_unpack
+
+ # Glibc is stupid sometimes, and doesn't realize that with a
+ # static C-Only gcc, -lgcc_eh doesn't exist.
+ # http://sources.redhat.com/ml/libc-alpha/2003-09/msg00100.html
+ # http://sourceware.org/ml/libc-alpha/2005-02/msg00042.html
+ echo 'int main(){}' > "${T}"/gcc_eh_test.c
+ if ! $(tc-getCC ${CTARGET}) "${T}"/gcc_eh_test.c -lgcc_eh 2>/dev/null ; then
+ sed -i -e 's:-lgcc_eh::' Makeconfig || die "sed gcc_eh"
+ fi
+
+ cd "${WORKDIR}"
+ find . -type f '(' -size 0 -o -name "*.orig" ')' -exec rm -f {} \;
+ find . -name configure -exec touch {} \;
+
+ # Fix permissions on some of the scripts
+ chmod u+x "${S}"/scripts/*.sh
+}
diff --git a/sys-libs/glibc/files/nscd b/sys-libs/glibc/files/nscd
new file mode 100755
index 0000000..b102de0
--- /dev/null
+++ b/sys-libs/glibc/files/nscd
@@ -0,0 +1,64 @@
+#!/sbin/runscript
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/nscd,v 1.7 2007/02/23 12:09:39 uberlord Exp $
+
+depend() {
+ use dns ldap net slapd
+}
+
+checkconfig() {
+ if [ ! -d /var/run/nscd ] ; then
+ mkdir -p /var/run/nscd
+ chmod 755 /var/run/nscd
+ fi
+ if [ -z "${NSCD_PERMS_OK}" ] && [ "$(stat -c %a /var/run/nscd)" != "755" ] ; then
+ echo ""
+ ewarn "nscd run dir is not world readable, you should reset the perms:"
+ ewarn "chmod 755 /var/run/nscd"
+ ewarn "chmod a+rw /var/run/nscd/socket"
+ echo ""
+ ewarn "To disable this warning, set 'NSCD_PERMS_OK' in /etc/conf.d/nscd"
+ echo ""
+ fi
+}
+
+start() {
+ checkconfig
+
+ ebegin "Starting Name Service Cache Daemon"
+ local secure=`while read curline ; do
+ table=${curline%:*}
+ entries=${curline##$table:}
+ table=${table%%[^a-z]*}
+ case $table in
+ passwd*|group*|hosts)
+ for entry in $entries ; do
+ case $entry in
+ nisplus*)
+ /usr/sbin/nscd_nischeck $table || \
+ /echo "-S $table,yes"
+ ;;
+ esac
+ done
+ ;;
+ esac
+ done < /etc/nsswitch.conf`
+ local pidfile="$(strings /usr/sbin/nscd | grep nscd.pid)"
+ mkdir -p "$(dirname ${pidfile})"
+ save_options pidfile "${pidfile}"
+ start-stop-daemon --start --quiet \
+ --exec /usr/sbin/nscd --pidfile "${pidfile}" \
+ -- $secure
+ eend $?
+}
+
+stop() {
+ local pidfile="$(get_options pidfile)"
+ [ -n "${pidfile}" ] && pidfile="--pidfile ${pidfile}"
+ ebegin "Shutting down Name Service Cache Daemon"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/nscd ${pidfile}
+ eend $?
+}
+
+# vim:ts=4
diff --git a/sys-libs/glibc/files/nsswitch.conf b/sys-libs/glibc/files/nsswitch.conf
new file mode 100644
index 0000000..eb16961
--- /dev/null
+++ b/sys-libs/glibc/files/nsswitch.conf
@@ -0,0 +1,24 @@
+# /etc/nsswitch.conf:
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/nsswitch.conf,v 1.1 2005/05/17 00:52:41 vapier Exp $
+
+passwd: compat
+shadow: compat
+group: compat
+
+# passwd: db files nis
+# shadow: db files nis
+# group: db files nis
+
+hosts: files dns
+networks: files dns
+
+services: db files
+protocols: db files
+rpc: db files
+ethers: db files
+netmasks: files
+netgroup: files
+bootparams: files
+
+automount: files
+aliases: files
diff --git a/sys-libs/glibc/glibc-2.10.1-r1.ebuild b/sys-libs/glibc/glibc-2.10.1-r1.ebuild
new file mode 100644
index 0000000..a0088c2
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.10.1-r1.ebuild
@@ -0,0 +1,236 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.10.1-r1.ebuild,v 1.20 2012/01/17 23:51:59 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 sh sparc x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+if [[ ${PV} == *_p* ]] ; then
+RELEASE_VER=${PV%_p*}
+BRANCH_UPDATE=""
+SNAP_VER=${PV#*_p}
+LIBIDN_VER=""
+else
+RELEASE_VER=${PV}
+BRANCH_UPDATE=""
+SNAP_VER=""
+LIBIDN_VER=${RELEASE_VER}
+fi
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+PATCH_VER="7" # Gentoo patchset
+PORTS_VER=${RELEASE_VER} # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} >=sys-libs/timezone-data-2007c"
+ RDEPEND="${RDEPEND} sys-libs/timezone-data"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ else
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.5/glibc-2.5-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Patching Glibc to support older SSP __guard"
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-ssp-compat.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-2.11.3.ebuild b/sys-libs/glibc/glibc-2.11.3.ebuild
new file mode 100644
index 0000000..c98a0b9
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.11.3.ebuild
@@ -0,0 +1,239 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.11.3.ebuild,v 1.12 2012/02/16 02:59:34 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 sh sparc x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+if [[ ${PV} == *_p* ]] ; then
+RELEASE_VER=${PV%_p*}
+BRANCH_UPDATE=""
+SNAP_VER=${PV#*_p}
+else
+RELEASE_VER=${PV}
+BRANCH_UPDATE=""
+SNAP_VER=""
+fi
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+LIBIDN_VER="" # it's integrated into the main tarball now
+PATCH_VER="3" # Gentoo patchset
+PORTS_VER=${RELEASE_VER%.?} # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ x86? ( >=sys-devel/gcc-4.3 )
+ amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )"
+ RDEPEND="${RDEPEND}
+ vanilla? ( !sys-libs/timezone-data )
+ !vanilla? ( sys-libs/timezone-data )"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ else
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.11/glibc-2.11-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Patching Glibc to support older SSP __guard"
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-ssp-compat.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-2.12.1-r3.ebuild b/sys-libs/glibc/glibc-2.12.1-r3.ebuild
new file mode 100644
index 0000000..0e3c51f
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.12.1-r3.ebuild
@@ -0,0 +1,253 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.12.1-r3.ebuild,v 1.9 2012/01/17 23:51:59 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+KEYWORDS="~amd64 ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+if [[ ${PV} == *_p* ]] ; then
+RELEASE_VER=${PV%_p*}
+BRANCH_UPDATE=""
+SNAP_VER=${PV#*_p}
+else
+RELEASE_VER=${PV}
+BRANCH_UPDATE=""
+SNAP_VER=""
+fi
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+LIBIDN_VER="" # it's integrated into the main tarball now
+PATCH_VER="8" # Gentoo patchset
+PORTS_VER=${RELEASE_VER} # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ x86? ( >=sys-devel/gcc-4.3 )
+ amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )"
+ RDEPEND="${RDEPEND}
+ vanilla? ( !sys-libs/timezone-data )
+ !vanilla? ( sys-libs/timezone-data )"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ else
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+pkg_setup() {
+ eblit-run pkg_setup
+
+ # Static binary sanity check #332927
+ if [[ ${ROOT} == "/" ]] && \
+ has_version "<${CATEGORY}/${P}" && \
+ built_with_use sys-apps/coreutils static
+ then
+ eerror "Please rebuild coreutils with USE=-static, then install"
+ eerror "glibc, then you may rebuild coreutils with USE=static."
+ die "Avoiding system meltdown #332927"
+ fi
+}
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Patching Glibc to support older SSP __guard"
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-ssp-compat.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-2.12.2.ebuild b/sys-libs/glibc/glibc-2.12.2.ebuild
new file mode 100644
index 0000000..23ed0de
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.12.2.ebuild
@@ -0,0 +1,253 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.12.2.ebuild,v 1.15 2012/02/16 02:59:34 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+KEYWORDS="amd64 arm hppa ia64 ~mips ppc ppc64 s390 ~sh sparc x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+if [[ ${PV} == *_p* ]] ; then
+RELEASE_VER=${PV%_p*}
+BRANCH_UPDATE=""
+SNAP_VER=${PV#*_p}
+else
+RELEASE_VER=${PV}
+BRANCH_UPDATE=""
+SNAP_VER=""
+fi
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+LIBIDN_VER="" # it's integrated into the main tarball now
+PATCH_VER="4" # Gentoo patchset
+PORTS_VER="2.12.1" # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ x86? ( >=sys-devel/gcc-4.3 )
+ amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )"
+ RDEPEND="${RDEPEND}
+ vanilla? ( !sys-libs/timezone-data )
+ !vanilla? ( sys-libs/timezone-data )"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ else
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+pkg_setup() {
+ eblit-run pkg_setup
+
+ # Static binary sanity check #332927
+ if [[ ${ROOT} == "/" ]] && \
+ has_version "<${CATEGORY}/${P}" && \
+ built_with_use sys-apps/coreutils static
+ then
+ eerror "Please rebuild coreutils with USE=-static, then install"
+ eerror "glibc, then you may rebuild coreutils with USE=static."
+ die "Avoiding system meltdown #332927"
+ fi
+}
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Patching Glibc to support older SSP __guard"
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-ssp-compat.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-2.13-r2.ebuild b/sys-libs/glibc/glibc-2.13-r2.ebuild
new file mode 100644
index 0000000..f09e6e6
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.13-r2.ebuild
@@ -0,0 +1,251 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.13-r2.ebuild,v 1.10 2012/01/17 23:51:59 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+if [[ ${PV} == *_p* ]] ; then
+RELEASE_VER=${PV%_p*}
+BRANCH_UPDATE=""
+SNAP_VER=${PV#*_p}
+else
+RELEASE_VER=${PV}
+BRANCH_UPDATE=""
+SNAP_VER=""
+fi
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+LIBIDN_VER="" # it's integrated into the main tarball now
+PATCH_VER="6" # Gentoo patchset
+PORTS_VER="2.13" # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ x86? ( >=sys-devel/gcc-4.3 )
+ amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ !<sys-devel/patch-2.6
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )"
+ RDEPEND="${RDEPEND}
+ vanilla? ( !sys-libs/timezone-data )
+ !vanilla? ( sys-libs/timezone-data )"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ else
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+pkg_setup() {
+ eblit-run pkg_setup
+
+ # Static binary sanity check #332927
+ if [[ ${ROOT} == "/" ]] && \
+ has_version "<${CATEGORY}/${P}" && \
+ built_with_use sys-apps/coreutils static
+ then
+ eerror "Please rebuild coreutils with USE=-static, then install"
+ eerror "glibc, then you may rebuild coreutils with USE=static."
+ die "Avoiding system meltdown #332927"
+ fi
+}
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-2.13-r4.ebuild b/sys-libs/glibc/glibc-2.13-r4.ebuild
new file mode 100644
index 0000000..bf3d4f6
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.13-r4.ebuild
@@ -0,0 +1,251 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.13-r4.ebuild,v 1.13 2012/02/16 02:59:34 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+if [[ ${PV} == *_p* ]] ; then
+RELEASE_VER=${PV%_p*}
+BRANCH_UPDATE=""
+SNAP_VER=${PV#*_p}
+else
+RELEASE_VER=${PV}
+BRANCH_UPDATE=""
+SNAP_VER=""
+fi
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+LIBIDN_VER="" # it's integrated into the main tarball now
+PATCH_VER="10" # Gentoo patchset
+PORTS_VER="2.13" # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ x86? ( >=sys-devel/gcc-4.3 )
+ amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ !<sys-devel/patch-2.6
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )"
+ RDEPEND="${RDEPEND}
+ vanilla? ( !sys-libs/timezone-data )
+ !vanilla? ( sys-libs/timezone-data )"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ else
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+pkg_setup() {
+ eblit-run pkg_setup
+
+ # Static binary sanity check #332927
+ if [[ ${ROOT} == "/" ]] && \
+ has_version "<${CATEGORY}/${P}" && \
+ built_with_use sys-apps/coreutils static
+ then
+ eerror "Please rebuild coreutils with USE=-static, then install"
+ eerror "glibc, then you may rebuild coreutils with USE=static."
+ die "Avoiding system meltdown #332927"
+ fi
+}
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-2.14.1-r1.ebuild b/sys-libs/glibc/glibc-2.14.1-r1.ebuild
new file mode 100644
index 0000000..6cfbdd9
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.14.1-r1.ebuild
@@ -0,0 +1,264 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.14.1-r1.ebuild,v 1.4 2012/03/23 17:39:06 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+RELEASE_VER=""
+BRANCH_UPDATE=""
+SNAP_VER=""
+case ${PV} in
+9999*)
+ EGIT_REPO_URIS=( "git://sourceware.org/git/glibc.git" "git://sourceware.org/git/glibc-ports.git" )
+ EGIT_SOURCEDIRS=( "${S}" "${S}/ports" )
+ inherit git-2
+ ;;
+*_p*)
+ RELEASE_VER=${PV%_p*}
+ SNAP_VER=${PV#*_p}
+ ;;
+*)
+ RELEASE_VER=${PV}
+ ;;
+esac
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+LIBIDN_VER="" # it's integrated into the main tarball now
+PATCH_VER="2" # Gentoo patchset
+PORTS_VER=${RELEASE_VER} # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+[[ -n ${RELEASE_VER} ]] && S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ x86? ( >=sys-devel/gcc-4.3 )
+ amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ !<sys-devel/patch-2.6
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )"
+ RDEPEND="${RDEPEND}
+ vanilla? ( !sys-libs/timezone-data )
+ !vanilla? ( sys-libs/timezone-data )"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ elif [[ -z ${EGIT_REPO_URIS} ]] ; then
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+pkg_setup() {
+ eblit-run pkg_setup
+
+ # Static binary sanity check #332927
+ if [[ ${ROOT} == "/" ]] && \
+ has_version "<${CATEGORY}/${P}" && \
+ built_with_use sys-apps/coreutils static
+ then
+ eerror "Please rebuild coreutils with USE=-static, then install"
+ eerror "glibc, then you may rebuild coreutils with USE=static."
+ die "Avoiding system meltdown #332927"
+ fi
+}
+
+eblit-src_unpack-pre() {
+ [[ ${CHOST} == x86_64* ]] && has x32 $(get_all_abis) \
+ || GLIBC_PATCH_EXCLUDE+=" 1200_all_glibc-${PV}-x32.patch"
+}
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-2.14.1-r2.ebuild b/sys-libs/glibc/glibc-2.14.1-r2.ebuild
new file mode 100644
index 0000000..11d7a86
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.14.1-r2.ebuild
@@ -0,0 +1,264 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.14.1-r2.ebuild,v 1.6 2012/03/24 07:14:51 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+RELEASE_VER=""
+BRANCH_UPDATE=""
+SNAP_VER=""
+case ${PV} in
+9999*)
+ EGIT_REPO_URIS=( "git://sourceware.org/git/glibc.git" "git://sourceware.org/git/glibc-ports.git" )
+ EGIT_SOURCEDIRS=( "${S}" "${S}/ports" )
+ inherit git-2
+ ;;
+*_p*)
+ RELEASE_VER=${PV%_p*}
+ SNAP_VER=${PV#*_p}
+ ;;
+*)
+ RELEASE_VER=${PV}
+ ;;
+esac
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+LIBIDN_VER="" # it's integrated into the main tarball now
+PATCH_VER="5" # Gentoo patchset
+PORTS_VER=${RELEASE_VER} # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+[[ -n ${RELEASE_VER} ]] && S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ x86? ( >=sys-devel/gcc-4.3 )
+ amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ !<sys-devel/patch-2.6
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )"
+ RDEPEND="${RDEPEND}
+ vanilla? ( !sys-libs/timezone-data )
+ !vanilla? ( sys-libs/timezone-data )"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ elif [[ -z ${EGIT_REPO_URIS} ]] ; then
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+pkg_setup() {
+ eblit-run pkg_setup
+
+ # Static binary sanity check #332927
+ if [[ ${ROOT} == "/" ]] && \
+ has_version "<${CATEGORY}/${P}" && \
+ built_with_use sys-apps/coreutils static
+ then
+ eerror "Please rebuild coreutils with USE=-static, then install"
+ eerror "glibc, then you may rebuild coreutils with USE=static."
+ die "Avoiding system meltdown #332927"
+ fi
+}
+
+eblit-src_unpack-pre() {
+ [[ ${CHOST} == x86_64* ]] && has x32 $(get_all_abis) \
+ || GLIBC_PATCH_EXCLUDE+=" 1200_all_glibc-${PV}-x32.patch"
+}
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-2.14.1.ebuild b/sys-libs/glibc/glibc-2.14.1.ebuild
new file mode 100644
index 0000000..0228ea7
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.14.1.ebuild
@@ -0,0 +1,259 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.14.1.ebuild,v 1.5 2012/01/17 23:51:59 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+RELEASE_VER=""
+BRANCH_UPDATE=""
+SNAP_VER=""
+case ${PV} in
+9999*)
+ EGIT_REPO_URIS=( "git://sourceware.org/git/glibc.git" "git://sourceware.org/git/glibc-ports.git" )
+ EGIT_SOURCEDIRS=( "${S}" "${S}/ports" )
+ inherit git-2
+ ;;
+*_p*)
+ RELEASE_VER=${PV%_p*}
+ SNAP_VER=${PV#*_p}
+ ;;
+*)
+ RELEASE_VER=${PV}
+ ;;
+esac
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+LIBIDN_VER="" # it's integrated into the main tarball now
+PATCH_VER="1" # Gentoo patchset
+PORTS_VER=${RELEASE_VER} # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+[[ -n ${RELEASE_VER} ]] && S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ x86? ( >=sys-devel/gcc-4.3 )
+ amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ !<sys-devel/patch-2.6
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )"
+ RDEPEND="${RDEPEND}
+ vanilla? ( !sys-libs/timezone-data )
+ !vanilla? ( sys-libs/timezone-data )"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ elif [[ -z ${EGIT_REPO_URIS} ]] ; then
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+pkg_setup() {
+ eblit-run pkg_setup
+
+ # Static binary sanity check #332927
+ if [[ ${ROOT} == "/" ]] && \
+ has_version "<${CATEGORY}/${P}" && \
+ built_with_use sys-apps/coreutils static
+ then
+ eerror "Please rebuild coreutils with USE=-static, then install"
+ eerror "glibc, then you may rebuild coreutils with USE=static."
+ die "Avoiding system meltdown #332927"
+ fi
+}
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-2.14.ebuild b/sys-libs/glibc/glibc-2.14.ebuild
new file mode 100644
index 0000000..133f5db
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.14.ebuild
@@ -0,0 +1,259 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.14.ebuild,v 1.14 2012/01/17 23:51:59 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-linux"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+RELEASE_VER=""
+BRANCH_UPDATE=""
+SNAP_VER=""
+case ${PV} in
+9999*)
+ EGIT_REPO_URIS=( "git://sourceware.org/git/glibc.git" "git://sourceware.org/git/glibc-ports.git" )
+ EGIT_SOURCEDIRS=( "${S}" "${S}/ports" )
+ inherit git-2
+ ;;
+*_p*)
+ RELEASE_VER=${PV%_p*}
+ SNAP_VER=${PV#*_p}
+ ;;
+*)
+ RELEASE_VER=${PV}
+ ;;
+esac
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+LIBIDN_VER="" # it's integrated into the main tarball now
+PATCH_VER="7" # Gentoo patchset
+PORTS_VER=${RELEASE_VER} # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+[[ -n ${RELEASE_VER} ]] && S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ x86? ( >=sys-devel/gcc-4.3 )
+ amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ !<sys-devel/patch-2.6
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )"
+ RDEPEND="${RDEPEND}
+ vanilla? ( !sys-libs/timezone-data )
+ !vanilla? ( sys-libs/timezone-data )"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ elif [[ -z ${EGIT_REPO_URIS} ]] ; then
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+pkg_setup() {
+ eblit-run pkg_setup
+
+ # Static binary sanity check #332927
+ if [[ ${ROOT} == "/" ]] && \
+ has_version "<${CATEGORY}/${P}" && \
+ built_with_use sys-apps/coreutils static
+ then
+ eerror "Please rebuild coreutils with USE=-static, then install"
+ eerror "glibc, then you may rebuild coreutils with USE=static."
+ die "Avoiding system meltdown #332927"
+ fi
+}
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-2.15.ebuild b/sys-libs/glibc/glibc-2.15.ebuild
new file mode 100644
index 0000000..352755f
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.15.ebuild
@@ -0,0 +1,250 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.15.ebuild,v 1.10 2012/03/26 22:23:52 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib unpacker
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+#KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+RELEASE_VER=""
+BRANCH_UPDATE=""
+SNAP_VER=""
+case ${PV} in
+9999*)
+ EGIT_REPO_URIS=( "git://sourceware.org/git/glibc.git" "git://sourceware.org/git/glibc-ports.git" )
+ EGIT_SOURCEDIRS=( "${S}" "${S}/ports" )
+ inherit git-2
+ ;;
+*_p*)
+ RELEASE_VER=${PV%_p*}
+ SNAP_VER=${PV#*_p}
+ ;;
+*)
+ RELEASE_VER=${PV}
+ ;;
+esac
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+LIBIDN_VER="" # it's integrated into the main tarball now
+PATCH_VER="7" # Gentoo patchset
+PORTS_VER=${RELEASE_VER} # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+[[ -n ${RELEASE_VER} ]] && S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ x86? ( >=sys-devel/gcc-4.3 )
+ amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ !<sys-devel/patch-2.6
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )"
+ RDEPEND="${RDEPEND}
+ vanilla? ( !sys-libs/timezone-data )
+ !vanilla? ( sys-libs/timezone-data )"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ elif [[ -z ${EGIT_REPO_URIS} ]] ; then
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.xz
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.xz
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+eblit-src_unpack-pre() {
+ [[ ${CHOST} == x86_64* ]] && has x32 $(get_all_abis) \
+ || GLIBC_PATCH_EXCLUDE+=" 1200_all_glibc-${PV}-x32.patch"
+}
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-2.9_p20081201-r3.ebuild b/sys-libs/glibc/glibc-2.9_p20081201-r3.ebuild
new file mode 100644
index 0000000..bb83650
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.9_p20081201-r3.ebuild
@@ -0,0 +1,226 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.9_p20081201-r3.ebuild,v 1.13 2012/01/17 23:51:59 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+KEYWORDS="alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+if [[ ${PV} == *_p* ]] ; then
+RELEASE_VER=${PV%_p*}
+BRANCH_UPDATE=""
+SNAP_VER=${PV#*_p}
+else
+RELEASE_VER=${PV}
+BRANCH_UPDATE=""
+SNAP_VER=""
+fi
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+PATCH_VER="8" # Gentoo patchset
+PORTS_VER=${RELEASE_VER} # version of glibc ports addon
+LIBIDN_VER="" # version of libidn addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} >=sys-libs/timezone-data-2007c"
+ RDEPEND="${RDEPEND} sys-libs/timezone-data"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ else
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.5/glibc-2.5-hardened-pie.patch
+ epatch "${FILESDIR}"/2.5/glibc-2.5-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.7/glibc-2.7-hardened-inittls-nosysenter.patch
+
+ einfo "Installing Hardened Gentoo SSP handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
new file mode 100644
index 0000000..f5019e4
--- /dev/null
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -0,0 +1,244 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-9999.ebuild,v 1.5 2012/01/17 23:51:59 vapier Exp $
+
+inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2"
+#KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+RELEASE_VER=""
+BRANCH_UPDATE=""
+SNAP_VER=""
+case ${PV} in
+9999*)
+ EGIT_REPO_URIS=( "git://sourceware.org/git/glibc.git" "git://sourceware.org/git/glibc-ports.git" )
+ EGIT_SOURCEDIRS=( "${S}" "${S}/ports" )
+ inherit git-2
+ ;;
+*_p*)
+ RELEASE_VER=${PV%_p*}
+ SNAP_VER=${PV#*_p}
+ ;;
+*)
+ RELEASE_VER=${PV}
+ ;;
+esac
+MANPAGE_VER="" # pregenerated manpages
+INFOPAGE_VER="" # pregenerated infopages
+LIBIDN_VER="" # it's integrated into the main tarball now
+PATCH_VER="" # Gentoo patchset
+PORTS_VER="" # version of glibc ports addon
+LT_VER="" # version of linuxthreads addon
+NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires
+#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires
+
+IUSE="debug gd glibc-omitfp hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}"
+[[ -n ${RELEASE_VER} ]] && S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}}
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+alt_libdir() {
+ if is_crosscompile ; then
+ echo /usr/${CTARGET}/$(get_libdir)
+ else
+ echo /$(get_libdir)
+ fi
+}
+
+if is_crosscompile ; then
+ SLOT="${CTARGET}-2.2"
+else
+ # Why SLOT 2.2 you ask yourself while sippin your tea ?
+ # Everyone knows 2.2 > 0, duh.
+ SLOT="2.2"
+fi
+
+# General: We need a new-enough binutils for as-needed
+# arch: we need to make sure our binutils/gcc supports TLS
+DEPEND=">=sys-devel/gcc-3.4.4
+ arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 )
+ x86? ( >=sys-devel/gcc-4.3 )
+ amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 )
+ ppc? ( >=sys-devel/gcc-4.1.0 )
+ ppc64? ( >=sys-devel/gcc-4.1.0 )
+ >=sys-devel/binutils-2.15.94
+ ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)}
+ >=app-misc/pax-utils-0.1.10
+ virtual/os-headers
+ !<sys-apps/sandbox-1.2.18.1-r2
+ !<sys-apps/portage-2.1.2
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="!sys-kernel/ps3-sources
+ selinux? ( sys-libs/libselinux )"
+
+if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers"
+else
+ DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )"
+ RDEPEND="${RDEPEND}
+ vanilla? ( !sys-libs/timezone-data )
+ !vanilla? ( sys-libs/timezone-data )"
+fi
+
+SRC_URI=$(
+ upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+ }
+ gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
+ devspace=${devspace//HTTP/http://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+ }
+
+ TARNAME=${PN}
+ if [[ -n ${SNAP_VER} ]] ; then
+ TARNAME="${PN}-${RELEASE_VER}"
+ [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER}
+ upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2
+ elif [[ -z ${EGIT_REPO_URIS} ]] ; then
+ upstream_uris ${TARNAME}-${RELEASE_VER}.tar.bz2
+ fi
+ [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2
+ [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.bz2
+ [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2
+ [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2
+ [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2
+ [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2
+ [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2
+)
+
+# eblit-include [--skip] <function> [version]
+eblit-include() {
+ local skipable=false
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ local e v func=$1 ver=$2
+ [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ source "${e}"
+ return 0
+ fi
+ done
+ ${skipable} && return 0
+ die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe <function>
+# run the specified function if it is defined
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run <function> [version]
+# aka: src_unpack() { eblit-run src_unpack ; }
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+src_unpack() { eblit-run src_unpack ; }
+src_compile() { eblit-run src_compile ; }
+src_test() { eblit-run src_test ; }
+src_install() { eblit-run src_install ; }
+
+# FILESDIR might not be available during binpkg install
+for x in setup {pre,post}inst ; do
+ e="${FILESDIR}/eblits/pkg_${x}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ eval "pkg_${x}() { eblit-run pkg_${x} ; }"
+ fi
+done
+
+eblit-src_unpack-post() {
+ if use hardened ; then
+ cd "${S}"
+ einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
+ gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch
+ epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch
+
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \
+ debug/stack_chk_fail.c || die
+ cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \
+ debug/chk_fail.c || die
+
+ if use debug ; then
+ # When using Hardened Gentoo stack handler, have smashes dump core for
+ # analysis - debug only, as core could be an information leak
+ # (paranoia).
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug stack handler"
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile \
+ || die "Failed to modify debug/Makefile for debug fortify handler"
+ fi
+
+ # Build nscd with ssp-all
+ sed -i \
+ -e 's:-fstack-protector$:-fstack-protector-all:' \
+ nscd/Makefile \
+ || die "Failed to ensure nscd builds with ssp-all"
+ fi
+}
+
+maint_pkg_create() {
+ local base="/usr/local/src/gnu/glibc/glibc-${PV:0:1}_${PV:2:1}"
+ cd ${base}
+ local stamp=$(date +%Y%m%d)
+ local d
+ for d in libc ports ; do
+ #(cd ${d} && cvs up)
+ case ${d} in
+ libc) tarball="${P}";;
+ ports) tarball="${PN}-ports-${PV}";;
+ esac
+ rm -f ${tarball}*
+ ln -sf ${d} ${tarball}
+ tar hcf - ${tarball} --exclude-vcs | lzma > "${T}"/${tarball}.tar.lzma
+ du -b "${T}"/${tarball}.tar.lzma
+ done
+}
diff --git a/sys-libs/glibc/metadata.xml b/sys-libs/glibc/metadata.xml
new file mode 100644
index 0000000..b7817a7
--- /dev/null
+++ b/sys-libs/glibc/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>toolchain</herd>
+<use>
+ <flag name='glibc-omitfp'>Configure with --enable-omitfp which lets the build system determine when it is safe to use -fomit-frame-pointer</flag>
+ <flag name='linuxthreads'>Build linuxthreads support (only for kernels older than linux-2.6)</flag>
+</use>
+</pkgmetadata>
diff --git a/sys-libs/talloc/ChangeLog b/sys-libs/talloc/ChangeLog
new file mode 100644
index 0000000..9d11607
--- /dev/null
+++ b/sys-libs/talloc/ChangeLog
@@ -0,0 +1,91 @@
+# ChangeLog for sys-libs/talloc
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/talloc/ChangeLog,v 1.20 2011/01/13 18:45:06 scarabeus Exp $
+
+*talloc-2.0.5 (13 Jan 2011)
+
+ 13 Jan 2011; Tomáš Chvátal <scarabeus@gentoo.org> +talloc-2.0.5.ebuild:
+ Add new talloc version. NOTE: doc xsl file is fetched from net rather than
+ using the system one, this needs to be fixed.
+
+ 27 Sep 2010; Mart Raudsepp <leio@gentoo.org> talloc-2.0.1-r1.ebuild:
+ Marked ~mips for bug #285952
+
+ 12 Aug 2010; Joseph Jezak <josejx@gentoo.org> talloc-2.0.1-r1.ebuild:
+ Marked ppc/ppc64 stable for bug #300158.
+
+ 17 Jun 2010; Kacper Kowalik <xarthisius@gentoo.org>
+ talloc-2.0.1-r1.ebuild, +files/talloc-2.0.1-respect-ldflags.patch:
+ Respect LDFLAGS. Fixes bug 323497. Thanks Andreis Vinogradovs
+ <spamslepnoga@inbox.ru> for report.
+
+ 05 Jun 2010; Raúl Porcel <armin76@gentoo.org> talloc-2.0.1-r1.ebuild:
+ alpha/arm/ia64/s390/sh/sparc stable wrt #300158
+
+ 19 May 2010; Jeroen Roovers <jer@gentoo.org> talloc-2.0.1-r1.ebuild:
+ Stable for HPPA (bug #300158).
+
+ 18 May 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org>
+ talloc-2.0.1-r1.ebuild:
+ x86 stable wrt bug #300158
+
+ 03 May 2010; Olivier Crête <tester@gentoo.org> ChangeLog:
+ amd64 stable, bug #300158
+
+*talloc-2.0.1-r1 (03 Apr 2010)
+
+ 03 Apr 2010; Tiziano Müller <dev-zero@gentoo.org>
+ +talloc-2.0.1-r1.ebuild, metadata.xml:
+ Fixed: unnecessary inherit, swig dependency, documentation install,
+ static-libs building.
+
+*talloc-2.0.1 (26 Jan 2010)
+
+ 26 Jan 2010; Patrick Lauer <patrick@gentoo.org> +talloc-2.0.1.ebuild:
+ Bump
+
+ 06 Dec 2009; Diego E. Pettenò <flameeyes@gentoo.org>
+ talloc-2.0.0-r1.ebuild:
+ Block older samba (to force uninstall).
+
+ 30 Nov 2009; Raúl Porcel <armin76@gentoo.org> talloc-2.0.0-r1.ebuild:
+ Add ~arm/~ia64/~s390/~sh/~sparc wrt #285952
+
+ 29 Nov 2009; Tobias Klausmann <klausman@gentoo.org>
+ talloc-2.0.0-r1.ebuild:
+ Keyworded on alpha, bug #285952
+
+ 08 Nov 2009; Joseph Jezak <josejx@gentoo.org> talloc-2.0.0-r1.ebuild:
+ Marked ~ppc for bug #285952.
+
+ 04 Nov 2009; Patrick Lauer <patrick@gentoo.org> talloc-1.3.0.ebuild,
+ talloc-1.3.1.ebuild, talloc-2.0.0.ebuild, talloc-2.0.0-r1.ebuild:
+ Small dep fix
+
+ 23 Oct 2009; Patrick Lauer <patrick@gentoo.org> talloc-1.3.0.ebuild,
+ talloc-1.3.1.ebuild:
+ Fixing 1.3 ebuilds too
+
+*talloc-2.0.0-r1 (23 Oct 2009)
+
+ 23 Oct 2009; Patrick Lauer <patrick@gentoo.org> +talloc-2.0.0-r1.ebuild,
+ +files/talloc-2.0.0-without-doc.patch:
+ Ebuild cleanups thanks to pva, bug #288536, making docs optional #290193,
+ thanks to Andrew Church for the patch
+
+ 11 Oct 2009; Petteri Räty <betelgeuse@gentoo.org> talloc-2.0.0.ebuild:
+ Block <net-fs/samba-libs-3.4 for bug #288545.
+
+ 09 Oct 2009; Patrick Lauer <patrick@gentoo.org> talloc-1.3.0.ebuild,
+ talloc-1.3.1.ebuild, talloc-2.0.0.ebuild:
+ Improve description
+
+*talloc-2.0.0 (09 Oct 2009)
+*talloc-1.3.1 (09 Oct 2009)
+*talloc-1.3.0 (09 Oct 2009)
+
+ 09 Oct 2009; Patrick Lauer <patrick@gentoo.org> +talloc-1.3.0.ebuild,
+ +talloc-1.3.1.ebuild, +talloc-2.0.0.ebuild, +metadata.xml:
+ Initial commit. Ebuilds based on those provided by Marcel Greter in
+ #231273
+
diff --git a/sys-libs/talloc/Manifest b/sys-libs/talloc/Manifest
new file mode 100644
index 0000000..c394de9
--- /dev/null
+++ b/sys-libs/talloc/Manifest
@@ -0,0 +1,4 @@
+DIST talloc-2.0.5.tar.gz 365388 RMD160 6a4aafb3829d3de2d25c70025329476790d3d857 SHA1 8ec391304954f1a201b0f2239f4505d93da36cf7 SHA256 b949eb0c4f3467ef26bb8f6af64da3b20df5e34b4243fe2a5a0c28435ba6b32a
+EBUILD talloc-2.0.5.ebuild 714 SHA1 336d58fbf0d57e38763ef1720e02dbaa40f3e234 SHA256 ed1542d192f939ea50632d9e24d6c7dc0d02d5bb40f49e78571308f5dfe8101f
+MISC ChangeLog 3209 SHA1 129f7e0ebe59aa4b3af6d173ecfe673ef525d736 SHA256 33788c8093cc4a47d6a12e4384f091ba7be176c67b5cdd9bfc862bf40a94cd3e
+MISC metadata.xml 412 SHA1 9535124e040cf03a385425627b3622c06d97bf06 SHA256 732d4c39c6e7ddd2d4768724ae637ebadb6abff069fd3cf16d41778cf9f9c9dc
diff --git a/sys-libs/talloc/metadata.xml b/sys-libs/talloc/metadata.xml
new file mode 100644
index 0000000..520f32b
--- /dev/null
+++ b/sys-libs/talloc/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>samba</herd>
+ <maintainer>
+ <email>patrick@gentoo.org</email>
+ <name>Patrick Lauer</name>
+ </maintainer>
+<use>
+ <flag name="compat">Enable extra compatibility stuff</flag>
+ <flag name="swig">Install interface definitions for <pkg>dev-lang/swig</pkg></flag>
+</use>
+</pkgmetadata>
diff --git a/sys-libs/talloc/talloc-2.0.5.ebuild b/sys-libs/talloc/talloc-2.0.5.ebuild
new file mode 100644
index 0000000..34c6124
--- /dev/null
+++ b/sys-libs/talloc/talloc-2.0.5.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/talloc/talloc-2.0.5.ebuild,v 1.1 2011/01/13 18:45:06 scarabeus Exp $
+
+EAPI=3
+
+inherit waf-utils
+
+DESCRIPTION="Samba talloc library"
+HOMEPAGE="http://talloc.samba.org/"
+SRC_URI="http://samba.org/ftp/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64-linux"
+IUSE="compat python"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ dev-libs/libxslt"
+
+WAF_BINARY="${S}/buildtools/bin/waf"
+
+src_configure() {
+ local extra_opts=""
+
+ use compat && extra_opts+=" --enable-talloc-compat1"
+ use python || extra_opts+=" --disable-python"
+ waf-utils_src_configure \
+ ${extra_opts}
+}
diff --git a/sys-libs/uclibc/Manifest b/sys-libs/uclibc/Manifest
new file mode 100644
index 0000000..b26f739
--- /dev/null
+++ b/sys-libs/uclibc/Manifest
@@ -0,0 +1,3 @@
+AUX uclibc-0.9.33_microblaze-any-endian.patch 995 RMD160 c705e4f0d34cfea0a174a917c9332318a7f48938 SHA1 9ea78b2d64aa7d0add78e950ea871deb74af93ed SHA256 36e725f050462ae79547360965425af5058ed1eb4a717cae18960df85759395b
+DIST uClibc-0.9.33.tar.bz2 2827333 RMD160 ad42ad147f156ea0ebcdd6afb2e1830b5fd2b347 SHA1 89d5138d6eb785852bb3838f30edb424a711b45d SHA256 4aa4967132329a72e2cc9ea99718a06fe35453af2f53a941771237fe4822f7ad
+EBUILD uclibc-0.9.33.ebuild 11592 RMD160 59db17067d853df2f5bd3476f35bf831ca81d46d SHA1 b40cb5aa8a665be89cead522b5ed325db014f04d SHA256 81c42f31df5168103595ee683d2d139e10fbf1a2f8974f35e43ee207fa7c7dcf
diff --git a/sys-libs/uclibc/files/uclibc-0.9.33_microblaze-any-endian.patch b/sys-libs/uclibc/files/uclibc-0.9.33_microblaze-any-endian.patch
new file mode 100644
index 0000000..b90ec9a
--- /dev/null
+++ b/sys-libs/uclibc/files/uclibc-0.9.33_microblaze-any-endian.patch
@@ -0,0 +1,30 @@
+diff --git a/extra/Configs/Config.microblaze b/extra/Configs/Config.microblaze
+index 2dfd4a7..a97ddc3 100644
+--- a/extra/Configs/Config.microblaze
++++ b/extra/Configs/Config.microblaze
+@@ -6,3 +6,8 @@
+ config TARGET_ARCH
+ string
+ default "microblaze"
++
++config FORCE_OPTIONS_FOR_ARCH
++ bool
++ default y
++ select ARCH_ANY_ENDIAN
+diff --git a/libc/sysdeps/linux/microblaze/bits/endian.h b/libc/sysdeps/linux/microblaze/bits/endian.h
+index 56fcd5d..6945ba5 100644
+--- a/libc/sysdeps/linux/microblaze/bits/endian.h
++++ b/libc/sysdeps/linux/microblaze/bits/endian.h
+@@ -17,10 +17,9 @@
+ # error "Never use <bits/endian.h> directly; include <endian.h> instead."
+ #endif
+
+-/* Note: Toolchain supplies _BIG_ENDIAN or _LITTLE_ENDIAN */
+-#if defined(_BIG_ENDIAN)
++#if defined(__ARCH_BIG_ENDIAN__)
+ # define __BYTE_ORDER __BIG_ENDIAN
+-#elif defined(_LITTLE_ENDIAN)
++#elif defined(__ARCH_LITTLE_ENDIAN__)
+ # define __BYTE_ORDER __LITTLE_ENDIAN
+ #else
+ # error "Endianness is unknown"
diff --git a/sys-libs/uclibc/uclibc-0.9.33.ebuild b/sys-libs/uclibc/uclibc-0.9.33.ebuild
new file mode 100644
index 0000000..77e3ed0
--- /dev/null
+++ b/sys-libs/uclibc/uclibc-0.9.33.ebuild
@@ -0,0 +1,374 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/uclibc/uclibc-0.9.30.1.ebuild,v 1.9 2011/04/20 18:10:38 ulm Exp $
+
+#ESVN_REPO_URI="svn://uclibc.org/trunk/uClibc"
+#inherit subversion
+inherit eutils flag-o-matic toolchain-funcs savedconfig
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+# Handle the case where we want uclibc on glibc ...
+if [[ ${CTARGET} == ${CHOST} ]] && [[ ${CHOST} != *-uclibc* ]] ; then
+ export UCLIBC_AND_GLIBC="sitting in a tree"
+ export CTARGET=${CHOST%%-*}-pc-linux-uclibc
+fi
+
+SVN_VER=""
+#PATCH_VER="1.0"
+DESCRIPTION="C library for developing embedded Linux systems"
+HOMEPAGE="http://www.uclibc.org/"
+SRC_URI="http://uclibc.org/downloads/uClibc-${PV}.tar.bz2"
+
+[[ -z ${SVN_VER} ]] || \
+ SRC_URI="${SRC_URI} mirror://gentoo/uClibc-${PV}-svn-update-${SVN_VER}.patch.bz2"
+[[ -z ${PATCH_VER} ]] || \
+ SRC_URI="${SRC_URI} mirror://gentoo/uClibc-${PV}-patches-${PATCH_VER}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~arm ~m68k ~mips ~ppc ~sh ~sparc ~x86"
+IUSE="build uclibc-compat debug hardened ssp ipv6 minimal wordexp crosscompile_opts_headers-only"
+RESTRICT="strip"
+
+RDEPEND=""
+if [[ -n $CTARGET && ${CTARGET} != ${CHOST} ]]; then
+ DEPEND=""
+ SLOT="${CTARGET}"
+else
+ DEPEND="virtual/os-headers app-misc/pax-utils"
+ SLOT="0"
+fi
+
+S=${WORKDIR}/uClibc-${PV}
+
+alt_build_kprefix() {
+ if [[ ${CBUILD} == ${CHOST} && ${CTARGET} == ${CHOST} ]] \
+ || [[ -n ${UCLIBC_AND_GLIBC} ]]
+ then
+ echo ${EPREFIX}/usr/include
+ else
+ echo ${EPREFIX}/usr/${CTARGET}/usr/include
+ fi
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && [[ ${CHOST} != ${CTARGET} ]]
+}
+
+uclibc_endian() {
+ # XXX: this wont work for a toolchain which is bi-endian, but we
+ # dont have any such thing at the moment, so not a big deal
+ touch "${T}"/endian.s
+ $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
+ case $(file "${T}"/endian.o) in
+ *" MSB "*) echo "big";;
+ *" LSB "*) echo "little";;
+ *) echo "NFC";;
+ esac
+ rm -f "${T}"/endian.{s,o}
+}
+
+pkg_setup() {
+ just_headers && return 0
+ has_version ${CATEGORY}/uclibc || return 0
+ [[ -n ${UCLIBC_AND_GLIBC} ]] && return 0
+ [[ ${ROOT} != "/" ]] && return 0
+ [[ ${CATEGORY} == cross-* ]] && return 0
+
+}
+
+PIE_STABLE="arm mips ppc x86"
+
+CPU_ALPHA=""
+CPU_AMD64=""
+CPU_ARM="GENERIC_ARM ARM{610,710,7TDMI,720T,920T,922T,926T,10T,1136JF_S,1176JZ{_,F_}S,_{SA110,SA1100,XSCALE,IWMMXT}}"
+CPU_IA64=""
+CPU_M68K=""
+CPU_MIPS="MIPS_ISA_{1,2,3,4,MIPS{32,64}} MIPS_{N64,O32,N32}_ABI"
+CPU_PPC=""
+CPU_SH="SH{2,3,4,5}"
+CPU_SPARC="SPARC_V{7,8,9,9B}"
+CPU_X86="GENERIC_386 {3,4,5,6}86 586MMX PENTIUM{II,III,4} K{6,7} ELAN CRUSOE WINCHIP{C6,2} CYRIXIII NEHEMIAH"
+IUSE_UCLIBC_CPU="${CPU_ARM} ${CPU_MIPS} ${CPU_PPC} ${CPU_SH} ${CPU_SPARC} ${CPU_X86}"
+
+check_cpu_opts() {
+ local cpu_var="CPU_$(echo $(tc-arch) | tr [a-z] [A-Z])"
+ [[ -z ${!cpu_var} ]] && return 0
+
+ if [[ -z ${UCLIBC_CPU} ]] ; then
+ ewarn "You really should consider setting UCLIBC_CPU"
+ ewarn "Otherwise, the build will be generic (read: slow)."
+ ewarn "Available CPU options:"
+ UCLIBC_CPU=$(eval echo ${!cpu_var})
+ echo ${UCLIBC_CPU}
+ case ${CTARGET} in
+ mips[1234]*) export UCLIBC_CPU="MIPS_ISA_${CTARGET:4:1}";;
+ sh[2345]*) export UCLIBC_CPU="SH${CTARGET:2:1}";;
+ i[456]86*) export UCLIBC_CPU="${CTARGET:1:1}86";;
+ *) export UCLIBC_CPU=${UCLIBC_CPU%% *};;
+ esac
+ else
+ local cpu found=0
+ for cpu in $(eval echo ${!cpu_var}) ; do
+ [[ ${UCLIBC_CPU} == "${cpu}" ]] && found=1 && break
+ done
+ if [[ ${found} -eq 0 ]] ; then
+ ewarn "UCLIBC_CPU choice '${UCLIBC_CPU}' not supported"
+ ewarn "Valid choices:"
+ eval echo ${!cpu_var}
+ die "pick a supported cpu type"
+ fi
+ fi
+}
+
+set_opt() {
+ sed -i -e "/^\# $1 is not set/d" -e "/^$1=.*/d" .config
+ echo "$1=$2" >> .config
+}
+
+src_unpack() {
+ [[ -n ${ESVN_REPO_URI} ]] \
+ && subversion_src_unpack \
+ || unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}"/${P}_microblaze-any-endian.patch
+
+ check_cpu_opts
+
+ echo
+ einfo "Runtime Prefix: /"
+ einfo "Devel Prefix: /usr"
+ einfo "Kernel Prefix: $(alt_build_kprefix)"
+ einfo "CBUILD: ${CBUILD}"
+ einfo "CHOST: ${CHOST}"
+ einfo "CTARGET: ${CTARGET}"
+ einfo "CPU: ${UCLIBC_CPU:-default}"
+ einfo "ENDIAN: $(uclibc_endian)"
+ echo
+
+ ########## PATCHES ##########
+
+ [[ -n ${SVN_VER} ]] && \
+ epatch "${WORKDIR}"/uClibc-${PV}-cvs-update-${SVN_VER}.patch
+
+ if [[ -n ${PATCH_VER} ]] ; then
+ unpack uClibc-${PV}-patches-${PATCH_VER}.tar.bz2
+ EPATCH_SUFFIX="patch"
+ epatch "${WORKDIR}"/patch
+ fi
+
+ sed -i 's:getline:get_line:' extra/scripts/unifdef.c #277186
+
+ ########## CPU SELECTION ##########
+
+ local target config_target
+ case $(tc-arch) in
+ alpha) target="alpha"; config_target="no cpu-specific options";;
+ amd64) target="x86_64"; config_target="no cpu-specific options";;
+ arm) target="arm"; config_target="GENERIC_ARM";;
+ ia64) target="ia64"; config_target="no cpu-specific options";;
+ m68k) target="m68k"; config_target="no cpu-specific options";;
+ microblaze) target="microblaze"; config_target="no cpu-specific options";;
+ mips) target="mips"; config_target="MIPS_ISA_1";;
+ ppc) target="powerpc"; config_target="no cpu-specific options";;
+ sh) target="sh"; config_target="SH4";;
+ sparc) target="sparc"; config_target="no cpu-specific options";;
+ x86) target="i386"; config_target="GENERIC_386";;
+ *) die "$(tc-arch) lists no defaults :/";;
+ esac
+ sed -i -e "s:default CONFIG_${config_target}:default CONFIG_${UCLIBC_CPU:-${config_target}}:" \
+ extra/Configs/Config.${target}
+ sed -i -e "s:^HOSTCC.*=.*:HOSTCC=$(tc-getBUILD_CC):" Rules.mak
+
+ ########## CONFIG SETUP ##########
+
+ make ARCH=${target} defconfig >/dev/null || die "could not config"
+
+ for def in DO{DEBUG{,_PT},ASSERTS} SUPPORT_LD_DEBUG{,_EARLY} UCLIBC_HAS_PROFILING; do
+ sed -i -e "s:${def}=y:# ${def} is not set:" .config
+ done
+ if use debug ; then
+ set_opt SUPPORT_LD_DEBUG y
+ set_opt DODEBUG y
+ fi
+
+ sed -i -e '/ARCH_.*_ENDIAN/d' .config
+ set_opt "ARCH_WANTS_$(uclibc_endian | tr [a-z] [A-Z])_ENDIAN" y
+
+ if [[ $(tc-is-softfloat) != "no" ]] ; then
+ set_opt UCLIBC_HAS_FPU n
+ fi
+
+ if [[ ${CTARGET/eabi} != ${CTARGET} ]] ; then
+ set_opt CONFIG_ARM_OABI n
+ set_opt CONFIG_ARM_EABI y
+ fi
+
+ local moredefs="COMPAT_ATEXIT"
+ local compat_sym=atexit
+
+ # We need todo this for a few months. .30 is a major upgrade.
+ # Don't do it from cross-compiling case though
+ if ! use uclibc-compat ; then
+ if [[ -z ${UCLIBC_AND_GLIBC} ]] && [[ -z ${UCLIBC_SCANNED_COMPAT} ]] && \
+ ! just_headers && [[ ${CHOST} == ${CTARGET} ]] ; then
+ local fnames=""
+ einfo "Doing a scanelf in paths for bins containing the ${compat_sym} symbol"
+ fnames=$(scanelf -pyqs${compat_sym} -F%F#s)
+ if [[ -z ${fnames} ]] ; then
+ einfo "This system is clean."
+ einfo "To prevent the scanning of files again in the future you can export UCLIBC_SCANNED_COMPAT=1"
+ moredefs=""
+ else
+ ewarn "You need to remerge the packages that contain the following files before you can remerge ${P} without USE=uclibc-compat enabled."
+ ewarn "qfile -Cq $(echo ${fnames}) | sort | uniq"
+ echo
+ ewarn "Leaving on ${moredefs}"
+ fi
+ else
+ moredefs=""
+ fi
+ fi
+ for def in ${moredefs} MALLOC_GLIBC_COMPAT DO_C99_MATH UCLIBC_HAS_{RPC,FULL_RPC,CTYPE_CHECKED,WCHAR,HEXADECIMAL_FLOATS,GLIBC_CUSTOM_PRINTF,FOPEN_EXCLUSIVE_MODE,GLIBC_CUSTOM_STREAMS,PRINTF_M_SPEC,FTW} UCLIBC_HAS_REENTRANT_RPC UCLIBC_HAS_GNU_GLOB PTHREADS_DEBUG_SUPPORT UCLIBC_HAS_TZ_FILE_READ_MANY UCLIBC_HAS_FENV UCLIBC_SUSV3_LEGACY UCLIBC_SUSV3_LEGACY_MACROS UCLIBC_HAS_PROGRAM_INVOCATION_NAME ; do
+ set_opt "${def}" y
+ done
+ set_opt UCLIBC_HAS_CTYPE_UNSAFE n
+ set_opt UCLIBC_HAS_LOCALE n
+
+ use ipv6 && set_opt UCLIBC_HAS_IPV6 y
+
+ use wordexp && set_opt UCLIBC_HAS_WORDEXP y
+
+ # we need to do it independently of hardened to get ssp.c built into libc
+ set_opt UCLIBC_HAS_SSP y
+ set_opt UCLIBC_HAS_SSP_COMPAT y
+ set_opt UCLIBC_HAS_ARC4RANDOM y
+ set_opt PROPOLICE_BLOCK_ABRT n
+ set_opt PROPOLICE_BLOCK_SEGV y
+
+ # arm/mips do not emit PT_GNU_STACK, but if we enable this here
+ # it will be emitted as RWE, ppc has to be checked, x86 needs it
+ # this option should be used independently of hardened
+ if has $(tc-arch) x86 || has $(tc-arch) ppc; then
+ set_opt UCLIBC_BUILD_NOEXECSTACK y
+ else
+ set_opt UCLIBC_BUILD_NOEXECSTACK n
+ fi
+ set_opt UCLIBC_BUILD_RELRO y
+ if use hardened ; then
+ if has $(tc-arch) ${PIE_STABLE} ; then
+ set_opt UCLIBC_BUILD_PIE y
+ else
+ set_opt UCLIBC_BUILD_PIE n
+ fi
+ set_opt UCLIBC_BUILD_NOW y
+ use ssp && {
+ set_opt SSP_QUICK_CANARY n
+ set_opt UCLIBC_BUILD_SSP y
+ }
+ else
+ set_opt UCLIBC_BUILD_PIE n
+ set_opt SSP_QUICK_CANARY y
+ set_opt UCLIBC_BUILD_SSP n
+ set_opt UCLIBC_BUILD_NOW n
+ fi
+
+ restore_config .config
+
+ # setup build and run paths
+ local cross=${CTARGET}-
+ type -p ${cross}ar > /dev/null || cross=""
+ sed -i \
+ -e "/^CROSS_COMPILER_PREFIX/s:=.*:=\"${cross}\":" \
+ -e "/^KERNEL_HEADERS/s:=.*:=\"$(alt_build_kprefix)\":" \
+ -e "/^SHARED_LIB_LOADER_PREFIX/s:=.*:=\"/$(get_libdir)\":" \
+ -e "/^DEVEL_PREFIX/s:=.*:=\"/usr\":" \
+ -e "/^RUNTIME_PREFIX/s:=.*:=\"/\":" \
+ -e "/^UCLIBC_EXTRA_CFLAGS/s:=.*:=\"${UCLIBC_EXTRA_CFLAGS}\":" \
+ .config || die
+
+ yes "" 2> /dev/null | make -s oldconfig > /dev/null || die "could not make oldconfig"
+
+ cp .config myconfig
+
+ emake -s clean > /dev/null || die "could not clean"
+}
+
+src_compile() {
+ cp myconfig .config
+
+ emake headers || die "make headers failed"
+ just_headers && return 0
+
+ emake || die "make failed"
+ if [[ ${CTARGET} != ${CHOST} ]] ; then
+ emake -C utils hostutils || die "make hostutils failed"
+ elif [[ ${CHOST} == *-uclibc* ]] ; then
+ emake utils || die "make utils failed"
+ fi
+}
+
+src_test() {
+ [[ ${CHOST} != ${CTARGET} ]] && return 0
+ [[ ${CBUILD} != ${CHOST} ]] && return 0
+
+ # assert test fails on pax/grsec enabled kernels - normal
+ # vfork test fails in sandbox (both glibc/uclibc)
+ make UCLIBC_ONLY=1 check || die "test failed"
+}
+
+src_install() {
+ local sysroot=${ED}
+ [[ ${CHOST} != ${CTARGET} ]] && sysroot="${sysroot}/usr/${CTARGET}"
+
+ local target="install"
+ just_headers && target="install_headers"
+ emake DESTDIR="${sysroot}" ${target} || die "install failed"
+
+ save_config .config
+
+ # remove files coming from kernel-headers
+ rm -rf "${sysroot}"/usr/include/{linux,asm*}
+
+ # Make sure we install the sys-include symlink so that when
+ # we build a 2nd stage cross-compiler, gcc finds the target
+ # system headers correctly. See gcc/doc/gccinstall.info
+ if [[ ${CTARGET} != ${CHOST} ]] ; then
+ dosym usr/include /usr/${CTARGET}/sys-include
+ if ! just_headers ; then
+ newbin utils/ldconfig.host ${CTARGET}-ldconfig || die
+ newbin utils/ldd.host ${CTARGET}-ldd || die
+ fi
+ return 0
+ fi
+
+ if [[ ${CHOST} == *-uclibc* ]] ; then
+ emake DESTDIR="${ED}" install_utils || die "install-utils failed"
+ dobin extra/scripts/getent
+ fi
+
+ dodoc Changelog* README TODO docs/*.txt DEDICATION.mjn3
+}
+
+pkg_postinst() {
+ [[ ${CTARGET} != ${CHOST} ]] && return 0
+ [[ ${CHOST} != *-uclibc* ]] && return 0
+
+ if [[ ! -e ${EROOT}/etc/TZ ]] ; then
+ ewarn "Please remember to set your timezone in /etc/TZ"
+ [[ ! -d ${EROOT}/etc ]] && mkdir -p "${EROOT}"/etc
+ echo "UTC" > "${EROOT}"/etc/TZ
+ fi
+ [[ ${ROOT} != "/" ]] && return 0
+ # update cache before reloading init
+ /sbin/ldconfig
+ # reload init ...
+ [[ -x /sbin/telinit ]] && /sbin/telinit U &> /dev/null
+}