public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] dev/heroxbd:master commit in: sys-devel/gcc/, sys-devel/gcc/files/, eclass/
@ 2014-11-24 15:41 Benda XU
  0 siblings, 0 replies; only message in thread
From: Benda XU @ 2014-11-24 15:41 UTC (permalink / raw
  To: gentoo-commits

commit:     b246ef8cdba089f83959f39ac07e2deabeb5c51c
Author:     Benda Xu <heroxbd <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 24 11:50:39 2014 +0000
Commit:     Benda XU <heroxbd <AT> gentoo <DOT> org>
CommitDate: Mon Nov 24 15:41:41 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=dev/heroxbd.git;a=commit;h=b246ef8c

version bump gcc-4.9.2 for RAP

---
 eclass/toolchain.eclass                   | 123 ++++++++++++++++++------------
 sys-devel/gcc/Manifest                    |   9 ++-
 sys-devel/gcc/files/fix_libtool_files.sh  |  24 +++---
 sys-devel/gcc/files/gcc-spec-env-r1.patch |  87 +++++++++++++++++++++
 sys-devel/gcc/gcc-4.9.0_pre9999.ebuild    |  68 -----------------
 sys-devel/gcc/gcc-4.9.2.ebuild            |  53 +++++++++++++
 6 files changed, 231 insertions(+), 133 deletions(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 1345b5e..73421f7 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -93,7 +93,7 @@ fi
 
 export GCC_FILESDIR=${GCC_FILESDIR:-${FILESDIR}}
 
-PREFIX=${TOOLCHAIN_PREFIX:-/usr}
+PREFIX=${TOOLCHAIN_PREFIX:-${EPREFIX}/usr}
 
 if tc_version_is_at_least 3.4.0 ; then
 	LIBPATH=${TOOLCHAIN_LIBPATH:-${PREFIX}/lib/gcc/${CTARGET}/${GCC_CONFIG_VER}}
@@ -134,7 +134,7 @@ IUSE="multislot regression-test vanilla"
 IUSE_DEF=( nls nptl )
 
 if [[ ${PN} != "kgcc64" && ${PN} != gcc-* ]] ; then
-	IUSE+=" altivec"
+	IUSE+=" altivec rap"
 	IUSE_DEF+=( cxx fortran )
 	[[ -n ${PIE_VER} ]] && IUSE+=" nopie"
 	[[ -n ${HTB_VER} ]] && IUSE+=" boundschecking"
@@ -646,8 +646,8 @@ make_gcc_hard() {
 	# Need to add HARD_CFLAGS to ALL_CXXFLAGS on >= 4.7
 	if tc_version_is_at_least 4.7 ; then
 		sed -e '/^ALL_CXXFLAGS/iHARD_CFLAGS = ' \
-                        -e 's|^ALL_CXXFLAGS = |ALL_CXXFLAGS = $(HARD_CFLAGS) |' \
-                        -i "${S}"/gcc/Makefile.in
+						-e 's|^ALL_CXXFLAGS = |ALL_CXXFLAGS = $(HARD_CFLAGS) |' \
+						-i "${S}"/gcc/Makefile.in
 	fi
 
 	# defaults to enable for all toolchains
@@ -970,10 +970,10 @@ toolchain_src_configure() {
 			elif built_with_use --hidden --missing false ${CATEGORY}/${needed_libc} crosscompile_opts_headers-only ; then
 				confgcc+=(
 					"${confgcc_no_libc[@]}"
-					--with-sysroot=${PREFIX}/${CTARGET}
+					--with-sysroot="${PREFIX}"/${CTARGET}
 				)
 			else
-				confgcc+=( --with-sysroot=${PREFIX}/${CTARGET} )
+				confgcc+=( --with-sysroot="${PREFIX}"/${CTARGET} )
 			fi
 		fi
 
@@ -984,6 +984,16 @@ toolchain_src_configure() {
 		else
 			confgcc+=( --enable-shared )
 		fi
+
+		if use rap ; then
+			# use sysroot of toolchain to get currect include and library at compile time
+			confgcc+=( --with-sysroot="${EPREFIX}" )
+
+			# when doing cross compiling native for target, the build sysroot
+			# should be pointed to SYSROOT of the cross compiler.
+			tc-is-cross-compiler && confgcc+=( --with-build-sysroot="${ROOT}" )
+		fi
+
 		case ${CHOST} in
 		mingw*|*-mingw*|*-cygwin)
 			confgcc+=( --enable-threads=win32 ) ;;
@@ -1060,7 +1070,7 @@ toolchain_src_configure() {
 		[[ ${arm_arch} == armv7? ]] && arm_arch=${arm_arch/7/7-}
 		# See if this is a valid --with-arch flag
 		if (srcdir=${S}/gcc target=${CTARGET} with_arch=${arm_arch};
-		    . "${srcdir}"/config.gcc) &>/dev/null
+			. "${srcdir}"/config.gcc) &>/dev/null
 		then
 			confgcc+=( --with-arch=${arm_arch} )
 		fi
@@ -1633,7 +1643,7 @@ toolchain_src_install() {
 	if ! is_crosscompile ; then
 		local EXEEXT
 		eval $(grep ^EXEEXT= "${WORKDIR}"/build/gcc/config.log)
-		[[ -r ${D}${BINPATH}/gcc${EXEEXT} ]] || die "gcc not found in ${D}"
+		[[ -r "${D}${BINPATH}"/gcc${EXEEXT} ]] || die "gcc not found in ${D}"
 	fi
 
 	dodir /etc/env.d/gcc
@@ -1647,7 +1657,7 @@ toolchain_src_install() {
 	gcc_slot_java
 
 	dodir /usr/bin
-	cd "${D}"${BINPATH}
+	cd "${D}${BINPATH}"
 	# Ugh: we really need to auto-detect this list.
 	#      It's constantly out of date.
 	for x in cpp gcc g++ c++ gcov g77 gcj gcjh gfortran gccgo ; do
@@ -1658,11 +1668,11 @@ toolchain_src_install() {
 		if [[ -f ${CTARGET}-${x} ]] ; then
 			if ! is_crosscompile ; then
 				ln -sf ${CTARGET}-${x} ${x}
-				dosym ${BINPATH}/${CTARGET}-${x} \
+				dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \
 					/usr/bin/${x}-${GCC_CONFIG_VER}
 			fi
 			# Create versioned symlinks
-			dosym ${BINPATH}/${CTARGET}-${x} \
+			dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \
 				/usr/bin/${CTARGET}-${x}-${GCC_CONFIG_VER}
 		fi
 
@@ -1682,7 +1692,7 @@ toolchain_src_install() {
 	cd "${S}"
 	if is_crosscompile; then
 		rm -rf "${D}"/usr/share/{man,info}
-		rm -rf "${D}"${DATAPATH}/{man,info}
+		rm -rf "${D}${DATAPATH}"/{man,info}
 	else
 		if tc_version_is_at_least 3.0 ; then
 			local cxx_mandir=$(find "${WORKDIR}/build/${CTARGET}/libstdc++-v3" -name man)
@@ -1694,10 +1704,10 @@ toolchain_src_install() {
 		fi
 		has noinfo ${FEATURES} \
 			&& rm -r "${D}/${DATAPATH}"/info \
-			|| prepinfo "${DATAPATH}"
+			|| prepinfo "${DATAPATH#${EPREFIX}}"
 		has noman ${FEATURES} \
 			&& rm -r "${D}/${DATAPATH}"/man \
-			|| prepman "${DATAPATH}"
+			|| prepman "${DATAPATH#${EPREFIX}}"
 	fi
 	# prune empty dirs left behind
 	find "${D}" -depth -type d -delete 2>/dev/null
@@ -1713,7 +1723,7 @@ toolchain_src_install() {
 	# Rather install the script, else portage with changing $FILESDIR
 	# between binary and source package borks things ....
 	if ! is_crosscompile ; then
-		insinto "${DATAPATH}"
+		insinto "${DATAPATH#${EPREFIX}}"
 		if tc_version_is_at_least 4.0 ; then
 			newins "${GCC_FILESDIR}"/awk/fixlafiles.awk-no_gcc_la fixlafiles.awk || die
 			find "${D}/${LIBPATH}" -name libstdc++.la -type f -exec rm "{}" \;
@@ -1721,7 +1731,7 @@ toolchain_src_install() {
 		else
 			doins "${GCC_FILESDIR}"/awk/fixlafiles.awk || die
 		fi
-		exeinto "${DATAPATH}"
+		exeinto "${DATAPATH#${EPREFIX}}"
 		doexe "${GCC_FILESDIR}"/fix_libtool_files.sh || die
 		doexe "${GCC_FILESDIR}"/c{89,99} || die
 	fi
@@ -1729,11 +1739,11 @@ toolchain_src_install() {
 	# Use gid of 0 because some stupid ports don't have
 	# the group 'root' set to gid 0.  Send to /dev/null
 	# for people who are testing as non-root.
-	chown -R root:0 "${D}"${LIBPATH} 2>/dev/null
+	chown -R root:0 "${D}${LIBPATH}" 2>/dev/null
 
 	# Move pretty-printers to gdb datadir to shut ldconfig up
 	local py gdbdir=/usr/share/gdb/auto-load${LIBPATH/\/lib\//\/$(get_libdir)\/}
-	pushd "${D}"${LIBPATH} >/dev/null
+	pushd "${D}${LIBPATH}" >/dev/null
 	for py in $(find . -name '*-gdb.py') ; do
 		local multidir=${py%/*}
 		insinto "${gdbdir}/${multidir}"
@@ -1768,16 +1778,16 @@ gcc_movelibs() {
 
 		local OS_MULTIDIR=$($(XGCC) ${multiarg} --print-multi-os-directory)
 		local MULTIDIR=$($(XGCC) ${multiarg} --print-multi-directory)
-		local TODIR=${D}${LIBPATH}/${MULTIDIR}
+		local TODIR="${D}${LIBPATH}"/${MULTIDIR}
 		local FROMDIR=
 
 		[[ -d ${TODIR} ]] || mkdir -p ${TODIR}
 
 		for FROMDIR in \
-			${LIBPATH}/${OS_MULTIDIR} \
-			${LIBPATH}/../${MULTIDIR} \
-			${PREFIX}/lib/${OS_MULTIDIR} \
-			${PREFIX}/${CTARGET}/lib/${OS_MULTIDIR}
+			"${LIBPATH}"/${OS_MULTIDIR} \
+			"${LIBPATH}"/../${MULTIDIR} \
+			"${PREFIX}"/lib/${OS_MULTIDIR} \
+			"${PREFIX}"/${CTARGET}/lib/${OS_MULTIDIR}
 		do
 			removedirs="${removedirs} ${FROMDIR}"
 			FROMDIR=${D}${FROMDIR}
@@ -1826,18 +1836,30 @@ fix_libtool_libdir_paths() {
 		./${dir}/*.la
 	sed -i \
 		-e "/^dependency_libs=/s:/[^ ]*/${allarchives}:${LIBPATH}/\1:g" \
-		$(find ./${PREFIX}/lib* -maxdepth 3 -name '*.la') \
+		$(find ./"${PREFIX}"/lib* -maxdepth 3 -name '*.la') \
 		./${dir}/*.la
 
 	popd >/dev/null
 }
 
+prefix_gcc_dynamic_loader() {
+	local dlf
+
+	case $(tc-arch) in
+	amd64) dlf=i386/linux64.h ;;
+	arm) dlf=arm/linux-eabi.h ;;
+	x86) dlf=i386/linux.h ;;
+	esac
+
+	eprefixify gcc/config/${dlf}
+}
+
 create_gcc_env_entry() {
 	dodir /etc/env.d/gcc
 	local gcc_envd_base="/etc/env.d/gcc/${CTARGET}-${GCC_CONFIG_VER}"
 
 	local gcc_specs_file
-	local gcc_envd_file="${D}${gcc_envd_base}"
+	local gcc_envd_file="${ED}${gcc_envd_base}"
 	if [[ -z $1 ]] ; then
 		# I'm leaving the following commented out to remind me that it
 		# was an insanely -bad- idea. Stuff broke. GCC_SPECS isnt unset
@@ -1858,7 +1880,7 @@ create_gcc_env_entry() {
 		local mdir mosdir abi ldpath
 		for abi in $(get_all_abis TARGET) ; do
 			mdir=$($(XGCC) $(get_abi_CFLAGS ${abi}) --print-multi-directory)
-			ldpath=${LIBPATH}
+			ldpath="${LIBPATH}"
 			[[ ${mdir} != "." ]] && ldpath+="/${mdir}"
 			ldpaths="${ldpath}${ldpaths:+:${ldpaths}}"
 
@@ -1867,7 +1889,7 @@ create_gcc_env_entry() {
 		done
 	else
 		# Older gcc's didn't do multilib, so logic is simple.
-		ldpaths=${LIBPATH}
+		ldpaths="${LIBPATH}"
 	fi
 
 	cat <<-EOF > ${gcc_envd_file}
@@ -1896,7 +1918,7 @@ copy_minispecs_gcc_specs() {
 		create_gcc_env_entry hardenednossp
 	fi
 	create_gcc_env_entry vanilla
-	insinto ${LIBPATH}
+	insinto ${LIBPATH#${EPREFIX}}
 	doins "${WORKDIR}"/specs/*.specs || die "failed to install specs"
 	# Build system specs file which, if it exists, must be a complete set of
 	# specs as it completely and unconditionally overrides the builtin specs.
@@ -1911,32 +1933,32 @@ gcc_slot_java() {
 	local x
 
 	# Move Java headers to compiler-specific dir
-	for x in "${D}"${PREFIX}/include/gc*.h "${D}"${PREFIX}/include/j*.h ; do
-		[[ -f ${x} ]] && mv -f "${x}" "${D}"${LIBPATH}/include/
+	for x in "${D}${PREFIX}"/include/gc*.h "${D}${PREFIX}"/include/j*.h ; do
+		[[ -f ${x} ]] && mv -f "${x}" "${D}${LIBPATH}"/include/
 	done
 	for x in gcj gnu java javax org ; do
 		if [[ -d ${D}${PREFIX}/include/${x} ]] ; then
-			dodir /${LIBPATH}/include/${x}
-			mv -f "${D}"${PREFIX}/include/${x}/* "${D}"${LIBPATH}/include/${x}/
-			rm -rf "${D}"${PREFIX}/include/${x}
+			dodir /${LIBPATH#${EPREFIX}}/include/${x}
+			mv -f "${D}${PREFIX}"/include/${x}/* "${D}${LIBPATH}"/include/${x}/
+			rm -rf "${D}${PREFIX}"/include/${x}
 		fi
 	done
 
 	if [[ -d ${D}${PREFIX}/lib/security ]] || [[ -d ${D}${PREFIX}/$(get_libdir)/security ]] ; then
-		dodir /${LIBPATH}/security
-		mv -f "${D}"${PREFIX}/lib*/security/* "${D}"${LIBPATH}/security
-		rm -rf "${D}"${PREFIX}/lib*/security
+		dodir /${LIBPATH#${EPREFIX}}/security
+		mv -f "${D}${PREFIX}"/lib*/security/* "${D}${LIBPATH}"/security
+		rm -rf "${D}${PREFIX}"/lib*/security
 	fi
 
 	# Move random gcj files to compiler-specific directories
 	for x in libgcj.spec logging.properties ; do
 		x="${D}${PREFIX}/lib/${x}"
-		[[ -f ${x} ]] && mv -f "${x}" "${D}"${LIBPATH}/
+		[[ -f ${x} ]] && mv -f "${x}" "${D}${LIBPATH}"/
 	done
 
 	# Rename jar because it could clash with Kaffe's jar if this gcc is
 	# primary compiler (aka don't have the -<version> extension)
-	cd "${D}"${BINPATH}
+	cd "${D}${BINPATH}"
 	[[ -f jar ]] && mv -f jar gcj-jar
 }
 
@@ -1956,16 +1978,17 @@ toolchain_pkg_postinst() {
 		echo
 
 		# Clean up old paths
-		rm -f "${ROOT}"/*/rcscripts/awk/fixlafiles.awk "${ROOT}"/sbin/fix_libtool_files.sh
-		rmdir "${ROOT}"/*/rcscripts{/awk,} 2>/dev/null
+		rm -f "${EROOT}"/*/rcscripts/awk/fixlafiles.awk "${EROOT}"/sbin/fix_libtool_files.sh
+		rmdir "${EROOT}"/*/rcscripts{/awk,} 2>/dev/null
 
-		mkdir -p "${ROOT}"/usr/{share/gcc-data,sbin,bin}
-		cp "${ROOT}/${DATAPATH}"/fixlafiles.awk "${ROOT}"/usr/share/gcc-data/ || die
-		cp "${ROOT}/${DATAPATH}"/fix_libtool_files.sh "${ROOT}"/usr/sbin/ || die
+		mkdir -p "${EROOT}"/usr/{share/gcc-data,sbin,bin}
+		# DATAPATH has EPREFIX already, use ROOT with it
+		cp "${ROOT}/${DATAPATH}"/fixlafiles.awk "${EROOT}"/usr/share/gcc-data/ || die
+		cp "${ROOT}/${DATAPATH}"/fix_libtool_files.sh "${EROOT}"/usr/sbin/ || die
 
 		# Since these aren't critical files and portage sucks with
 		# handling of binpkgs, don't require these to be found
-		cp "${ROOT}/${DATAPATH}"/c{89,99} "${ROOT}"/usr/bin/ 2>/dev/null
+		cp "${ROOT}/${DATAPATH}"/c{89,99} "${EROOT}"/usr/bin/ 2>/dev/null
 	fi
 
 	if use regression-test ; then
@@ -1988,10 +2011,10 @@ toolchain_pkg_postrm() {
 
 	# clean up the cruft left behind by cross-compilers
 	if is_crosscompile ; then
-		if [[ -z $(ls "${ROOT}"/etc/env.d/gcc/${CTARGET}* 2>/dev/null) ]] ; then
-			rm -f "${ROOT}"/etc/env.d/gcc/config-${CTARGET}
-			rm -f "${ROOT}"/etc/env.d/??gcc-${CTARGET}
-			rm -f "${ROOT}"/usr/bin/${CTARGET}-{gcc,{g,c}++}{,32,64}
+		if [[ -z $(ls "${EROOT}"/etc/env.d/gcc/${CTARGET}* 2>/dev/null) ]] ; then
+			rm -f "${EROOT}"/etc/env.d/gcc/config-${CTARGET}
+			rm -f "${EROOT}"/etc/env.d/??gcc-${CTARGET}
+			rm -f "${EROOT}"/usr/bin/${CTARGET}-{gcc,{g,c}++}{,32,64}
 		fi
 		return 0
 	fi
@@ -2004,10 +2027,10 @@ toolchain_pkg_postrm() {
 		do_gcc_config
 
 		einfo "Running 'fix_libtool_files.sh ${GCC_RELEASE_VER}'"
-		/usr/sbin/fix_libtool_files.sh ${GCC_RELEASE_VER}
+		fix_libtool_files.sh ${GCC_RELEASE_VER}
 		if [[ -n ${BRANCH_UPDATE} ]] ; then
 			einfo "Running 'fix_libtool_files.sh ${GCC_RELEASE_VER}-${BRANCH_UPDATE}'"
-			/usr/sbin/fix_libtool_files.sh ${GCC_RELEASE_VER}-${BRANCH_UPDATE}
+			fix_libtool_files.sh ${GCC_RELEASE_VER}-${BRANCH_UPDATE}
 		fi
 	fi
 

diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index a9ade62..7577635 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -68,7 +68,7 @@ AUX awk/fixlafiles.awk-no_gcc_la 8812 SHA256 db7e27bc744ed56c37062a56f8d2173662b
 AUX awk/scanforssp.awk 5830 SHA256 236a2a7eea1ba540ca3be82b0fe2cdefd9ac76b061440918ffe52664edbbb98a SHA512 27e5c1575714cfcd2e707f316ff11f57852faea661dc84c4b3614add2a88877a6ddefcc62b850c54964ccb296864a8f1023de08986f2948fae5c2dbe52805792 WHIRLPOOL 60a9b298f3d8b71ab8efb8de380116d9ce8f88384d38b7ebc2b2a2442a3a7b0f16175a3e0b47b6576688a584615eeb225de50766becea057151d41a3bc5f8af2
 AUX c89 412 SHA256 29ad5dd697135c2892067e780447894dc1cd071708157e46d21773ab99c5022c SHA512 71d33a147339d8d70a62aa22a95d3e70e445d8435d6ac05893f7da19ae851b89bea851f6ce213fbd22470f13572ae13b83cf02f0621333f07d7b0c68a79b7924 WHIRLPOOL d9707a2be8da7a709b54fcb1154cfa05e479f8c3bdd6173822ee1f1bc265b2a0d04741c0685bfb0db68e1e4297fb032d2f8ff94da88014575d947054474d8295
 AUX c99 446 SHA256 057b348cf5be9b4fb9db99a4549f6433c89d21e5f91dc5e46b0b4dc6b70432f5 SHA512 bf3b0eb1125d5e89b433954fcbf805cd86dec5a6eeb23df685ebf3ff83a610573f2ffcec65d893244c845936a73918387cba026710c65c854b2c94a78b007989 WHIRLPOOL b888038b96615c7a0363555b407a3de2c1f17e34428fa16dfbf56fcf68875d6bcdecbc61b545d7f71842ff1909a3ffeff17165fa7f56b48f95adae22f5f8bff1
-AUX fix_libtool_files.sh 1797 SHA256 6a5390ddd13fe5850e5cb34c154cb3575f8e34d46874b121059ee7154af22bc8 SHA512 9836a336f36a6c0570c890f5db6bfe06b8327486d0c944c807f14bae80c4bb73863583b9bb05334503c080d6f4c149427f8fa0297d1d61ba88896f91243970c2 WHIRLPOOL 4007264f3a75dc65e70a014202dec2c1fbdf0fb428e2a0e12befdab1dcb3c365878430eddfa7b1ca5b24b0daabb0be7e532909890291a73a3c7c0135f4351e4d
+AUX fix_libtool_files.sh 1636 SHA256 d2b5d275f08030a94b4186475020fc5a8b6d56ec76d2902ceb12399d5a04d8e8 SHA512 69b3834e43716b62bb878950f19a0efaa1957780e9ba05017ed03e3e7c0c1bc88bf4081c3a777cf06f2dd135d62642c7d9292754797b9c2886d43b82bf25a45e WHIRLPOOL b2ca64313433f3566ee9b2893d5913e9791dbefdd6500d513ddb32a40107892e23d6ad833067841e25000de4e52caff6a14f3b8e2de64cacfe7a147d29d817c8
 AUX gcc-3.4.6-aix-largefiles.patch 9483 SHA256 e4aa602d8f34f8b1e4d109e8b561f09c9488475b66fb46d036566036fdda39cd SHA512 14b024ecd37894d059e72e1328c3e2709d69da2438be9532ecd235330b5749e64cbcd0937d871a4abbc436f0a829450b8c246062b09fadbab3cd066d6ba7752e WHIRLPOOL 5f00f37c75fa1c8a8c478d334ef98d27827770aca996614864686a9f4c72a705db1c663081488a69a0e9b3b3d27ca8d40f63ed4aeef502379cb6c931a5464977
 AUX gcc-4.1.2-darwin-fpic.patch 619 SHA256 468cd067347194cd00175a08d88960ba5b8b96b7462e5df4dde65340a4ed0a0e SHA512 8a0533365dd806f5922db836314d3b4c4fb6e7b175b1cc58afce9225c4a02b99327d18c50ed6baddedfb833d73634d966a886617061377347fa69032eaf96f06 WHIRLPOOL 6025a4ba1e5e46959158f3fa5cfedeafc3a2dad5ef995c113cc33a4000e84cdef8f032475eadd5f9737b9f6dc036c1425e6f5dbc64e32e0c6dfe8869857f0dbd
 AUX gcc-4.1.2-freebsd.patch 204 SHA256 de33014a03741e46d027f7210f96221b3db45fd4161abf6c54c62342918b22f0 SHA512 1f550dbac6532a46c9eea70f7560d83d4239d96d788a704f6624e275f83c2ad9cbba67c148e01e5d833b6b7fb42e29c7082815b9f4f2c3b5f73122245d956583 WHIRLPOOL 95494bf1c3b0faa4464cec1343e505025b11b172e6db58e3cae30780704db3377965dfedc8bceb1aa20d4b2cfe69aa24b5d1f41c35d76020f23f61463541385d
@@ -90,6 +90,7 @@ AUX gcc-4.7-rap.patch 1913 SHA256 75842d968d21d9916d41c4e75be12387d818221465fb23
 AUX gcc-4.9-extra-specs.patch 3894 SHA256 942654807a350bdfc1f587766238bea0caabe4d804e48a8705ea5faa56701641 SHA512 32a477d66b85793cdd6c51a1dee29393914b5ecd5db4022387457ff01e871a1efd1ad77be3b05275cdf96e0ae822a7d353ed40ad1476326c60e9bdd9054930cc WHIRLPOOL 47bf1ed50db265235f5f5cae5e45831c1059a2c26fa93d6ce86299c5986da2c38b10b2ca39e59ba8c796716f4e88eadf85f84c5b4a6b5acf25dc56e5a86c182a
 AUX gcc-configure-LANG.patch 2052 SHA256 63de6d2dcfe14f21d147abeb1390405b9220c03f8e968f482d4b4c1cf279c88b SHA512 a694c7ac2f45cc657097ff5b0cf1356ac88a9c06035c9ba15167e9d444844d0d8a478eb1b9b62195dd063774f79697b9148b9cdb6c261640b472c291061b2129 WHIRLPOOL 3cc1ec912fb192ff1058de5b93e49a994ba30d1501a932290dd5b3df1cd783875621cda56edeb41894cd5fa10c04917e693a40a60be8d742ddd7992bf5d8afeb
 AUX gcc-configure-texinfo.patch 337 SHA256 74b73a7ecec2d88889876b4db480cd173632f49d5396bb8e5b3c93673f9b5b98 SHA512 a15fba8bf2ff02bdeca54d6f186bfa08c1079c6a8ba0a3beef154483ce5c1b8c497e7ffeec32371968f0037e0ff8384609eb0c367d0155a4e5a7eef8aad084d5 WHIRLPOOL 39d008aad06f7621e4e5db15f5e85a59e583b43f8d247029bd4944466bb60a9795bda157d185c45c329294078e282703a243aad5c468d90c77665dd6336870d4
+AUX gcc-spec-env-r1.patch 3148 SHA256 da0a6442eb42bce58cbdc7858b110a2e65fc5bd5b4b780b9b491033de6e302fa SHA512 ecae71577543772cfe1711f1b4a8815c0b5d706ebd01edacd1f07586637d4805e25771f970a6e6d1bb696d4b1b5ef3e0036088a96a9f6beff7ddaee704175d16 WHIRLPOOL 3535605998eabccdee71ba396ed5cefbb8b0a8cb073101f6444c7d01233f3b3904c1b29f4daf0a3417c68de8dbd62a0b7dc367cacfcbfa0c4ee1b69b7df8c6fb
 AUX gcc-spec-env.patch 1544 SHA256 64b01f29fb853fee5ecda998b66eeaa7ec86ff1fc3b21432bfd69eb543c93e6a SHA512 ce9c1f923e2c6d17347ec2d3d8482351a9644194b2753627389294d43bb4f11b9c2ef41eda1b46ad83d09901a0bedebd5b6b8a57a198646030ab61e8d2d8cb48 WHIRLPOOL b88c9c18e20868b3ff535c3390408ebe8f1304bcec6e70b6472781f684671265860dff4335f2301d3b4d3b73395283b29673f0f5da62414e1094cfcb8130e8d8
 AUX gcj-4.2.4-iconvlink.patch 721 SHA256 eb28194b567fb4d0f2a767647f787c2eef3cbce5507d85a6200cc4afd0bcc859 SHA512 4b57fb3aa3b461c27a01723712b2ea993732a2c55ec0c98157a90b82d5228f85f60e4d369a4fedca33632987405283a8ccd08b372824d2533de93cdc260dcf9f WHIRLPOOL 3e562653c51d3505952b9d527af0f9d4c98402260890c4edc9b8a8b83d0f0a68a015de99126736973475e30ca95ebce097e66f15735dd6f5ed9b5c918d0c8557
 AUX gcj-4.3.1-iconvlink.patch 753 SHA256 8918aab615ade4b9cec301f61b27de9ddadd158ac1250a206a1e5973ce35c9a6 SHA512 c985f2887d2ca1b4a9c655e0686d642487cf6d457b653b6ae4c00e3a75b35a75c6324e3eac67a8a508e8ce5272c0005cde3bf574dbf4815444683033ec52ab81 WHIRLPOOL 04e019c0bc96e369a0546d2ab5d902e806a3abf60a4aa8acb77f9ec8de3613ebeb6ccbd23a7debf738e61e3d25c8f74325b7184bea61ddd1b15e464ec4e0a1d4
@@ -145,6 +146,10 @@ DIST gcc-4.7.3-patches-1.0.tar.bz2 39969 SHA256 c9a5d7c6da7d056f7fca15b33eb7f399
 DIST gcc-4.7.3-piepatches-v0.5.5.tar.bz2 15378 SHA256 b6f6b6709e7b13f6c05090f3bf68f3a64db19d52593a870cc7717c5c128b05a2 SHA512 d0189d2e4049d471dedaddcba319fe2c2b29855f7b33e84b26051504ead2936c852ef7870a1d19d755bb343c9b121b0ce5295665ab4ff1e448436bd448c08e1f WHIRLPOOL ccceedb41d48da69f5a423b6b73436c9fbb7b1e382456abfcef954f25666e1b7caf926bc5eb977e934502359a356d623c439d80825e87d9fe46b5ae78a74bde3
 DIST gcc-4.7.3-uclibc-patches-1.0.tar.bz2 3013 SHA256 731c518f31db8debd08bea92db8e3bf1e9962552909407452dc2ac3c491cf11c SHA512 6119159300e76be87732f2a44b1a9388228235d7832370dbae531c2c96694ea42ed4c75acf7abca98ec0035fbc50a8bf84225574505358c2739e64b0f3fd6a95 WHIRLPOOL 4a874a5684937907720aa5a4a1dbc237aa7d985292befd1c591cf0789c71e0da22ced5b7f7e049731bc2d6496e959cbe3c9010047ceb1b05675e61865004c71a
 DIST gcc-4.7.3.tar.bz2 82904224 SHA256 2f7c37eb4fc14422ff2358a9ef59c974a75ab41204ef0e49fc34ab1d8981a9c3 SHA512 5671a2dd3b6ac0d23f305cb11a796aebd823c1462b873136b412e660966143f4e07439bd8926c1443b78442beb6ae370ef91d819ec615920294875b722b7b0bd WHIRLPOOL cb3408e3e251833f38ae7cf2388a1ddce864614fe1c68de9729a1a9a1f8f028ab92c0f2b863e7fa3ac16dbf443306ac864e74c9cce90690230c081ee2ac309d3
+DIST gcc-4.9.2-patches-1.0.tar.bz2 18213 SHA256 e4e9a665381beb4018779a14d5124528a9d5df0e0772f3b7639390d6bda51515 SHA512 27deba0db6a500b160829fdcf5fc9a70be4b4fbd45c89d18dd2d0808d42803657693d0ed0f2b664e020a0d2ac39cdfe550e397eb4c2a6f64220cae1e7a16ff20 WHIRLPOOL 7e04ed92038f19a9b00fe0022c2c7ce3df8621fccca95cb2da37333a5edcc0857efe96aed68f5c4b51db19ecd23ec1194412f1bc24730cea30db7b342c12dfdf
+DIST gcc-4.9.2-piepatches-v0.6.1.tar.bz2 14185 SHA256 590d11ea5723812fff3239c5eaed4b040b26a92586de0e42a84438f742eaac0b SHA512 89560e96bc205e848936acc4d3423ff5e1ea5ee478848edfe2b992585cea0df21eb102b1f1bee55c10568d4ca54bb3f4e8ae72aa695e34a908abfda3585fb992 WHIRLPOOL e6db4a2e5fdf762bd4f0fa70d630499bf6789a0c3b7ca193b455bb22f95f5f2983358ba9f28bd85b571a3a44a691ca797762302a1f2ea63ce170752f7e44128b
+DIST gcc-4.9.2-uclibc-patches-1.0.tar.bz2 2540 SHA256 3ca63cba5edb01367352fcd558890a838630deb4c30f82f4c7e8074ad75e57fc SHA512 69f6f80e23efee0b937fca0f2056e17b4fe643817d2394bbfd16cbb453d74c76a0bb8727815f689a795897d9cd5e06ecc74d3d9ad45175fe837ad008eee09706 WHIRLPOOL 3946513e83960fe891267e103e434cae0616cd45b5e7eaff5f4f671741c1445941cf80b7497231cf50f137941c01859dbbac0a95745fb7ae663a3ee512bd7162
+DIST gcc-4.9.2.tar.bz2 89939747 SHA256 2020c98295856aa13fda0f2f3a4794490757fc24bcca918d52cc8b4917b972dd SHA512 e96cba06d572dbe7f382a2b00fd9297dcf9f9219d46a9ad0bd904dc36d5e7db3335e422640b79a27fed6fde91b0731732b94a0e2fbcd47344d6779f8ba1f4f9c WHIRLPOOL c4afdd0ec98e6f903044f1d3061fd96cf1e9bcbe2f90c388f5bc9ff8b2493b94367e84fdff7c2075ba37e2f950ecf2dba7c11786c653c2c7e86a5e8ff7d98e85
 DIST gdc-0.24-src.tar.bz2 1012099 SHA256 cc6a97c76c9e6db31e76ff97014d24b3d43e21f018a3c6218e3fb2a4500fc79a SHA512 9aec7e4b102e602dfb61cd09ea4b4a96af637ceb3d726235261d09ebd35dbd416abcbfe0e46918e48474bd241fe9bb29abc145a65aa834669295aaee4fca0686 WHIRLPOOL 22322b0c3e2d67b3b37bd7fa92a29c593688f934d4ffd62b9cc87eb63a44a4f8bbc9d75cadf11209c73bdc9942c9b4430036629d0eefcd04de9055c502b85f12
 EBUILD gcc-4.1.2.ebuild 2376 SHA256 cf642ce130a342967c66d5132b1ff96bf03981d9bf2b904bf37efdd6cae03aa4 SHA512 dc546c49d2b0ccb069b1cf5f63060bacc0dc1fd60ec9afd5b93bad290f8751cae0fe80e001e2f081caf14cd6550ab17e51a183b6f080df81755ff848a9a670ee WHIRLPOOL 9d6ce3c964c662163e70dafef01b6281d19b9f636ad2a60a1acf44514077d02e81bb4896abff011caf446870a6f4501511b4963f43fd46ff492ca1157af60c29
 EBUILD gcc-4.2.4-r1.ebuild 1089 SHA256 2e0e08c98ac9ded9710f714df626094b6f1820bfd7f51414a04e1ee3776d09b2 SHA512 975ee100ae6d978e3b9a368fcad93fd5d80a3ed734288e75c26872b6018bd93d9706ed96ed6c7d0ff9e18c44ddda71bfca80ae5b4555ee7a66dc536e9597b6f5 WHIRLPOOL ef4ef321bdd5b8cc795647560b08c5a7664cf95ef2f4c42d44aecef27486f308f250226dd7353e0bc9c6bb3615eb78c8f92e1ba52d9a214faf3c0081d165ef6d
@@ -155,6 +160,6 @@ EBUILD gcc-4.5.4.ebuild 7041 SHA256 4d49f90f887d6a077289e17b654d1f7a955923884072
 EBUILD gcc-4.6.3.ebuild 7352 SHA256 ca575e64bb85597e876d4bfe8895fbc86eacbe96005917b234884b59c86157a1 SHA512 7f0bc77ed4eb4759f245af033dd76514bdb781a623ed71703e2e81d00d05a2ba6d64d07270d363b041a942986b9de124f606b6928391f2921eab3c1c64fff7ce WHIRLPOOL 7e469e72721751660e342df41eadbe6af9bf1046a8b24341c1171e80b1ac277f1394765b10e154e66e5e8b88d0633d454a93af56303bd7f9a54ad19e017127e9
 EBUILD gcc-4.7.1.ebuild 7319 SHA256 00fa53c1dbde1f7cf3d6bbe2167b6efa7894bfb24c3e6f61d78181186a8ad6e6 SHA512 59e77f97c5439765a16b6d8c653bbde3688e2332a28b1c2ffa2be8745f4828f552448e00cb3293c0b004d6e474acb1ec328a89141f40d8e067e7538bd5613444 WHIRLPOOL 79783dffc3f9e1061b7e36235246ae5e38a81d1466d9dade0713405bd3b26f1ffa3ee48d92988e30b94650b1cac23e70683468cf2db53df85d6a61c88b812220
 EBUILD gcc-4.7.3.ebuild 2006 SHA256 b1578b13fdbbd1ad3a492e5e0647c963b539b241d97f692c82e5702a28c93832 SHA512 8ecd14ec0e22e2f7f491848c69509d5bf22042dc762e093006d90d87c72981fd0f2fad4a2d728136a0712b0c2d00cadf9264aa8ac7992b721182e682d04d8fe6 WHIRLPOOL 02edd5aa9da56a12ee8097f9b881da257d2ec35cb8c358ecdbd8ed467cdbe228358a97f50de7366d42cba5133d6f3592ee86592933344c05ade29be7aefc9fe5
-EBUILD gcc-4.9.0_pre9999.ebuild 1890 SHA256 598ce00e812bf3fb6bcc0bd28bbcd26be990cc732712fbccd92d9f3e103e0b69 SHA512 9f4b0a886b81b9df92812d42c11a17ef87f39fa68fa71bc44702e53d6b482bb976cf613f115dd9ad2c67bfe6dc48ed8941c5daca677ceffc72d01062ffff41a5 WHIRLPOOL 6674d689945dc7b632449e997c6ddcbd590cffb0ea5b155c7405277ea84ee00ff32e6eca8a24930864b1908ea1cff0593459b4fb615d40bbb2f9597d9f055ca0
+EBUILD gcc-4.9.2.ebuild 1522 SHA256 5981353af8627a6468c1ce83dc24c932e5e4f1130c06b3d2d2ba082df902cc68 SHA512 28a92f4a05cd41d85efb4071122d83a66f9f0593bf00c7b4070b64d4e974ccb643e48ce2580ef4c9b4bb1b381e171c32ffe72f5ab580bb0a405b3456dd3ccb74 WHIRLPOOL 05aee45edae6c08c89922aca128725c3912012d685cce8100cfd08f8ed98d6be3074ce2a6886e219e8da7f03720321ae30049b35fd8aee48ddb157485514ef58
 MISC ChangeLog 165527 SHA256 afc6b5620b6f54646b5de780489b3bedc3be4fecef955555840da9bd77e7db0f SHA512 7dbbb73644ba270c5534fc9e86a3e67ec220f792558b13522d1ad6c0ae0121dd1729d4bcdfedfa568e9f4abc98db21d02811913348de5e141423c08c9f33552a WHIRLPOOL a4553cf71e29cf99aecbf132d7764ad2eeae079fd2ccd8133dc2bdd279e400e58ad8fedf6880fb0688ed3b3c2cdffef275f9df4c8ee62bf772d0a8e70d3a0917
 MISC metadata.xml 2017 SHA256 b8397e7ce9649b9086d020ee865f1ccd616b338cdae5be3d57494fd15748d132 SHA512 231a34104c4c0fc8f2a2733572236d7638bc9e7241a6d60b90601f24204c2a7ae5d61d351c75179dce05b4e1b7e367b9ef4f8c6d19c58d3695f5e6cb15ab519a WHIRLPOOL 01599d282637b293265f57c05a91447434d8bb33be54d6e89b8739e0f549b2045e4bc9fb6df8c7a6d0e7d6899b818b6f18454906a73edd529fc9ee57f212cce7

diff --git a/sys-devel/gcc/files/fix_libtool_files.sh b/sys-devel/gcc/files/fix_libtool_files.sh
index 064c20d..0c8a42b 100644
--- a/sys-devel/gcc/files/fix_libtool_files.sh
+++ b/sys-devel/gcc/files/fix_libtool_files.sh
@@ -1,7 +1,7 @@
-#!@GENTOO_PORTAGE_EPREFIX@/bin/sh
-# Copyright 1999-2013 Gentoo Foundation
+#!/bin/sh
+# Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/files/fix_libtool_files.sh,v 1.16 2012/05/18 21:28:56 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/files/fix_libtool_files.sh,v 1.17 2014/05/20 08:00:40 rhill Exp $
 
 usage() {
 cat << "USAGE_END"
@@ -37,14 +37,12 @@ ARGV1=$1
 ARGV2=$2
 ARGV3=$3
 
-. "@GENTOO_PORTAGE_EPREFIX@"/etc/profile || exit 1
-. "@GENTOO_PORTAGE_EPREFIX@"/etc/init.d/functions.sh || exit 1
+. /etc/profile || exit 1
 
-# Prefix: no!
-#if [ ${EUID:-0} -ne 0 ] ; then
-#	eerror "${0##*/}: Must be root."
-#	exit 1
-#fi
+if [ ${EUID:-0} -ne 0 ] ; then
+	echo "${0##*/}: Must be root."
+	exit 1
+fi
 
 # make sure the files come out sane
 umask 0022
@@ -52,10 +50,10 @@ umask 0022
 OLDCHOST=
 [ "${ARGV2}" = "--oldarch" ] && OLDCHOST=${ARGV3}
 
-AWKDIR="@GENTOO_PORTAGE_EPREFIX@/usr/share/gcc-data"
+AWKDIR="/usr/share/gcc-data"
 
 if [ ! -r "${AWKDIR}/fixlafiles.awk" ] ; then
-	eerror "${0##*/}: ${AWKDIR}/fixlafiles.awk does not exist!"
+	echo "${0##*/}: ${AWKDIR}/fixlafiles.awk does not exist!"
 	exit 1
 fi
 
@@ -63,7 +61,7 @@ OLDVER=${ARGV1}
 
 export OLDVER OLDCHOST
 
-einfo "Scanning libtool files for hardcoded gcc library paths..."
+echo "Scanning libtool files for hardcoded gcc library paths..."
 exec gawk -f "${AWKDIR}/fixlafiles.awk"
 
 # vim:ts=4

diff --git a/sys-devel/gcc/files/gcc-spec-env-r1.patch b/sys-devel/gcc/files/gcc-spec-env-r1.patch
new file mode 100644
index 0000000..a589268
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-spec-env-r1.patch
@@ -0,0 +1,87 @@
+2013-08-22  Magnus Granberg <zorry@gentoo.org>
+
+	* gcc/gcc.c (main): Add support for external spec file via the GCC_SPECS env var
+	and move the process of the user specifed specs.
+
+    This allows us to easily control pie/ssp defaults with gcc-config profiles.
+    Original patch by Rob Holland
+    Extended to support multiple entries separated by ':' by Kevin F. Quinn
+    Modified to use getenv instead of poisoned GET_ENVIRONMENT by Ryan Hill
+    Modified to process the GCC_SPECS env var befor DRIVER_SELF_SPECS by Magnus Granberg
+
+--- gcc-4.8-20130210/gcc/gcc.c	2013-02-05 16:55:31.000000000 +0100
++++ gcc-4.8-20130210-work/gcc/gcc.c	2013-07-26 02:32:14.625089864 +0200
+@@ -6427,6 +6428,48 @@ main (int argc, char **argv)
+     do_option_spec (option_default_specs[i].name,
+ 		    option_default_specs[i].spec);
+ 
++#if !(defined (__MSDOS__) || defined (OS2) || defined (VMS) || defined (WIN32))
++  /* Add specs listed in GCC_SPECS.  Note; in the process of separating
++   * each spec listed, the string is overwritten at token boundaries
++   * (':') with '\0', an effect of strtok_r().
++   */
++  specs_file = getenv ("GCC_SPECS");
++  if (specs_file && (strlen(specs_file) > 0))
++    {
++      char *spec, *saveptr;
++      for (spec=strtok_r(specs_file,":",&saveptr);
++           spec!=NULL;
++           spec=strtok_r(NULL,":",&saveptr))
++        {
++          struct user_specs *user = (struct user_specs *)
++            xmalloc (sizeof (struct user_specs));
++          user->next = (struct user_specs *) 0;
++          user->filename = spec;
++          if (user_specs_tail)
++            user_specs_tail->next = user;
++          else
++            user_specs_head = user;
++          user_specs_tail = user;
++        }
++    }
++#endif
++  /* Process any user specified specs in the order given on the command
++   *     line.  */
++  for (uptr = user_specs_head; uptr; uptr = uptr->next)
++    {
++      char *filename = find_a_file (&startfile_prefixes, uptr->filename,
++        R_OK, true);
++      read_specs (filename ? filename : uptr->filename, false, true);
++    }
++  /* Process any user self specs.  */
++  {
++    struct spec_list *sl;
++    for (sl = specs; sl; sl = sl->next)
++      if (sl->name_len == sizeof "self_spec" - 1
++          && !strcmp (sl->name, "self_spec"))
++        do_self_spec (*sl->ptr_spec);
++  }
++
+   /* Process DRIVER_SELF_SPECS, adding any new options to the end
+      of the command line.  */
+ 
+@@ -6535,24 +6578,6 @@ main (int argc, char **argv)
+ 			      PREFIX_PRIORITY_LAST, 0, 1);
+     }
+ 
+-  /* Process any user specified specs in the order given on the command
+-     line.  */
+-  for (uptr = user_specs_head; uptr; uptr = uptr->next)
+-    {
+-      char *filename = find_a_file (&startfile_prefixes, uptr->filename,
+-				    R_OK, true);
+-      read_specs (filename ? filename : uptr->filename, false, true);
+-    }
+-
+-  /* Process any user self specs.  */
+-  {
+-    struct spec_list *sl;
+-    for (sl = specs; sl; sl = sl->next)
+-      if (sl->name_len == sizeof "self_spec" - 1
+-	  && !strcmp (sl->name, "self_spec"))
+-	do_self_spec (*sl->ptr_spec);
+-  }
+-
+   if (compare_debug)
+     {
+       enum save_temps save;

diff --git a/sys-devel/gcc/gcc-4.9.0_pre9999.ebuild b/sys-devel/gcc/gcc-4.9.0_pre9999.ebuild
deleted file mode 100644
index 6b9c547..0000000
--- a/sys-devel/gcc/gcc-4.9.0_pre9999.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-GCC_FILESDIR=${PORTDIR}/sys-devel/gcc/files
-gcc_LIVE_BRANCH="master"
-
-inherit multilib toolchain
-
-DESCRIPTION="The GNU Compiler Collection."
-SRC_URI=""
-
-LICENSE="GPL-3 LGPL-3 || ( GPL-3 libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.2"
-KEYWORDS=""
-
-SLOT="${GCC_BRANCH_VER}-vcs"
-IUSE="debug nobootstrap offline"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
-	amd64? ( multilib? ( gcj? ( app-emulation/emul-linux-x86-xlibs ) ) )
-	>=${CATEGORY}/binutils-2.18"
-
-if [[ ${CATEGORY} != cross-* ]] ; then
-	PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.12 )"
-fi
-
-src_unpack() {
-	# use the offline USE flag to prevent the ebuild from trying to update from
-	# the repo.  the current sources will be used instead.
-	use offline && EVCS_OFFLINE="yes"
-
-	toolchain_src_unpack
-
-	echo "commit ${EGIT_VERSION}" > "${S}"/gcc/REVISION
-
-	# drop-in patches
-	if ! use vanilla ; then
-		if [[ -e ${FILESDIR}/${GCC_RELEASE_VER} ]]; then
-			EPATCH_SOURCE="${FILESDIR}/${GCC_RELEASE_VER}" \
-			EPATCH_EXCLUDE="${FILESDIR}/${GCC_RELEASE_VER}/exclude" \
-			EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" epatch \
-			|| die "Failed during patching."
-		fi
-	fi
-
-	[[ ${CHOST} == ${CTARGET} ]] && epatch "${GCC_FILESDIR}"/gcc-spec-env.patch
-
-	use debug && GCC_CHECKS_LIST="yes"
-
-	epatch "${FILESDIR}/gcc-4.9-extra-specs.patch"
-
-	# single-stage build for quick patch testing
-	if use nobootstrap; then
-		GCC_MAKE_TARGET="all"
-		EXTRA_ECONF+=" --disable-bootstrap"
-	fi
-}
-
-pkg_postinst() {
-	toolchain_pkg_postinst
-	echo
-	einfo "This gcc-4 ebuild is provided for your convenience, and the use"
-	einfo "of this compiler is not supported by the Gentoo Developers."
-	einfo "Please file bugs related to gcc-4 with upstream developers."
-	einfo "Compiler bugs should be filed at http://gcc.gnu.org/bugzilla/"
-	echo
-}

diff --git a/sys-devel/gcc/gcc-4.9.2.ebuild b/sys-devel/gcc/gcc-4.9.2.ebuild
new file mode 100644
index 0000000..ad3324d
--- /dev/null
+++ b/sys-devel/gcc/gcc-4.9.2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-4.9.2.ebuild,v 1.1 2014/11/01 07:56:35 vapier Exp $
+
+EAPI="4"
+
+PATCH_VER="1.0"
+UCLIBC_VER="1.0"
+
+# Hardened gcc 4 stuff
+PIE_VER="0.6.1"
+SPECS_VER="0.2.0"
+SPECS_GCC_VER="4.4.3"
+# arch/libc configurations known to be stable with {PIE,SSP}-by-default
+PIE_GLIBC_STABLE="x86 amd64 mips ppc ppc64 arm ia64"
+PIE_UCLIBC_STABLE="x86 arm amd64 mips ppc ppc64"
+SSP_STABLE="amd64 x86 mips ppc ppc64 arm"
+# uclibc need tls and nptl support for SSP support
+# uclibc need to be >= 0.9.33
+SSP_UCLIBC_STABLE="x86 amd64 mips ppc ppc64 arm"
+#end Hardened stuff
+
+inherit eutils toolchain
+
+KEYWORDS="~x86 ~amd64 ~arm"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+	elibc_glibc? ( >=sys-libs/glibc-2.8 )
+	>=${CATEGORY}/binutils-2.20"
+
+if [[ ${CATEGORY} != cross-* ]] ; then
+	PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )"
+fi
+
+src_prepare() {
+	if has_version '<sys-libs/glibc-2.12' ; then
+		ewarn "Your host glibc is too old; disabling automatic fortify."
+		ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315"
+		EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
+	fi
+
+	if use rap; then
+		epatch "${FILESDIR}"/gcc-4.7-rap.patch
+		prefix_gcc_dynamic_loader
+	fi
+
+	toolchain_src_prepare
+
+	use vanilla && return 0
+	#Use -r1 for newer piepatchet that use DRIVER_SELF_SPECS for the hardened specs.
+	[[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env-r1.patch
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2014-11-24 15:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-24 15:41 [gentoo-commits] dev/heroxbd:master commit in: sys-devel/gcc/, sys-devel/gcc/files/, eclass/ Benda XU

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox