diff options
author | Benda Xu <heroxbd@gentoo.org> | 2012-05-18 17:36:48 +0900 |
---|---|---|
committer | Benda Xu <heroxbd@gentoo.org> | 2012-05-18 17:36:48 +0900 |
commit | fb26a5c2df5e1fde31491ebeff69112712008353 (patch) | |
tree | 2f8414516404877c9df8e29df0c2b2536ab2bd5c /sys-libs | |
download | android-fb26a5c2df5e1fde31491ebeff69112712008353.tar.gz android-fb26a5c2df5e1fde31491ebeff69112712008353.tar.bz2 android-fb26a5c2df5e1fde31491ebeff69112712008353.zip |
initial commit
Diffstat (limited to 'sys-libs')
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 +} |