diff options
Diffstat (limited to 'sys-devel')
-rw-r--r-- | sys-devel/make/ChangeLog | 11 | ||||
-rw-r--r-- | sys-devel/make/files/make-3.82-memory-corruption.patch | 37 | ||||
-rw-r--r-- | sys-devel/make/make-3.82-r1.ebuild | 43 |
3 files changed, 90 insertions, 1 deletions
diff --git a/sys-devel/make/ChangeLog b/sys-devel/make/ChangeLog index f88c4a373f34..dca736d8dc62 100644 --- a/sys-devel/make/ChangeLog +++ b/sys-devel/make/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for sys-devel/make # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/make/ChangeLog,v 1.80 2011/06/05 17:33:54 jer Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-devel/make/ChangeLog,v 1.81 2011/06/07 13:18:10 chainsaw Exp $ + +*make-3.82-r1 (07 Jun 2011) + + 07 Jun 2011; Tony Vroon <chainsaw@gentoo.org> +make-3.82-r1.ebuild, + +files/make-3.82-memory-corruption.patch: + Revision bump. Patch from upstream fixes memory corruption for + Android/Cyanogenmod builds; Savannah bug report #33125. As reported by blackd + in bug #355907; patch scavenged by Mike "SpanKY" Frysinger, additional + research by Peter "loki_val" Alfredsen & Samuli Suominen. 05 Jun 2011; Jeroen Roovers <jer@gentoo.org> make-3.82.ebuild: Stable for HPPA (bug #367265). diff --git a/sys-devel/make/files/make-3.82-memory-corruption.patch b/sys-devel/make/files/make-3.82-memory-corruption.patch new file mode 100644 index 000000000000..b28c07353ec2 --- /dev/null +++ b/sys-devel/make/files/make-3.82-memory-corruption.patch @@ -0,0 +1,37 @@ +--- function.c 2011/04/18 01:25:20 1.121 ++++ function.c 2011/05/02 12:35:01 1.122 +@@ -706,7 +706,7 @@ + const char *word_iterator = argv[0]; + char buf[20]; + +- while (find_next_token (&word_iterator, (unsigned int *) 0) != 0) ++ while (find_next_token (&word_iterator, NULL) != 0) + ++i; + + sprintf (buf, "%d", i); +@@ -1133,21 +1133,14 @@ + + /* Find the maximum number of words we'll have. */ + t = argv[0]; +- wordi = 1; +- while (*t != '\0') ++ wordi = 0; ++ while ((p = find_next_token (&t, NULL)) != 0) + { +- char c = *(t++); +- +- if (! isspace ((unsigned char)c)) +- continue; +- ++ ++t; + ++wordi; +- +- while (isspace ((unsigned char)*t)) +- ++t; + } + +- words = xmalloc (wordi * sizeof (char *)); ++ words = xmalloc ((wordi == 0 ? 1 : wordi) * sizeof (char *)); + + /* Now assign pointers to each string in the array. */ + t = argv[0]; diff --git a/sys-devel/make/make-3.82-r1.ebuild b/sys-devel/make/make-3.82-r1.ebuild new file mode 100644 index 000000000000..938c25b58c89 --- /dev/null +++ b/sys-devel/make/make-3.82-r1.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-devel/make/make-3.82-r1.ebuild,v 1.1 2011/06/07 13:18:10 chainsaw Exp $ + +EAPI="2" + +inherit flag-o-matic eutils + +DESCRIPTION="Standard tool to compile source trees" +HOMEPAGE="http://www.gnu.org/software/make/make.html" +SRC_URI="mirror://gnu//make/${P}.tar.bz2" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd" +IUSE="nls static" + +DEPEND="nls? ( sys-devel/gettext )" +RDEPEND="nls? ( virtual/libintl )" + +src_prepare() { + epatch "${FILESDIR}"/${P}-archives-many-objs.patch #334889 + epatch "${FILESDIR}"/${P}-MAKEFLAGS-reexec.patch #31975 + epatch "${FILESDIR}"/${P}-memory-corruption.patch #355907 +} + +src_configure() { + use static && append-ldflags -static + econf \ + --program-prefix=g \ + $(use_enable nls) +} + +src_install() { + emake DESTDIR="${D}" install || die "make install failed" + dodoc AUTHORS ChangeLog NEWS README* + if [[ ${USERLAND} == "GNU" ]] ; then + # we install everywhere as 'gmake' but on GNU systems, + # symlink 'make' to 'gmake' + dosym gmake /usr/bin/make + dosym gmake.1 /usr/share/man/man1/make.1 + fi +} |