summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-12-03 00:57:25 +0000
committerMike Frysinger <vapier@gentoo.org>2011-12-03 00:57:25 +0000
commitfa662a73278e4706d608e0533884e3bd81190d50 (patch)
tree9b115d7630e247f127f1797e37a212b7fa4f1bec /sys-devel/make
parentAdd symlinks for libraries (diff)
downloadhistorical-fa662a73278e4706d608e0533884e3bd81190d50.tar.gz
historical-fa662a73278e4706d608e0533884e3bd81190d50.tar.bz2
historical-fa662a73278e4706d608e0533884e3bd81190d50.zip
Add some more fixes from upstream, and forward port the long cmdline patch from 3.81 #300867 by Alexander Vershilov.
Package-Manager: portage-2.2.0_alpha75/cvs/Linux x86_64
Diffstat (limited to 'sys-devel/make')
-rw-r--r--sys-devel/make/ChangeLog10
-rw-r--r--sys-devel/make/Manifest17
-rw-r--r--sys-devel/make/files/make-3.82-copy-on-expand.patch58
-rw-r--r--sys-devel/make/files/make-3.82-long-cmdline.patch105
-rw-r--r--sys-devel/make/files/make-3.82-oneshell.patch24
-rw-r--r--sys-devel/make/files/make-3.82-parallel-remake.patch39
-rw-r--r--sys-devel/make/make-3.82-r4.ebuild48
7 files changed, 299 insertions, 2 deletions
diff --git a/sys-devel/make/ChangeLog b/sys-devel/make/ChangeLog
index 85c84aeb77d9..b073b88310a1 100644
--- a/sys-devel/make/ChangeLog
+++ b/sys-devel/make/ChangeLog
@@ -1,6 +1,14 @@
# 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.91 2011/10/20 18:08:45 ranger Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/make/ChangeLog,v 1.92 2011/12/03 00:57:25 vapier Exp $
+
+*make-3.82-r4 (03 Dec 2011)
+
+ 03 Dec 2011; Mike Frysinger <vapier@gentoo.org> +make-3.82-r4.ebuild,
+ +files/make-3.82-copy-on-expand.patch, +files/make-3.82-long-cmdline.patch,
+ +files/make-3.82-oneshell.patch, +files/make-3.82-parallel-remake.patch:
+ Add some more fixes from upstream, and forward port the long cmdline patch
+ from 3.81 #300867 by Alexander Vershilov.
20 Oct 2011; Brent Baude <ranger@gentoo.org> make-3.82-r1.ebuild:
Marking make-3.82-r1 ppc for bug 381199
diff --git a/sys-devel/make/Manifest b/sys-devel/make/Manifest
index 4939fa8b8504..175b6e2922fa 100644
--- a/sys-devel/make/Manifest
+++ b/sys-devel/make/Manifest
@@ -1,3 +1,6 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
AUX 3.80-memory.patch 2248 RMD160 3c8d5c017c61061eb4d6f666799d377f1ba272ca SHA1 9e3f3d9c9fa7911dff14adbe46080e1326cf05f2 SHA256 0fa6d8b039fd56313626a3865cde7ef09622525a751ec55bf3741a6fc172091f
AUX make-3.80-conditional-eval.patch 4144 RMD160 f8755c6ea82cfc4cdc6675b2e462fb6438b9e569 SHA1 3320a4196e42a25a3f7f51a3f84859c49dea6683 SHA256 68f182f5435296b60acc710006bddf745bee6c37e68ae2942c778add93a40155
AUX make-3.80-parallel-build-failure.patch 2210 RMD160 5c7fe016fc854b017315bf22c6ddc1c600d4b99a SHA1 0b3f318ccf89aa660a0cc33c179bc58a62fbe378 SHA256 71f80dee56a04f30f2fe8bb9012d32ed830d2e0e9f68c183819c5ccf025c9b62
@@ -7,8 +10,12 @@ AUX make-3.81-tests-lang.patch 1788 RMD160 c62f231b9bb5fef003e91f9a48b76832bd75b
AUX make-3.81-tests-recursion.patch 514 RMD160 daa439bff160c9aa1efb447fcc39d1eb1319a2e5 SHA1 895a5bed190ca4b89055b450aca8f74730069239 SHA256 727a42dd884d296d421342f374b95ac05eeaef67c5f5efe755f1242944aab74b
AUX make-3.82-MAKEFLAGS-reexec.patch 456 RMD160 c4136e807e84e319f86ad889b6f64b213f31be9c SHA1 79318dd977711aa49532c236b922bd2a0c0d4b25 SHA256 0180a94ab07bb9c1348ab30301afcbbe382a281c4c6f143de16e3bea3d96e00c
AUX make-3.82-archives-many-objs.patch 2110 RMD160 aac9987dcc1d8c2b698b918c5e3900daaca65b4f SHA1 0920daaeb8f9fed7e3cb7f35c2dd6e41080c5848 SHA256 268db7c9e98f540ac9d5466bba17946f400463c1fd934d419e37fafaea7f0dd7
+AUX make-3.82-copy-on-expand.patch 1812 RMD160 cd2de578e23b266f9958e86b1851195bc1c512f2 SHA1 1de0e0038219a3b34458d3f16348c5448c6bfa4a SHA256 866a3942f9c747aecc5dd6c313f1fbd2f8f0b457a28197756c5713aefa45f543
AUX make-3.82-glob-speedup.patch 2833 RMD160 83c82320a8cd00b51f4b4a09a05970229353e36b SHA1 3fcc3243d0d2733b1b26c668ec33670109953a98 SHA256 525896b152bb314cbf3c465575394584305ded895429bf4ade919d69dedfec06
+AUX make-3.82-long-cmdline.patch 3004 RMD160 92820a099e261596fc7a169d191a6de1c960b456 SHA1 1c051e6b520e530a609067dcddd8d5daf04b29ff SHA256 60d886307ba5a52b4cf9455278310f89a653f465ede00518ce0bf77f6ddd391a
AUX make-3.82-memory-corruption.patch 899 RMD160 7764c4aaca43542caa5de2ec96ea9cee7d72501d SHA1 02a5b1413357ab105a01d83f3afcd86f70b9de8b SHA256 8bb84e638f40514045f0c57b0ee9da24024679f624614e4d954ce7e8f6414d3b
+AUX make-3.82-oneshell.patch 931 RMD160 2bdc4650604418813f6110dd0eca35a1b7062027 SHA1 e636d4d905476db93e2dabd83eafbe3295d4c894 SHA256 017bd61d9ed44a9cda3f7dc2c49d65be33b9b3a225580ad36e9caf5c8481f184
+AUX make-3.82-parallel-remake.patch 1422 RMD160 095e45fca2ccc3a3fc601b2f74b674b53d720332 SHA1 392189ac7b05b2cc6627f4544fb619f6db587653 SHA256 e2b63a63a44fb692798d237f888ad35a0899144fc5c6700270dee8ee455ac231
DIST make-3.80.tar.bz2 920645 RMD160 dcb61f3913d4d43caeef5b597ba2d4e1a03701aa SHA1 d2085842f08e57d58d3e1cd75a5f0342a60e5f45 SHA256 a99b39e7b04c333724f48c38fede709481cfb69fafe7e32ae4285b7fadf92f1b
DIST make-3.81.tar.bz2 1151445 RMD160 79d418e1258ec0d6ba08b1431a4ade3fec54c2b2 SHA1 41ed86d941b9c8025aee45db56c0283169dcab3d SHA256 f3e69023771e23908f5d5592954d8271d3d6af09693cecfd29cee6fde8550dc8
DIST make-3.82.tar.bz2 1242186 RMD160 e3d1f7019549553b9fc7a88884c9b85d25a60d21 SHA1 b8a8a99e4cb636a213aad3816dda827a92b9bbed SHA256 e2c1a73f179c40c71e2fe8abf8a8a0688b8499538512984da4a76958d0402966
@@ -18,6 +25,14 @@ EBUILD make-3.81-r2.ebuild 1300 RMD160 57e2697cf74c0a74c90b5e4c3850f786d76a8204
EBUILD make-3.81.ebuild 1133 RMD160 ab9336bdd8cdba6eb488d269872087a01c877574 SHA1 ffe4242b8a6ecbdb75c8b34114bcdd5047df9296 SHA256 b529e9eba4442a0b1a2b36b6d9dc5f799ef311c867be46422ed91660323d0549
EBUILD make-3.82-r1.ebuild 1241 RMD160 c4aaba1107aa0ae16cb47c8e127d434375376522 SHA1 207c275e24c57556e13ec880d8ea7fe944ed38be SHA256 b92f75c3bc7610a7d820754c50b6663e522e18b83fab713ee97f26a6f0d18234
EBUILD make-3.82-r3.ebuild 1306 RMD160 e440df7be9c2e4fe91a8052900501cdf0d5869ac SHA1 0054283775c7a0b97a844c1a645eed19fe134ece SHA256 2970b6408bb58a6b7ed2d3a45ab02e557c3cb987210a19ada8ff4f81e6b3b300
+EBUILD make-3.82-r4.ebuild 1486 RMD160 88089d4155d906148f81eea604b8c950b564b26f SHA1 5765071cc27490efb86b72c4a456500f8cab7bc6 SHA256 202a992e2c938dfa98b7f4bc80d91ea5ce601986fbdaa3d7401a4da21f93978f
EBUILD make-3.82.ebuild 1183 RMD160 79fa175c141d9cf62abed8fe8bef302b161a59fe SHA1 8aad4913216a6c47997990165635d3d09c9dc39a SHA256 1f2ca73bb4d269ad882400528a2eeb2e22fbcee64fb8a589b074009b5df6ea52
-MISC ChangeLog 11781 RMD160 484c533b18f7a6efe7f55bd1776b751a8d7c3ab4 SHA1 645591b6976afec7a040fc4c218a17700321f641 SHA256 cd932d5403c5923257faf3419122b295dc2cb6396e578935096f042955b02731
+MISC ChangeLog 12157 RMD160 e0f114a6ecbad173d547d5e55b2f430a4632c622 SHA1 30b83b0a283d5ba841e825424369fc91b62d8493 SHA256 2e9e1a2a4fa9686e514cf059983ee4c3be70ef841b42cc574c46413b34e7ec4f
MISC metadata.xml 164 RMD160 f43cbec30b7074319087c9acffdb9354b17b0db3 SHA1 9c213f5803676c56439df3716be07d6692588856 SHA256 f5f2891f2a4791cd31350bb2bb572131ad7235cd0eeb124c9912c187ac10ce92
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.18 (GNU/Linux)
+
+iF4EAREIAAYFAk7Zc/wACgkQaC/OocHi7JbkAgEAoV1a2ZSrvin9EyhlZNhNtdST
+iTl7uOY0kQChvxc3ifkBAIp9GE4MiXikINfa28CXpO4YVC1dnLtkg4U0I7ypQW4p
+=cSL1
+-----END PGP SIGNATURE-----
diff --git a/sys-devel/make/files/make-3.82-copy-on-expand.patch b/sys-devel/make/files/make-3.82-copy-on-expand.patch
new file mode 100644
index 000000000000..3f202b4db96b
--- /dev/null
+++ b/sys-devel/make/files/make-3.82-copy-on-expand.patch
@@ -0,0 +1,58 @@
+fix from upstream cvs
+
+----------------------------
+revision 1.58
+date: 2011-08-29 12:20:19 -0400; author: psmith; state: Exp; lines: +7 -13; commitid: MdH0jSxpuIy7mqxv;
+Save strings we're expanding in case an embedded eval causes them
+to be freed (if they're the value of a variable that's reset for example).
+See Savannah patch #7534
+
+Index: expand.c
+===================================================================
+RCS file: /sources/make/make/expand.c,v
+retrieving revision 1.57
+retrieving revision 1.58
+diff -u -p -r1.57 -r1.58
+--- expand.c 7 May 2011 20:03:49 -0000 1.57
++++ expand.c 29 Aug 2011 16:20:19 -0000 1.58
+@@ -197,7 +197,7 @@ variable_expand_string (char *line, cons
+ {
+ struct variable *v;
+ const char *p, *p1;
+- char *abuf = NULL;
++ char *save;
+ char *o;
+ unsigned int line_offset;
+
+@@ -212,16 +212,11 @@ variable_expand_string (char *line, cons
+ return (variable_buffer);
+ }
+
+- /* If we want a subset of the string, allocate a temporary buffer for it.
+- Most of the functions we use here don't work with length limits. */
+- if (length > 0 && string[length] != '\0')
+- {
+- abuf = xmalloc(length+1);
+- memcpy(abuf, string, length);
+- abuf[length] = '\0';
+- string = abuf;
+- }
+- p = string;
++ /* We need a copy of STRING: due to eval, it's possible that it will get
++ freed as we process it (it might be the value of a variable that's reset
++ for example). Also having a nil-terminated string is handy. */
++ save = length < 0 ? xstrdup (string) : xstrndup (string, length);
++ p = save;
+
+ while (1)
+ {
+@@ -411,8 +406,7 @@ variable_expand_string (char *line, cons
+ ++p;
+ }
+
+- if (abuf)
+- free (abuf);
++ free (save);
+
+ variable_buffer_output (o, "", 1);
+ return (variable_buffer + line_offset);
diff --git a/sys-devel/make/files/make-3.82-long-cmdline.patch b/sys-devel/make/files/make-3.82-long-cmdline.patch
new file mode 100644
index 000000000000..f8a3ccc56a42
--- /dev/null
+++ b/sys-devel/make/files/make-3.82-long-cmdline.patch
@@ -0,0 +1,105 @@
+http://bugs.gentoo.org/301116
+http://bugs.gentoo.org/300867
+
+tweaked a little to avoid regenerating autotools, then rebased onto make-3.82
+
+2009-07-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.in: Check for sys/user.h and linux/binfmts.h
+ headers.
+ * job.c: Include them if available.
+ (construct_command_argv_internal): When constructing the command
+ line with 'sh -c', use multiple arguments together with eval
+ expansion to evade the Linux per-argument length limit
+ MAX_ARG_STRLEN if it is defined.
+ Problem reported against Automake by Xan Lopez <xan@gnome.org>.
+
+--- job.c.orig 2010-01-15 18:36:53.000000000 +0200
++++ job.c 2010-01-15 18:41:09.000000000 +0200
+@@ -29,6 +29,15 @@
+
+ #include <string.h>
+
++#if defined(__linux__) /* defined (HAVE_LINUX_BINFMTS_H) && defined (HAVE_SYS_USER_H) */
++#include <sys/user.h>
++#include <unistd.h>
++#ifndef PAGE_SIZE
++#define PAGE_SIZE sysconf(_SC_PAGE_SIZE)
++#endif
++#include <linux/binfmts.h>
++#endif
++
+ /* Default shell to use. */
+ #ifdef WINDOWS32
+ #include <windows.h>
+@@ -2697,6 +2702,15 @@
+ argument list. */
+
+ unsigned int shell_len = strlen (shell);
++#ifdef MAX_ARG_STRLEN
++ static char eval_line[] = "eval\\ \\\"set\\ x\\;\\ shift\\;\\ ";
++#define ARG_NUMBER_DIGITS 5
++#define EVAL_LEN (sizeof(eval_line)-1 + shell_len + 4 \
++ + (7 + ARG_NUMBER_DIGITS) * 2 * line_len / (MAX_ARG_STRLEN - 2))
++#else
++#define EVAL_LEN 0
++#endif
++ char *args_ptr;
+ unsigned int line_len = strlen (line);
+ unsigned int sflags_len = strlen (shellflags);
+ char *command_ptr = NULL; /* used for batch_mode_shell mode */
+@@ -2700,7 +2700,7 @@
+ }
+
+ new_line = alloca (shell_len + 1 + sflags_len + 1
+- + (line_len*2) + 1);
++ + (line_len*2) + 1 + EVAL_LEN);
+ ap = new_line;
+ memcpy (ap, shell, shell_len);
+ ap += shell_len;
+@@ -2712,6 +2727,30 @@
+ ap += sflags_len;
+ *(ap++) = ' ';
+ command_ptr = ap;
++
++#if !defined (WINDOWS32) && defined (MAX_ARG_STRLEN)
++ if (unixy_shell && line_len > MAX_ARG_STRLEN)
++ {
++ unsigned j;
++ memcpy (ap, eval_line, sizeof (eval_line) - 1);
++ ap += sizeof (eval_line) - 1;
++ for (j = 1; j <= 2 * line_len / (MAX_ARG_STRLEN - 2); j++)
++ ap += sprintf (ap, "\\$\\{%u\\}", j);
++ *ap++ = '\\';
++ *ap++ = '"';
++ *ap++ = ' ';
++ /* Copy only the first word of SHELL to $0. */
++ for (p = shell; *p != '\0'; ++p)
++ {
++ if (isspace ((unsigned char)*p))
++ break;
++ *ap++ = *p;
++ }
++ *ap++ = ' ';
++ }
++#endif
++ args_ptr = ap;
++
+ for (p = line; *p != '\0'; ++p)
+ {
+ if (restp != NULL && *p == '\n')
+@@ -2760,6 +2799,14 @@
+ }
+ #endif
+ *ap++ = *p;
++
++#if !defined (WINDOWS32) && defined (MAX_ARG_STRLEN)
++ if (unixy_shell && line_len > MAX_ARG_STRLEN && (ap - args_ptr > MAX_ARG_STRLEN - 2))
++ {
++ *ap++ = ' ';
++ args_ptr = ap;
++ }
++#endif
+ }
+ if (ap == new_line + shell_len + sflags_len + 2)
+ /* Line was empty. */
diff --git a/sys-devel/make/files/make-3.82-oneshell.patch b/sys-devel/make/files/make-3.82-oneshell.patch
new file mode 100644
index 000000000000..fbade127ce61
--- /dev/null
+++ b/sys-devel/make/files/make-3.82-oneshell.patch
@@ -0,0 +1,24 @@
+fix from upstream cvs
+
+----------------------------
+revision 1.245
+date: 2010-08-13 22:50:14 -0400; author: psmith; state: Exp; lines: +1 -1; commitid: 4UaslPqQHZTs5wKu;
+- Add oneshell to $(.FEATURES) (forgot that!)
+
+Index: main.c
+===================================================================
+RCS file: /sources/make/make/main.c,v
+retrieving revision 1.244
+retrieving revision 1.245
+diff -u -p -r1.244 -r1.245
+--- main.c 10 Aug 2010 07:35:34 -0000 1.244
++++ main.c 14 Aug 2010 02:50:14 -0000 1.245
+@@ -1138,7 +1138,7 @@ main (int argc, char **argv, char **envp
+ a macro and some compilers (MSVC) don't like conditionals in macros. */
+ {
+ const char *features = "target-specific order-only second-expansion"
+- " else-if shortest-stem undefine"
++ " else-if shortest-stem undefine oneshell"
+ #ifndef NO_ARCHIVES
+ " archives"
+ #endif
diff --git a/sys-devel/make/files/make-3.82-parallel-remake.patch b/sys-devel/make/files/make-3.82-parallel-remake.patch
new file mode 100644
index 000000000000..a19fe7b7d629
--- /dev/null
+++ b/sys-devel/make/files/make-3.82-parallel-remake.patch
@@ -0,0 +1,39 @@
+fix from upstream cvs
+
+----------------------------
+revision 1.247
+date: 2011-09-18 19:39:26 -0400; author: psmith; state: Exp; lines: +5 -3; commitid: 07NxO4T5PiWC82Av;
+When we re-exec the master makefile in a jobserver environment, ensure
+that MAKEFLAGS is set properly so the re-exec'd make runs in parallel.
+See Savannah bug #33873.
+
+Index: main.c
+===================================================================
+RCS file: /sources/make/make/main.c,v
+retrieving revision 1.246
+retrieving revision 1.247
+diff -u -p -r1.246 -r1.247
+--- main.c 29 Aug 2010 23:05:27 -0000 1.246
++++ main.c 18 Sep 2011 23:39:26 -0000 1.247
+@@ -2089,6 +2089,11 @@ main (int argc, char **argv, char **envp
+
+ ++restarts;
+
++ /* If we're re-exec'ing the first make, put back the number of
++ job slots so define_makefiles() will get it right. */
++ if (master_job_slots)
++ job_slots = master_job_slots;
++
+ /* Reset makeflags in case they were changed. */
+ {
+ const char *pv = define_makeflags (1, 1);
+@@ -2825,9 +2830,6 @@ define_makeflags (int all, int makefile)
+ && (*(unsigned int *) cs->value_ptr ==
+ *(unsigned int *) cs->noarg_value))
+ ADD_FLAG ("", 0); /* Optional value omitted; see below. */
+- else if (cs->c == 'j')
+- /* Special case for `-j'. */
+- ADD_FLAG ("1", 1);
+ else
+ {
+ char *buf = alloca (30);
diff --git a/sys-devel/make/make-3.82-r4.ebuild b/sys-devel/make/make-3.82-r4.ebuild
new file mode 100644
index 000000000000..776e77572bc5
--- /dev/null
+++ b/sys-devel/make/make-3.82-r4.ebuild
@@ -0,0 +1,48 @@
+# 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-r4.ebuild,v 1.1 2011/12/03 00:57:25 vapier 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
+ epatch "${FILESDIR}"/${P}-glob-speedup.patch #382845
+ epatch "${FILESDIR}"/${P}-copy-on-expand.patch
+ epatch "${FILESDIR}"/${P}-oneshell.patch
+ epatch "${FILESDIR}"/${P}-parallel-remake.patch
+ epatch "${FILESDIR}"/${P}-long-cmdline.patch #300867 #301116
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ econf \
+ --program-prefix=g \
+ $(use_enable nls)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ 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
+}