diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-12-03 00:57:25 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-12-03 00:57:25 +0000 |
commit | fa662a73278e4706d608e0533884e3bd81190d50 (patch) | |
tree | 9b115d7630e247f127f1797e37a212b7fa4f1bec /sys-devel/make | |
parent | Add symlinks for libraries (diff) | |
download | historical-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/ChangeLog | 10 | ||||
-rw-r--r-- | sys-devel/make/Manifest | 17 | ||||
-rw-r--r-- | sys-devel/make/files/make-3.82-copy-on-expand.patch | 58 | ||||
-rw-r--r-- | sys-devel/make/files/make-3.82-long-cmdline.patch | 105 | ||||
-rw-r--r-- | sys-devel/make/files/make-3.82-oneshell.patch | 24 | ||||
-rw-r--r-- | sys-devel/make/files/make-3.82-parallel-remake.patch | 39 | ||||
-rw-r--r-- | sys-devel/make/make-3.82-r4.ebuild | 48 |
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 +} |