From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 1C12C59CA9 for ; Mon, 28 Mar 2016 09:19:07 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 391F0E079D; Mon, 28 Mar 2016 09:19:05 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id BDC1AE079D for ; Mon, 28 Mar 2016 09:19:04 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id E4244340A9E for ; Mon, 28 Mar 2016 09:19:02 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 2C1FC85A for ; Mon, 28 Mar 2016 09:19:00 +0000 (UTC) From: "Alexey Shvetsov" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Alexey Shvetsov" Message-ID: <1459156730.d50abfc22a82f0fb2cd49e66d7343787dcecc574.alexxy@gentoo> Subject: [gentoo-commits] repo/proj/prefix:master commit in: sys-devel/gcc/ X-VCS-Repository: repo/proj/prefix X-VCS-Files: sys-devel/gcc/Manifest sys-devel/gcc/gcc-4.9.3.ebuild sys-devel/gcc/metadata.xml X-VCS-Directories: sys-devel/gcc/ X-VCS-Committer: alexxy X-VCS-Committer-Name: Alexey Shvetsov X-VCS-Revision: d50abfc22a82f0fb2cd49e66d7343787dcecc574 X-VCS-Branch: master Date: Mon, 28 Mar 2016 09:19:00 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 24f0ac41-c54d-4c28-9660-955bb655908e X-Archives-Hash: 8af55beda79a210d2e2fbf20ea788e9e commit: d50abfc22a82f0fb2cd49e66d7343787dcecc574 Author: Alexey Shvetsov gentoo org> AuthorDate: Mon Mar 28 09:18:50 2016 +0000 Commit: Alexey Shvetsov gentoo org> CommitDate: Mon Mar 28 09:18:50 2016 +0000 URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=d50abfc2 Add gcc-4.9.3 for amd64-linux and x86-linux, other targets may not work Package-Manager: portage-2.2.28-prefix RepoMan-Options: --force sys-devel/gcc/Manifest | 27 ++--- sys-devel/gcc/gcc-4.9.3.ebuild | 223 +++++++++++++++++++++++++++++++++++++++++ sys-devel/gcc/metadata.xml | 1 + 3 files changed, 230 insertions(+), 21 deletions(-) diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest index 84ec996..d845a1d 100644 --- a/sys-devel/gcc/Manifest +++ b/sys-devel/gcc/Manifest @@ -1,6 +1,3 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 - AUX 3.3.4/libffi-without-libgcj.patch 890 SHA256 a422ebf05e279bdcb15627363af8101e4d6a54ca037d6da11c13b4768799d974 SHA512 6204588808a37a13dffc8c6bdf70eb453107413d0c8fffddeb360444e3e605f1ceb42c41905cfa1c4f9cbb1b22dc290e68d2728dbddb0f4d0406dd8dca6789a0 WHIRLPOOL 7260ba32fc7d60f1fa4d8667c929e16f3bdf9fe953c823c5b6876d4fea4d4fed52e67aec92cbb599d6327eac009bc4fbbc06ba85acf9848bf346384af0523363 AUX 3.3.6/gcc-3.3.6-cross-compile.patch 2202 SHA256 00e5152f211a2c0892ba4f5a7ebb078c1d5d1dfc77bd0ba81ab8dfcd2924ffb3 SHA512 0d81d516a3635eb303d8f75099bf8fbbf1ffcd771c9cb4a770a55189232ed53e15728191a3e8c5339cc1562bbe4bcaa4b6c0d1c1d264287216abe715ca734829 WHIRLPOOL 579e035254ed4500acdbf23872e0b30d81b914f080054dbe7ebd16c483a0fb6bd787b41d570c0f1338dc8e3c5f03dceb94cfadc6d73d68fb230d839f896142f2 AUX 3.4.3/libffi-nogcj-lib-path-fix.patch 1691 SHA256 030e2c9f31b325ea975792bdfee88272d1065b8794511410dc30bd2caf8b3451 SHA512 001e3c1c585c3ab641a540eb5502788dd1151cb66fc9f0196ae79e3ad7f01a291812511bd19114fdffc9d8b71987623f1dcccefed3546cb9e0f0e6abd55f093c WHIRLPOOL ffda82e69885c7691f7746188f3565dd90fa9a33be1426155ccf8f5cc40f910ac8bdac14accef120c379bbddc589732028cff94377a6bfffc080789d7a825d15 @@ -170,6 +167,10 @@ DIST gcc-4.8.5-patches-1.3.tar.bz2 26025 SHA256 4a165e6a387421f581f49c742243bf01 DIST gcc-4.8.5-piepatches-v0.6.2.tar.bz2 14265 SHA256 3a823af1b4c590076b95790614d49448dc0ee6ff0ace221f2dacd9033b58eac7 SHA512 cd6af4047d4719dae9dbe86ce5342c7d8ddec38aad032486713b08e1b0cb711f5ca017e08d583137d51b8d4ef673366ba310e71bca7b49b82e9314781d6e9d99 WHIRLPOOL ca1d0a9cb9abdfddd95d433b2f0424fd7cc9d514cf4c91fb266af4c43e26e0b3084adfae0eb5c998dbee83551e916dba3cf438b338f7e4ac1a133f06018e398d DIST gcc-4.8.5-uclibc-patches-1.0.tar.bz2 2976 SHA256 3654cc2bb47173b9d40650374c465a0798faab53be5ee4446389af1acd610a27 SHA512 5469128eab06525915c75241797ad9ec4b63072ebfd5e110319bf810633cf3fbed39bbda4f6a0c74e537b248e7642780ecbe2086ad10be6e66b7dd289fa6534f WHIRLPOOL d5e11a7d83d11455d84deaa464b8cde0865c730cc140daa5d7b0e700a79f188c6efba88b1c5704b20ede2dca701fb88cf581bada2f4352fbd0e0a5571c436612 DIST gcc-4.8.5.tar.bz2 86165587 SHA256 22fb1e7e0f68a63cee631d85b20461d1ea6bda162f03096350e38c8d427ecf23 SHA512 47fdfeca0c0a624cdec9c4ae47137d056c918d5c386d4b96985bb3c8172aba377cb66cbcc30e80832fd244a7d98f562c20198056915c70cfef0977545073a8ea WHIRLPOOL 026253cd2f3706871dfe2525c0302b38b3f513f6a62666d0ba0ca2e62d6513f09ad5c1177f2a63ae3bad660fe60e7909b6930d26df2b367b9ec68e14552c6e11 +DIST gcc-4.9.3-patches-1.5.tar.bz2 25384 SHA256 e1c43125fab5a4db1997a01b362b3611907c9020e41a591e5eb2f5669f216538 SHA512 d266790b1f537c7c3de459cc67f9151b77b16b1e36780c3d2a02f2e4627d5a0f8f6430d7092bbfa6f9a4667c02170d3ce75b0453b6facc94998d414e58f4a1e1 WHIRLPOOL 31b4d54f0858f5673d76590ac822e097ddf799d4eafba81c1378af7cbaadd7be8634297ca9f900a78f7382ebfa9626a40e12ca7c06eff88431de04ddd4d2cec0 +DIST gcc-4.9.3-piepatches-v0.6.4.tar.bz2 14431 SHA256 012c3025ac2e14781ff25028c0b1d42a07f510b125006116e268bcd90fb6c9db SHA512 3bbeacbca5e8ef6ab0b1d58add42f5e8e82328afe024666f9585b5398c8722e7d012abfd2009a98ad47b1f1b26afaf421402a9e7719a5662516b32dcbe5608be WHIRLPOOL 9e68d981aed42ece2f481f62efc078ad370ac780e96ba39c4273c8675d552b845cd52c588bd41839868f430b0a532789858914f4ef32a1bc187e2983264ebfd3 +DIST gcc-4.9.3-uclibc-patches-1.0.tar.bz2 2515 SHA256 dd19904d4ab005ef142056228f326e75b3d4d79b8056189a505129b5940a575c SHA512 825092620a3c554ef06219fd1152c3677f1456315563b9e65282a73096e75600389e93298ed76cad41ce3eeecc6a7009ca722585b93c04095bd2d0a06c4404e6 WHIRLPOOL 0c184a5cc74f80a61f354ee85bc5a0f5b44d93bc9fa2e1892fbfe899958cfa5263b8b72cc4f905bc69bd1cc90cf870a6056c4003ec493b815646a72a0fe2e44e +DIST gcc-4.9.3.tar.bz2 90006707 SHA256 2332b2a5a321b57508b9031354a8503af6fdfb868b8c1748d33028d100a8b67e SHA512 9ac57377a6975fc7adac704ec81355262b9f537def6955576753b87715470a20ee6a2a3144a79cc8fcba3443f7b44c7337d79d704b522d053f54f79aa6b442df WHIRLPOOL 085e4cc1825b031652cbe9e098671f761acfeca64c6cc9b8ad2a8961c13fcac9e02b4538b44dc38181a355266f2c55c99ce5a1bff3f2860b870285cf3f0e84a5 DIST gdc-0.24-src.tar.bz2 1012099 SHA256 cc6a97c76c9e6db31e76ff97014d24b3d43e21f018a3c6218e3fb2a4500fc79a SHA512 9aec7e4b102e602dfb61cd09ea4b4a96af637ceb3d726235261d09ebd35dbd416abcbfe0e46918e48474bd241fe9bb29abc145a65aa834669295aaee4fca0686 WHIRLPOOL 22322b0c3e2d67b3b37bd7fa92a29c593688f934d4ffd62b9cc87eb63a44a4f8bbc9d75cadf11209c73bdc9942c9b4430036629d0eefcd04de9055c502b85f12 EBUILD gcc-3.3.6-r1.ebuild 1566 SHA256 082642502bbf553488c3ee03237b3e3e65501d2d6a5a22b257db5deb0577ba84 SHA512 f9a918a7aa71112a915ca34bd828b5d597996fe689286a5944af28f56bc5fd31854b8842b4f8229c9c985b966c9a5701dfb8229eed710d190c6ea5e266de45e1 WHIRLPOOL f8b7e78ceb86c5f72096550d1475d6dec736e4232cc0eba618a7a2a225bbcd02f6471d0ca96f59df14e0f6620d0f1e2be37d2b0bad59114808cec6d43ac10359 EBUILD gcc-3.4.6-r2.ebuild 2859 SHA256 44fb15ae2432f0e9b7dade84f2a62bded9eaa7b8eb66d2ce58f6e018da1da148 SHA512 b46770083d5479f190b24191efe3b921b4d6bf56fd5d536d7fc31a87cf280c08f415b30d0da6aa75592f1fbbe19d59f8dd378c5b9dcca18d94b75450dfaf940f WHIRLPOOL 0809cfec23b5d03e7f4df07d415adeab8dd38f16e6085693478503586814c910211c2e316dd54a8674eb2708c48e25e571910ec03f8c43d22d8ca0ac541fb016 @@ -181,21 +182,5 @@ EBUILD gcc-4.8.2-r1.ebuild 5790 SHA256 74387032c8d6bfbde20f63160c7bc1b4c3040c874 EBUILD gcc-4.8.3.ebuild 7107 SHA256 5cdf1a0c8ee008d6666e897e3fa64ed5b8d6a009abbfa852189411b76dac80af SHA512 879c57a18c94702fd46634390f938a92d412d9edd6231524f3b229849e2be95e088df7168ff1ef380250ad95c4d21b18d8e72be2f9241d4275fdf68e2d474016 WHIRLPOOL abad11c645d96e230df3376cbb13027dce62eeede7f218a81121e0688e7fb441d0142746794ac2f9e481e559345fdfc28df93df316531ac643a323f29ea2b10e EBUILD gcc-4.8.4.ebuild 8643 SHA256 b4ccdc37c6b636c146b5b39a2cad2783185aca51301278b85b69d9dc65c3a0e7 SHA512 b8a22cdba511afbee1ecc46b9a1c9c8e66e4f98dbc6dc29dbdccdd89be6de84bf6eb91d63d3189aa3f0249f0a9a38197fa7cdf4d92a5c003139e03eced82c9fb WHIRLPOOL 0b28fd2a6062f4a1f1a835f9030cb9efcf36b7fc1f170547c95b909029f1ff30809e5abb7163fe4250903170ea43a169263d5192e180a5844c0868b938a2996d EBUILD gcc-4.8.5.ebuild 8535 SHA256 4381d44c25863f5946a734d762d2c7aaa1df08d23e201b86bbd0eb211e6113a5 SHA512 31b616602d7b0d7bdd90fea4cd67af5ae76d85e0df638be358ddbe6f0cdc95e7fdd6b767089b8d6370216ef533773387a561d7beb77b362a38878aba09c51dcb WHIRLPOOL dd8b63dd0054f83030f7ec22f1a1856b27b41d139cd68d089a66a3e8e61519e35098843e4c685c0a55332e0a46c87785e04c4a93ffb7928f3798a0f9c3582b27 -MISC metadata.xml 2013 SHA256 908c83d1adcb78c343319c0730554e914cd8bc9fa1cf81b1eb86de338372d9df SHA512 36ea07edc9590441d66d49a9a61bd4849c15fac0e23cb49774af8d0b9ba8af4dc9c55ed303535ad6ac3fbdc7dc82f1df01bcdad5320bfef7451633a09b966b12 WHIRLPOOL 87a1601ac7ab333b6fb489458502d0918745b3d8d1e3b7d8ba28a4effc05ef2cac13c580cd28d829cfc0cc421f17c2b82ddb59decb09e24751a1665a409b2625 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2 - -iQIcBAEBCAAGBQJWsheDAAoJEL1o0fmaVRJjVqEP/ikp/3WHJn7WgOqp46uYFxsu -FsUu083YARq8dhXPibWAaI5tPg2b/KYQpltPW7GMlEDRjVbMzOED3kZjVwARJicc -j1Vy3E3RbK2aYr3YxNcxqEab8r3z1dnJsXJFnn3WFaKRfutWdPT32STagggeAKKy -+56Zsm2yZkquWfnkze5YH/8e0H3X/R+ctcGsTD2uEreidSvJEpqDaSQxidacBXIL -OvGRch7EAQyNkaENkTnC3LgLc3iwxUw39R7RwGjWGEY9Z/Mi7WiCzBir9WvFFUQZ -r1WKRATOn9TA5OJPldWTY5Ng9V1O9xMgDiWJiEzWQ+T//9E6SyLdFcYKRGl9dfHV -lsrMPbpERhBz5ao8mTizq+JNoyzKmPv8LwjlF6HQJAMsGcIiCiZDjvV6G1d4fGvI -6GUtTHF+wTYL4LXpE5Y3/oOLl/dXEvCI7quqFfuBR/TpN5aLLWngIf7I3ZxEp1IA -PAASJ/P8fyPODmLaD3RjfH5rWRp8LusVOp+mt1U5WKSz9lgrCtHwEW3wj3De967o -v8rpJ5oVwOg0JUUBUtlZLWn85TM6OrgKLom1r0wJNlRrEp3iGm78V0fvoaxdE2qK -dLkF13UbSKgVkt1x+ndUlISzYABJ3BNpTTkV1XIuvVTXJ0Wl8Ne+4LL4yopfP04W -HEcHtpLI7ylVHF81mssN -=Y0bo ------END PGP SIGNATURE----- +EBUILD gcc-4.9.3.ebuild 8543 SHA256 974812789b55baa32fa6488901640296008c8acd5306c5a3f3a6810dcb31a477 SHA512 5be1e108628c3b55a247c9c294ca565820338c62a90415419b14109ed861a62c8890bb575015f0ddaeba72c50c4414fe76a291e34de30b67faa1b0eee1636c15 WHIRLPOOL fb0c95fbfcf21f470f2f3486bd9bde6f2d8d09fda9dd11094df0f9b322902b003feb95f6ec92fa41fec897464f0c625aef289f7db6f96d0875a817386f8859e4 +MISC metadata.xml 2104 SHA256 5dcf06d42915f02cbddf322357fe52751f11c662509f092fef4f08d8b62ee907 SHA512 13ce1f8c30004bd8a665b5013c0c9121012ee8761b6b1aff40bdb27497355001df429a1441e27163f5d9e317ad686dc7fedbe96b4ee7b6cfac4bb0b52730e324 WHIRLPOOL bc7414ee329885a6dd525f3ace571b0569e44e7b0c8839f275a2f7898559f833173932f61587f781c13887535c088a259c55e3dac282bd946ce4d2c5f2023111 diff --git a/sys-devel/gcc/gcc-4.9.3.ebuild b/sys-devel/gcc/gcc-4.9.3.ebuild new file mode 100644 index 0000000..f7eee9c --- /dev/null +++ b/sys-devel/gcc/gcc-4.9.3.ebuild @@ -0,0 +1,223 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +PATCH_VER="1.5" +UCLIBC_VER="1.0" + +# Hardened gcc 4 stuff +PIE_VER="0.6.4" +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 flag-o-matic + +#KEYWORDS="~ppc-aix ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~amd64-linux ~x86-linux" + +RDEPEND="" +DEPEND="${RDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.8 ) ) + kernel_linux? ( >=${CATEGORY}/binutils-2.20 ) + kernel_Darwin? ( ${CATEGORY}/binutils-apple ) + kernel_AIX? ( ${CATEGORY}/native-cctools ) +" + +if [[ ${CATEGORY} != cross-* ]] ; then + PDEPEND="${PDEPEND} !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.8 ) )" +fi + +src_prepare() { + if has_version '=glibc-2.12 #362315" + EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch" + fi + # Fedora/RedHat ships glibc-2.15+ with some nasty warnings that cause + # configure checks for most system headers to fail, resulting in bugs + # compiling e.g. gcc itself, bug #433333 + if [[ -e /usr/include/features.h ]] ; then + grep -qF "_FORTIFY_SOURCE requires compiling with optimization" \ + /usr/include/features.h && \ + EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch" + fi + + toolchain_src_prepare + + use vanilla && return 0 + + # make sure solaris-x64 doesn't misdetect tls support, bug #505446 + #epatch "${FILESDIR}"/4.7.2/solaris-x64-tls-gnu-as.patch + + # make sure 64-bits native targets don't screw up the linker paths + #epatch "${FILESDIR}"/4.7.1/solaris-searchpath.patch + epatch "${FILESDIR}"/no-libs-for-startfile.patch + if use prefix; then + epatch "${FILESDIR}"/4.5.2/prefix-search-dirs.patch + # try /usr/lib32 in 32bit profile on x86_64-linux (needs + # --enable-multilib), but this does make sense in prefix only + epatch "${FILESDIR}"/${PN}-4.8.3-linux-x86-on-amd64.patch + fi + + # make it have correct install_names on Darwin + epatch "${FILESDIR}"/4.3.3/darwin-libgcc_s-installname.patch + # filename based versioning of libgcc_s for AIX + #epatch "${FILESDIR}"/gcc-4.8.4-aix-soname-libgcc.patch.xz + # let --with-specs=-pthread work for libgcc_s on AIX without multilib + #epatch "${FILESDIR}"/gcc-4.8.4-aix-pthread-specs.patch + # drop -B flag when ./nm encounters -P + #epatch "${FILESDIR}"/gcc-4.8.4-aix-soname-nm-weak.patch + # support --with-aix-soname=aix|both|svr4 for libtool libs + #epatch "${FILESDIR}"/gcc-4.8.4-aix-soname-libtool.patch.xz + #epatch "${FILESDIR}"/gcc-4.8.4-aix-soname-regen.patch.xz + #epatch "${FILESDIR}"/gcc-4.8-aix-extref.patch # PR target/65058 + if [[ ${CHOST} == *-aix* ]]; then + # -fPIC breaks stage2/3 comparison, use per-build random seed + local myseed=$(echo $( + head -c32 /dev/urandom | uuencode - | tr -d -c a-zA-Z0-9_+/., + )) + echo "STAGE2_CFLAGS += -frandom-seed=${myseed}" >> config/mh-ppc-aix + echo "STAGE3_CFLAGS += -frandom-seed=${myseed}" >> config/mh-ppc-aix + is_crosscompile || + echo "CFLAGS_FOR_TARGET += -frandom-seed=${myseed}" >> config/mh-ppc-aix + # build large insn-*.o one at a time + epatch "${FILESDIR}"/gcc-4.8.4-lowmem-build.patch + fi + + if [[ ${CHOST} == *-mint* ]] ; then + epatch "${FILESDIR}"/4.3.2/${PN}-4.3.2-mint3.patch + epatch "${FILESDIR}"/4.7.2/mint1.patch + epatch "${FILESDIR}"/4.4.1/${PN}-4.4.1-mint3.patch + epatch "${FILESDIR}"/4.7.2/mint2.patch + epatch "${FILESDIR}"/4.7.2/mint3.patch + epatch "${FILESDIR}"/4.7.2/pr52391.patch + epatch "${FILESDIR}"/4.7.2/mint-unroll.patch + epatch "${FILESDIR}"/4.7.2/pr52773.patch + epatch "${FILESDIR}"/4.7.2/pr52714.patch + fi + + #Use -r1 for newer piepatchet that use DRIVER_SELF_SPECS for the hardened specs. + [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env-r1.patch +} + +src_configure() { + local myconf=() + case ${CTARGET}:" ${USE} " in + powerpc*-darwin*) + # bug #381179 + filter-flags "-mcpu=*" "-mtune=*" + ;; + *-mint*) + myconf+=( --enable-multilib ) + ;; + *-solaris*) + # todo: some magic for native vs. GNU linking? + myconf+=( --with-gnu-ld --with-gnu-as ) + ;; + *-aix*) + # AIX doesn't use GNU binutils, because it doesn't produce usable + # code + myconf+=( --without-gnu-ld --without-gnu-as --disable-lto ) + append-ldflags -Wl,-bbigtoc,-bmaxdata:0x10000000 # bug#194635 + # we have backports of the aix-soname upstream patches + myconf+=( --with-aix-soname=svr4 ) + # Always behave on AIX as if: + # -fPIC was passed (packages know that "everything on AIX is PIC") + # -pthread was passed (#266548) + # -Wl,-bsvr4 was passed (runtime linking, hold -L paths off the runpath) + # -Wl,-G,-bernotok was passed for shared libraries (runtime linking, --no-undefined) + myconf+=( --with-specs="-fPIC -pthread %x{-bsvr4} %{shared:%x{-G} %x{-bernotok}}" ) + ;; + ia64*-*-hpux*) + # Always behave as if -pthread were passed on HPUX (#266548) + myconf+=( --with-specs=-pthread ) + ;; + *-interix*) + # disable usage of poll() on interix, since poll() only + # works on the /proc filesystem (.......) + export glibcxx_cv_POLL=no + + # if using the old system as, gcc's configure script fails + # to detect that as cannot handle .lcomm with alignment. + # on interix, it is rather easy to detect the as, since there + # is only _one_ build of it with a fixed date in the version + # header... + if as --version | grep 20021111 > /dev/null 2>&1; then + einfo "preventing gcc from detecting .lcomm alignment option in interix system as." + export gcc_cv_as_lcomm_with_alignment=no + fi + ;; + i[34567]86-*-linux*:*" prefix "*) + # to allow the linux-x86-on-amd64.patch become useful, we need + # to enable multilib, even if there is just one multilib option. + myconf+=( --enable-multilib ) + if [[ ${CBUILD:-${CHOST}} == "${CHOST}" ]]; then + # we might be on x86_64-linux, but don't do cross-compile, so + # tell the host-compiler to really create 32bits (for stage1) + # (real x86-linux-gcc also accept -m32). + append-flags -m32 + fi + ;; + esac + + # Since GCC 4.1.2 some non-posix (?) /bin/sh compatible code is used, at + # least on Solaris, and AIX /bin/sh is ways too slow, + # so force it to use $BASH (that portage uses) - it can't be EPREFIX + # in case that doesn't exist yet + export CONFIG_SHELL="${CONFIG_SHELL:-${BASH}}" + toolchain_src_configure "${myconf[@]}" +} + +src_install() { + toolchain_src_install + + if [[ ${CTARGET} == *-interix* ]] && ! is_crosscompile; then + # interix delivers libdl and dlfcn.h with gcc-3.3. + # Since those parts are perfectly usable by this gcc (and + # required for example by perl), we simply can reuse them. + # As libdl is in /usr/lib, we only need to copy dlfcn.h. + # When cross compiling for interix once, ensure that sysroot + # contains dlfcn.h. + cp /opt/gcc.3.3/include/dlfcn.h "${ED}${INCLUDEPATH}" \ + || die "Cannot gain /opt/gcc.3.3/include/dlfcn.h" + fi + + if [[ ${CTARGET} == *-interix3* ]]; then + # interix 3.5 has no stdint.h and no inttypes.h. This breaks + # so many packages, that i just install interix 5.2's stdint.h + # which should be ok. + cp "${FILESDIR}"/interix-3.5-stdint.h "${ED}${INCLUDEPATH}/stdint.h" \ + || die "Cannot install stdint.h for interix3" + fi + + # create a small profile.d script, unsetting some of the bad + # environment variables that the sustem could set from the outside. + # (GCC_SPECS, GCC_EXEC_PREFIX, CPATH, LIBRARY_PATH, LD_LIBRARY_PATH, + # C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, LIBPATH, SHLIB_PATH, LIB, INCLUDE, + # LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64). + # Maybe there is a better location for doing this ...? Feel free to move + # it there if you want to. + + cat > "${T}"/00-gcc-paths.sh <<- _EOF + #!/bin/env bash + # GCC specific variables + unset GCC_SPECS GCC_EXEC_PREFIX + # include path variables + unset CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH INCLUDE + # library path variables + unset LIBRARY_PATH LD_LIBRARY_PATH LIBPATH SHLIB_PATH LIB LD_LIBRARY_PATH_32 LD_LIBRARY_PATH_64 + _EOF + + insinto /etc/profile.d + doins "${T}"/00-gcc-paths.sh +} diff --git a/sys-devel/gcc/metadata.xml b/sys-devel/gcc/metadata.xml index cc0d5da..aff482f 100644 --- a/sys-devel/gcc/metadata.xml +++ b/sys-devel/gcc/metadata.xml @@ -29,5 +29,6 @@ Build support for the Objective C code language Garbage Collector Run the testsuite and install the results (requires FEATURES=test) + Build support various sanitizer functions (ASAN/TSAN/etc...)