diff --git a/sys-devel/gcc-config/Manifest b/sys-devel/gcc-config/Manifest --- a/sys-devel/gcc-config/Manifest +++ b/sys-devel/gcc-config/Manifest @@ -3,24 +3,25 @@ Hash: SHA256 AUX gcc-config-1.4.1 21711 RMD160 3879aab908d8aad237e8740e4ec63134453de623 SHA1 3ee0e58a1be0b75e03c4a153ede9350b4ba13859 SHA256 3050608f6cedb3c5d2b59f5dd3fd74411fd6398b5d89c4df4410d3d3e0f115dc AUX gcc-config-1.5 19397 RMD160 262d92b5466d0b70a6d0f17d47c3080ec2bb57e0 SHA1 89c532b361a083f45b5bfd505c9187ae5ae1fffd SHA256 f908c572da16959caefbe3e411845820180dcba34040584f49098939611d480b +AUX wrapper-1.5.1-no-ABI.patch 2893 RMD160 c986d6895d1471f9b873ff9bbf909da9dd6c4291 SHA1 906b2452a1f9e4b4d440af30b305fc1a7a3d7ffa SHA256 5fa469268405c55aa609c8a58751436147d4f153bf5893e5515cd036d21d489c AUX wrapper-1.5.1.c 9788 RMD160 b628944ee01dd772eb917cd08d13dc41bf58409f SHA1 51ac1f9419bc2230a9ce2196e70b5ee4ba61be18 SHA256 991981059fdcd0a9c76d73ff2ce576e553f37ae7d3b378b92ead553963f7339a -EBUILD gcc-config-1.4.1.ebuild 1642 RMD160 b6af302e3654e7dbf5aa808e0c037c66df810ae8 SHA1 b5853c35cf17285d852ef424f12bb1eb0f1b19ab SHA256 5ad070e899901f17a57a515829d83a243ae79ffe5dbe46999328139e13cc9d23 -EBUILD gcc-config-1.5.ebuild 1643 RMD160 e67c71ef5b9824e7d1394dad39a09312992e19e8 SHA1 051ff48881a19aec0b635ec4413c89116e4cb8c0 SHA256 4972b0ce2511fe468e0772801214c3e90c2b53bc54b42dda119a666f285875ae +EBUILD gcc-config-1.4.1-r1.ebuild 1714 RMD160 290de914656f43937ccbc2d3ce4b2674cc588184 SHA1 fa02009bc1c51bb6d76fd04b9fb56dcafc795e3e SHA256 bbb7370ef6a9f96e26cb1897ff1ed108545df670fe8a2d6792e5d8745bb742a3 +EBUILD gcc-config-1.5-r1.ebuild 1703 RMD160 6d90c089028d0a48b5cd985f0f64dec7cafd240a SHA1 13eccd26f0eded63909973420ec7f502646fc039 SHA256 40d4b77166f1400f4f7345d4882ba4fbb30e4fd01fc2bc8d1e30302064f920a5 MISC metadata.xml 162 RMD160 d002486a43522f2116b1d9d59828c484956d66e2 SHA1 d6b4923897f6ae673b4f93646f5b4ba61d5a2c3c SHA256 65a915d44de1f01d4b7f72d313b4192c38374a9835d24988c00c1e73dca5805a -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (GNU/Linux) -iQIcBAEBCAAGBQJNLKv9AAoJEHQ6UuhrqBBQfmgP/A9eeYn7JjPobjPug8PAvIc0 -pocNFMiu+EHhPFJvKFAXUe0Hjwn+LJ/OrCgnSMvdRiKdrkowqIXSVDQdSK1mu3C9 -Lw40xMX0ntnTTGwRe3Dt45UJ14ddhLFhkqx01qyKDeanVdRFe5f5ipp6OVopvjZ9 -FR5JlQk2+f5KiUBfPFArFtgSP6Fl18gm3BclaN2qLSBONAK0b2OOoFn8SseZnYjY -EO4SITB1kivyATsbjB1E61FlvYnAmpMw4zO5tT6r1U+vu3bnmSqLWaKASp3n+Esl -ri3OEyH35FhVwrjnPqvn+T+BxzChKCa2uHm5oE/y1d3OxAoW2pNBlWa/XuVThTEZ -5gM1HPlbRo1zmEVnEXR6wSFrW9G1o5ygkSkgNTpuxOOKpgsap5MH5nMPosbuNMYN -NhzgUSqmhYRQeUnwi0ltYAYw8wA9vGAae7EdtzwmEqkuOrojlRJwKZV5t9BaHTqY -m/f6Kimn4udiN6+HCm3CWw5XUpunTlOga4F/HMe/wn60EnFR782IHOvCLvkVSuXT -GVotWt+/nq+LAUZ+Svsc6eMkoyPHm2cDn3MsFkIagS+7TP8TPpVDHcuxfxsMDe9e -STxLupwKzzAnezhQ54qzH/CZahJ6vwvL71i+ePu6q9139iClxIBpGjBwOXDMME6o -MmnRtpjOsYv4Q1s0ED4X -=BnU4 +iQIcBAEBCAAGBQJNLLDCAAoJEHQ6UuhrqBBQ9TIP/0qSZNb1+mgLw9s05lStUlvI +sZ1E4uudH9CEqyhBXyAF/Q+gbN3wdWg5gCoUX4+vbgwo6zBScevJUq6wnHhlGpbN +x4U6sUSegDReVhP0kUOlK1vhVv4ecmT9hxJOZQ/D3nro54JrelgX3DjA2TBSL/o/ +kbqOdbpAzgAYzFjGI7K+z82ppTuu13C11hrkgL6JHFqF+Kznrt23mzOKMJk1nPlh +J3bng8hI689SNxppR2w1nvd4czYr6n40RWYZo3CKbY+3cDtQshpjjtnY0Un/Akdz +i3tYKYMArjLj9KgUfiHUwgCIjE6N4zGReugvcRD35jPy0rcFf7XOzva0IhGGUmdZ +ybpM4gKBjKqug95DA5lc2VsngBm4aABCoCwTYvBRwZU5OvBNJ5ymgyXMLcYHKSzS +e5sUXA31nvsC6z1B+RVEeQwJ7nuTAxYSuu8yOKFyzcRNkQSlundRZ9KtQh9SzNrW +uNwbD5MS3sfW+AIEDvjhBLHjzvc2uX5BnphaX1cEtGb6x3l5e5W4wFLLiUQctjMw +slvb3NZyreo+8Vp338dOAW8tc5ozjfAhy4lvG1c5fIrOO3/MKduRxt2coTG+31ld +i9jeGe/Hq8j94bUto4WlH6xKrATTSmUD9uWWlcWLOkJH/yvyGA8/p3OJUeDYvNkh +V3l8UxpInVLr0B4ePeut +=AEB4 -----END PGP SIGNATURE----- diff --git a/sys-devel/gcc-config/files/wrapper-1.5.1-no-ABI.patch b/sys-devel/gcc-config/files/wrapper-1.5.1-no-ABI.patch new file mode 100644 --- /dev/null +++ b/sys-devel/gcc-config/files/wrapper-1.5.1-no-ABI.patch @@ -0,0 +1,93 @@ +Author: Nathan Phillip Brink +Purpose: To stop gcc-config from adding on to gcc's commandline to + enforce that the environment variable ${CFLAGS_${ABI}} is + respected by GCC. This causes problems and makes debugging + compilation failures harder. See + https://bugs.gentoo.org/351384 . + +--- a/wrapper.c Tue Jan 11 13:27:08 2011 -0500 ++++ b/wrapper.c Tue Jan 11 14:14:39 2011 -0500 +@@ -62,7 +62,6 @@ + return ret; \ + } + xmemwrap(malloc, (size_t size), (size)) +-xmemwrap(calloc, (size_t nemb, size_t size), (nemb, size)) + xmemwrap(strdup, (const char *s), (s)) + + /* check_for_target checks in path for the file we are seeking +@@ -270,49 +270,6 @@ + putenv(newpath); + } + +-static char *abi_flags[] = { +- "-m32", "-m64", "-mabi", +-}; +-static char **build_new_argv(char **argv, const char *newflags_str) +-{ +-#define MAX_NEWFLAGS 32 +- char *newflags[MAX_NEWFLAGS]; +- char **retargv; +- unsigned int argc, i; +- char *state, *flags_tokenized; +- +- retargv = argv; +- +- /* make sure user hasn't specified any ABI flags already ... +- * if they have, lets just get out of here ... this of course +- * is by no means complete, it's merely a hack that works most +- * of the time ... +- */ +- for (argc = 0; argv[argc]; ++argc) +- for (i = 0; i < ARRAY_SIZE(abi_flags); ++i) +- if (!strncmp(argv[argc], abi_flags[i], strlen(abi_flags[i]))) +- return retargv; +- +- /* Tokenize the flag list and put it into newflags array */ +- flags_tokenized = xstrdup(newflags_str); +- i = 0; +- newflags[i] = strtok_r(flags_tokenized, " \t\n", &state); +- while (newflags[i] != NULL && i < MAX_NEWFLAGS-1) +- newflags[++i] = strtok_r(NULL, " \t\n", &state); +- +- /* allocate memory for our spiffy new argv */ +- retargv = xcalloc(argc + i + 1, sizeof(char*)); +- /* start building retargv */ +- retargv[0] = argv[0]; +- /* insert the ABI flags first so cmdline always overrides ABI flags */ +- memcpy(retargv+1, newflags, i * sizeof(char*)); +- /* copy over the old argv */ +- if (argc > 1) +- memcpy(retargv+1+i, argv+1, (argc-1) * sizeof(char*)); +- +- return retargv; +-} +- + int main(int argc, char *argv[]) + { + struct wrapper_data data; +@@ -347,23 +304,8 @@ + */ + argv[0] = data.bin; + +- /* If $ABI is in env, add appropriate env flags */ +- char **newargv = argv; +- if (getenv("ABI")) { +- char envvar[50]; +- +- /* We use CFLAGS_${ABI} for gcc, g++, g77, etc as the flags that would +- * be in there are the same no matter which compiler we are using. +- */ +- snprintf(envvar, sizeof(envvar), "CFLAGS_%s", getenv("ABI")); +- envvar[sizeof(envvar)-1] = '\0'; +- +- if (getenv(envvar)) +- newargv = build_new_argv(argv, getenv(envvar)); +- } +- +- /* Ok, lets do it one more time ... */ +- execv(data.bin, newargv); ++ /* Ok, let's do it one more time ... */ ++ execv(data.bin, argv); + + /* shouldn't have made it here if things worked ... */ + wrapper_err("could not run/locate '%s'", data.name); diff --git a/sys-devel/gcc-config/gcc-config-1.4.1.ebuild b/sys-devel/gcc-config/gcc-config-1.4.1-r1.ebuild rename from sys-devel/gcc-config/gcc-config-1.4.1.ebuild rename to sys-devel/gcc-config/gcc-config-1.4.1-r1.ebuild --- a/sys-devel/gcc-config/gcc-config-1.4.1.ebuild +++ b/sys-devel/gcc-config/gcc-config-1.4.1-r1.ebuild @@ -1,8 +1,8 @@ -# Copyright 1999-2009 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc-config/gcc-config-1.4.1.ebuild,v 1.9 2009/05/20 17:43:36 armin76 Exp $ -inherit flag-o-matic toolchain-funcs multilib +inherit eutils flag-o-matic toolchain-funcs multilib # Version of .c wrapper to use W_VER="1.5.1" @@ -13,7 +13,7 @@ SRC_URI="" LICENSE="GPL-2" SLOT="0" -KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc ~sparc-fbsd x86 ~x86-fbsd" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd" IUSE="" RDEPEND="!app-admin/eselect-compiler" @@ -22,6 +22,8 @@ S=${WORKDIR} src_unpack() { cp "${FILESDIR}"/wrapper-${W_VER}.c "${S}"/wrapper.c || die + + epatch "${FILESDIR}"/wrapper-${W_VER}-no-ABI.patch } src_compile() { diff --git a/sys-devel/gcc-config/gcc-config-1.5.ebuild b/sys-devel/gcc-config/gcc-config-1.5-r1.ebuild rename from sys-devel/gcc-config/gcc-config-1.5.ebuild rename to sys-devel/gcc-config/gcc-config-1.5-r1.ebuild --- a/sys-devel/gcc-config/gcc-config-1.5.ebuild +++ b/sys-devel/gcc-config/gcc-config-1.5-r1.ebuild @@ -1,8 +1,8 @@ -# Copyright 1999-2009 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc-config/gcc-config-1.5.ebuild,v 1.1 2009/12/20 19:55:21 vapier Exp $ -inherit flag-o-matic toolchain-funcs multilib +inherit eutils flag-o-matic toolchain-funcs multilib # Version of .c wrapper to use W_VER="1.5.1" @@ -22,6 +22,8 @@ S=${WORKDIR} src_unpack() { cp "${FILESDIR}"/wrapper-${W_VER}.c "${S}"/wrapper.c || die + + epatch "${FILESDIR}"/wrapper-${W_VER}-no-ABI.patch } src_compile() {