Changeset - 3a1c3b8c67fb
[Not reviewed]
default
2 1 3
Nathan Brink (binki) - 14 years ago 2011-01-11 14:34:27
ohnobinki@ohnopublishing.net
sys-devel/gcc-config: Apply patch to remove support for CFLAGS_${ABI}, fixing bug 351384.

(Portage version: 2.2.0_alpha11-r1/hg/Linux x86_64, signed Manifest commit with key 6BA81050)
4 files changed with 118 insertions and 20 deletions:
0 comments (0 inline, 0 general)
sys-devel/gcc-config/Manifest
Show inline comments
 
@@ -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-----
sys-devel/gcc-config/files/wrapper-1.5.1-no-ABI.patch
Show inline comments
 
new file 100644
 
Author: Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
 
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);
sys-devel/gcc-config/gcc-config-1.4.1-r1.ebuild
Show inline comments
 
file renamed from sys-devel/gcc-config/gcc-config-1.4.1.ebuild to sys-devel/gcc-config/gcc-config-1.4.1-r1.ebuild
 
# 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() {
sys-devel/gcc-config/gcc-config-1.5-r1.ebuild
Show inline comments
 
file renamed from sys-devel/gcc-config/gcc-config-1.5.ebuild to sys-devel/gcc-config/gcc-config-1.5-r1.ebuild
 
# 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() {
0 comments (0 inline, 0 general)