diff options
Diffstat (limited to 'sys-devel/make')
27 files changed, 1364 insertions, 0 deletions
diff --git a/sys-devel/make/Manifest b/sys-devel/make/Manifest new file mode 100644 index 00000000000..67dadb7a680 --- /dev/null +++ b/sys-devel/make/Manifest @@ -0,0 +1,5 @@ +DIST make-3.80.tar.bz2 920645 SHA256 a99b39e7b04c333724f48c38fede709481cfb69fafe7e32ae4285b7fadf92f1b +DIST make-3.81.tar.bz2 1151445 SHA256 f3e69023771e23908f5d5592954d8271d3d6af09693cecfd29cee6fde8550dc8 SHA512 f38b8219a966b4756149a13435f5b9dc760814aa62c6add8e1760e602f65a83cd0a45ed457a5dbdd2fab91043af4de2c60e62154f95c6b625af3703c824eb653 WHIRLPOOL 39d33b8b9136a3a8cf732fe8f437729ab5d487dc3e6dca0cad6dcdea256eec799d19c6c8d2591c3b526e7bd4fdd901ca7eb1d9e77e525454a3e52e17fd181ce7 +DIST make-3.82.tar.bz2 1242186 SHA256 e2c1a73f179c40c71e2fe8abf8a8a0688b8499538512984da4a76958d0402966 SHA512 3260be0d1a9a7c5eb0dbb87179a9a9521fdfc7809ca51f13ee5a37ba5e63d21ad50a4249ec7d3929a9d0ce8c8f6cf302558743964f0f7ff742efe283b91df9de WHIRLPOOL 0b6b5f95f33e0e5584cddad234afb2350bbf62f2a9c280703345100eba7867d80412cbe1b22f429eb32db43dd37e665e0f136d0262ee3f030cf384f77e99d1cb +DIST make-4.0.tar.bz2 1341927 SHA256 e60686c7afede62cc8c86ad3012cf081ea4887daf9d223ce7115703b2bb2dbdb SHA512 82de265963cd08701491e02a4917cd2097762657257a9508119e5847050d0cb15580c163159463e822860435c5910190677d8e4aba644ba75df2895f26117376 WHIRLPOOL 96984c0493651bf27db3ddd6fadde25678e512d4d134fd7063cc5cd54bff6228543c98463835940e19e1cc79a67e22067c889efd460b355438670a4d42ce0d09 +DIST make-4.1.tar.bz2 1327342 SHA256 0bc7613389650ee6a24554b52572a272f7356164fd2c4132b0bcf13123e4fca5 SHA512 3fcaf06660b7a5019937b81ee69fe54cdfe0a24d66286fc5cc6a34fa996d76dfe6fd5bc49ee59b727ae2b24ddca261ada0fdb5873ba2b38dcc63647ad3cdb193 WHIRLPOOL 992ae4e6dc5e82bb4dc1b5c0840fbc519769114e61233c2d1cf9badfd0cf52a618fde290cef6cdc13d6c098aea9a67c414655513acefb1d44b031e14fe43d544 diff --git a/sys-devel/make/files/3.80-memory.patch b/sys-devel/make/files/3.80-memory.patch new file mode 100644 index 00000000000..663acf52d77 --- /dev/null +++ b/sys-devel/make/files/3.80-memory.patch @@ -0,0 +1,77 @@ +Index: variable.h +=================================================================== +RCS file: /cvsroot/make/make/variable.h,v +retrieving revision 1.24 +diff -u -B -b -r1.24 variable.h +--- variable.h 8 Aug 2002 00:11:19 -0000 1.24 ++++ variable.h 25 Oct 2002 21:37:32 -0000 +@@ -107,6 +107,8 @@ + extern char *expand_argument PARAMS ((char *str, char *end)); + extern char *variable_expand_string PARAMS ((char *line, char *string, + long length)); ++extern void install_variable_buffer PARAMS ((char **bufp, unsigned int *lenp)); ++extern void restore_variable_buffer PARAMS ((char *buf, unsigned int len)); + + /* function.c */ + extern int handle_function PARAMS ((char **op, char **stringp)); +Index: expand.c +=================================================================== +RCS file: /cvsroot/make/make/expand.c,v +retrieving revision 1.33 +diff -u -B -b -r1.33 expand.c +--- expand.c 14 Oct 2002 21:54:04 -0000 1.33 ++++ expand.c 25 Oct 2002 21:37:32 -0000 +@@ -545,3 +545,28 @@ + + return value; + } ++ ++/* Install a new variable_buffer context, returning the current one for ++ safe-keeping. */ ++ ++void ++install_variable_buffer (char **bufp, unsigned int *lenp) ++{ ++ *bufp = variable_buffer; ++ *lenp = variable_buffer_length; ++ ++ variable_buffer = 0; ++ initialize_variable_output (); ++} ++ ++/* Restore a previously-saved variable_buffer setting (free the current one). ++ */ ++ ++void ++restore_variable_buffer (char *buf, unsigned int len) ++{ ++ free (variable_buffer); ++ ++ variable_buffer = buf; ++ variable_buffer_length = len; ++} +Index: function.c +=================================================================== +RCS file: /cvsroot/make/make/function.c,v +retrieving revision 1.71 +diff -u -B -b -r1.71 function.c +--- function.c 14 Oct 2002 21:54:04 -0000 1.71 ++++ function.c 25 Oct 2002 21:37:32 -0000 +@@ -1196,7 +1196,17 @@ + static char * + func_eval (char *o, char **argv, const char *funcname) + { ++ char *buf; ++ unsigned int len; ++ ++ /* Eval the buffer. Pop the current variable buffer setting so that the ++ eval'd code can use its own without conflicting. */ ++ ++ install_variable_buffer (&buf, &len); ++ + eval_buffer (argv[0]); ++ ++ restore_variable_buffer (buf, len); + + return o; + }
\ No newline at end of file diff --git a/sys-devel/make/files/make-3.80-conditional-eval.patch b/sys-devel/make/files/make-3.80-conditional-eval.patch new file mode 100644 index 00000000000..f4c1581f316 --- /dev/null +++ b/sys-devel/make/files/make-3.80-conditional-eval.patch @@ -0,0 +1,157 @@ +Fix from upstream + +https://savannah.gnu.org/bugs/index.php?func=detailitem&item_id=1516 +http://bugs.gentoo.org/123317 + +Index: read.c +=================================================================== +RCS file: /cvsroot/make/make/read.c,v +retrieving revision 1.124 +retrieving revision 1.125 +diff -u -p -r1.124 -r1.125 +--- read.c 14 Oct 2002 21:54:04 -0000 1.124 ++++ read.c 25 Oct 2002 22:01:47 -0000 1.125 +@@ -272,6 +272,34 @@ read_all_makefiles (char **makefiles) + return read_makefiles; + } + ++/* Install a new conditional and return the previous one. */ ++ ++static struct conditionals * ++install_conditionals (struct conditionals *new) ++{ ++ struct conditionals *save = conditionals; ++ ++ bzero ((char *) new, sizeof (*new)); ++ conditionals = new; ++ ++ return save; ++} ++ ++/* Free the current conditionals and reinstate a saved one. */ ++ ++static void ++restore_conditionals (struct conditionals *saved) ++{ ++ /* Free any space allocated by conditional_line. */ ++ if (conditionals->ignoring) ++ free (conditionals->ignoring); ++ if (conditionals->seen_else) ++ free (conditionals->seen_else); ++ ++ /* Restore state. */ ++ conditionals = saved; ++} ++ + static int + eval_makefile (char *filename, int flags) + { +@@ -388,6 +416,8 @@ int + eval_buffer (char *buffer) + { + struct ebuffer ebuf; ++ struct conditionals *saved; ++ struct conditionals new; + const struct floc *curfile; + int r; + +@@ -402,8 +432,12 @@ eval_buffer (char *buffer) + curfile = reading_file; + reading_file = &ebuf.floc; + ++ saved = install_conditionals (&new); ++ + r = eval (&ebuf, 1); + ++ restore_conditionals (saved); ++ + reading_file = curfile; + + return r; +@@ -412,13 +446,8 @@ eval_buffer (char *buffer) + + /* Read file FILENAME as a makefile and add its contents to the data base. + +- SET_DEFAULT is true if we are allowed to set the default goal. ++ SET_DEFAULT is true if we are allowed to set the default goal. */ + +- FILENAME is added to the `read_makefiles' chain. +- +- Returns 0 if a file was not found or not read. +- Returns 1 if FILENAME was found and read. +- Returns 2 if FILENAME was read, and we kept a reference (don't free it). */ + + static int + eval (struct ebuffer *ebuf, int set_default) +@@ -782,9 +811,7 @@ eval (struct ebuffer *ebuf, int set_defa + + /* Save the state of conditionals and start + the included makefile with a clean slate. */ +- save = conditionals; +- bzero ((char *) &new_conditionals, sizeof new_conditionals); +- conditionals = &new_conditionals; ++ save = install_conditionals (&new_conditionals); + + /* Record the rules that are waiting so they will determine + the default goal before those in the included makefile. */ +@@ -810,14 +837,8 @@ eval (struct ebuffer *ebuf, int set_defa + } + } + +- /* Free any space allocated by conditional_line. */ +- if (conditionals->ignoring) +- free (conditionals->ignoring); +- if (conditionals->seen_else) +- free (conditionals->seen_else); +- +- /* Restore state. */ +- conditionals = save; ++ /* Restore conditional state. */ ++ restore_conditionals (save); + + goto rule_complete; + } +Index: tests/scripts/functions/eval +=================================================================== +RCS file: /cvsroot/make/make/tests/scripts/functions/eval,v +retrieving revision 1.1 +retrieving revision 1.2 +diff -u -p -r1.1 -r1.2 +--- tests/scripts/functions/eval 8 Jul 2002 02:26:48 -0000 1.1 ++++ tests/scripts/functions/eval 25 Oct 2002 22:01:47 -0000 1.2 +@@ -57,4 +57,35 @@ $answer = "A = A B = B\n"; + + &compare_output($answer,&get_logfile(1)); + ++# Test to make sure eval'ing inside conditionals works properly ++ ++$makefile3 = &get_tmpfile; ++ ++open(MAKEFILE,"> $makefile3"); ++ ++print MAKEFILE <<'EOF'; ++FOO = foo ++ ++all:: ; @echo it ++ ++define Y ++ all:: ; @echo worked ++endef ++ ++ifdef BAR ++$(eval $(Y)) ++endif ++ ++EOF ++ ++close(MAKEFILE); ++ ++&run_make_with_options($makefile3, "", &get_logfile); ++$answer = "it\n"; ++&compare_output($answer,&get_logfile(1)); ++ ++&run_make_with_options($makefile3, "BAR=1", &get_logfile); ++$answer = "it\nworked\n"; ++&compare_output($answer,&get_logfile(1)); ++ + 1; diff --git a/sys-devel/make/files/make-3.80-parallel-build-failure.patch b/sys-devel/make/files/make-3.80-parallel-build-failure.patch new file mode 100644 index 00000000000..717e0f3556c --- /dev/null +++ b/sys-devel/make/files/make-3.80-parallel-build-failure.patch @@ -0,0 +1,59 @@ +http://lists.gnu.org/archive/html/bug-make/2005-07/msg00050.html +http://lists.gnu.org/archive/html/bug-make/2005-08/msg00019.html +http://bugs.gentoo.org/107613 + +2005-08-07 Paul D. Smith <psmith@gnu.org> + + Fix a bug reported by Michael Matz <matz@suse.de>: patch included. + If make is running in parallel without -k and two jobs die in a + row, but not too close to each other, then make will quit without + waiting for the rest of the jobs to die. + + * main.c (die): Don't reset err before calling reap_children() the + second time: we still want it to be in the error condition. + * job.c (reap_children): Use a static variable, rather than err, + to control whether or not the error message should be printed. + +Index: job.c +=================================================================== +RCS file: /cvsroot/make/make/job.c,v +retrieving revision 1.166 +retrieving revision 1.167 +diff -u -p -r1.166 -r1.167 +--- job.c 26 Jun 2005 03:31:30 -0000 1.166 ++++ job.c 8 Aug 2005 05:08:00 -0000 1.167 +@@ -475,9 +479,14 @@ reap_children (int block, int err) + + if (err && block) + { +- /* We might block for a while, so let the user know why. */ ++ static int printed = 0; ++ ++ /* We might block for a while, so let the user know why. ++ Only print this message once no matter how many jobs are left. */ + fflush (stdout); +- error (NILF, _("*** Waiting for unfinished jobs....")); ++ if (!printed) ++ error (NILF, _("*** Waiting for unfinished jobs....")); ++ printed = 1; + } + + /* We have one less dead child to reap. As noted in +Index: main.c +=================================================================== +RCS file: /cvsroot/make/make/main.c,v +retrieving revision 1.210 +retrieving revision 1.211 +diff -u -p -r1.210 -r1.211 +--- main.c 12 Jul 2005 04:35:13 -0000 1.210 ++++ main.c 8 Aug 2005 05:08:00 -0000 1.211 +@@ -2990,7 +2996,8 @@ die (int status) + print_version (); + + /* Wait for children to die. */ +- for (err = (status != 0); job_slots_used > 0; err = 0) ++ err = (status != 0); ++ while (job_slots_used > 0) + reap_children (1, err); + + /* Let the remote job module clean up its state. */ diff --git a/sys-devel/make/files/make-3.81-jobserver.patch b/sys-devel/make/files/make-3.81-jobserver.patch new file mode 100644 index 00000000000..cd787ca769d --- /dev/null +++ b/sys-devel/make/files/make-3.81-jobserver.patch @@ -0,0 +1,19 @@ +related to bug #193258, but this is the final patch that Fedora went with + +--- make-3.81/main.c 2007-09-24 15:28:34.000000000 +0200 ++++ make-3.81-pm/main.c 2007-09-24 15:32:50.000000000 +0200 +@@ -1669,8 +1669,12 @@ main (int argc, char **argv, char **envp + + if (job_slots > 0) + { +- close (job_fds[0]); +- close (job_fds[1]); ++ if (restarts == 0) ++ { ++ close (job_fds[0]); ++ close (job_fds[1]); ++ } ++ + job_fds[0] = job_fds[1] = -1; + free (jobserver_fds->list); + free (jobserver_fds); diff --git a/sys-devel/make/files/make-3.81-long-cmdline.patch b/sys-devel/make/files/make-3.81-long-cmdline.patch new file mode 100644 index 00000000000..9ceb5e8195e --- /dev/null +++ b/sys-devel/make/files/make-3.81-long-cmdline.patch @@ -0,0 +1,100 @@ +http://bugs.gentoo.org/301116 + +tweaked a little to avoid regenerating autotools + +2009-07-29 Ralf Wildenhues <Ralf.Wildenhues <at> 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 <at> 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,9 +2702,19 @@ + #endif + unsigned int line_len = strlen (line); + ++#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 *new_line = (char *) alloca (shell_len + (sizeof (minus_c) - 1) +- + (line_len * 2) + 1); ++ + (line_len*2) + 1 + EVAL_LEN); ++ + char *command_ptr = NULL; /* used for batch_mode_shell mode */ ++ char *args_ptr; + + # ifdef __EMX__ /* is this necessary? */ + if (!unixy_shell) +@@ -2712,6 +2727,30 @@ + bcopy (minus_c, ap, sizeof (minus_c) - 1); + ap += sizeof (minus_c) - 1; + 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 + sizeof (minus_c) - 1) + /* Line was empty. */ diff --git a/sys-devel/make/files/make-3.81-tests-lang.patch b/sys-devel/make/files/make-3.81-tests-lang.patch new file mode 100644 index 00000000000..f4e514712a0 --- /dev/null +++ b/sys-devel/make/files/make-3.81-tests-lang.patch @@ -0,0 +1,55 @@ +Fix from upstream for running tests when LC_ALL is set to non-C + +http://bugs.gentoo.org/149147 + +Index: make/tests/run_make_tests.pl +=================================================================== +RCS file: /cvsroot/make/make/tests/run_make_tests.pl,v +retrieving revision 1.22 +retrieving revision 1.23 +diff -u -p -r1.22 -r1.23 +--- make/tests/run_make_tests.pl 8 Mar 2006 20:15:09 -0000 1.22 ++++ make/tests/run_make_tests.pl 1 Oct 2006 05:38:38 -0000 1.23 +@@ -228,11 +228,6 @@ sub set_more_defaults + local($string); + local($index); + +- # Make sure we're in the C locale for those systems that support it, +- # so sorting, etc. is predictable. +- # +- $ENV{LANG} = 'C'; +- + # find the type of the port. We do this up front to have a single + # point of change if it needs to be tweaked. + # +Index: make/tests/test_driver.pl +=================================================================== +RCS file: /cvsroot/make/make/tests/test_driver.pl,v +retrieving revision 1.19 +retrieving revision 1.20 +diff -u -p -r1.19 -r1.20 +--- make/tests/test_driver.pl 10 Mar 2006 02:20:45 -0000 1.19 ++++ make/tests/test_driver.pl 1 Oct 2006 05:38:38 -0000 1.20 +@@ -78,9 +78,9 @@ sub resetENV + sub toplevel + { + # Pull in benign variables from the user's environment +- # ++ + foreach (# UNIX-specific things +- 'TZ', 'LANG', 'TMPDIR', 'HOME', 'USER', 'LOGNAME', 'PATH', ++ 'TZ', 'TMPDIR', 'HOME', 'USER', 'LOGNAME', 'PATH', + # Purify things + 'PURIFYOPTIONS', + # Windows NT-specific stuff +@@ -92,6 +92,10 @@ sub toplevel + $makeENV{$_} = $ENV{$_} if $ENV{$_}; + } + ++ # Make sure our compares are not foiled by locale differences ++ ++ $makeENV{LC_ALL} = 'C'; ++ + # Replace the environment with the new one + # + %origENV = %ENV; diff --git a/sys-devel/make/files/make-3.81-tests-recursion.patch b/sys-devel/make/files/make-3.81-tests-recursion.patch new file mode 100644 index 00000000000..490e2a912cd --- /dev/null +++ b/sys-devel/make/files/make-3.81-tests-recursion.patch @@ -0,0 +1,14 @@ +http://bugs.gentoo.org/329153 +https://savannah.gnu.org/bugs/index.php?29968 + +--- tests/scripts/features/recursion 2005/02/10 00:10:58 1.2 ++++ tests/scripts/features/recursion 2010/07/01 07:16:00 1.3 +@@ -16,7 +16,7 @@ + @echo MAKELEVEL = $(MAKELEVEL) + @echo THE END + ', +- ('CFLAGS=-O -w' . ($parallel_jobs ? '-j 2' : '')), ++ ('CFLAGS=-O -w' . ($parallel_jobs ? ' -j 2' : '')), + ($vos + ? "#MAKE#: Entering directory `#PWD#' + make 'CFLAGS=-O' -f #MAKEFILE# foo diff --git a/sys-devel/make/files/make-3.82-MAKEFLAGS-reexec.patch b/sys-devel/make/files/make-3.82-MAKEFLAGS-reexec.patch new file mode 100644 index 00000000000..a2f59657d4c --- /dev/null +++ b/sys-devel/make/files/make-3.82-MAKEFLAGS-reexec.patch @@ -0,0 +1,14 @@ +http://bugs.gentoo.org/331975 +https://savannah.gnu.org/bugs/?30723 + +--- main.c 2010/07/19 07:10:53 1.243 ++++ main.c 2010/08/10 07:35:34 1.244 +@@ -2093,7 +2093,7 @@ + const char *pv = define_makeflags (1, 1); + char *p = alloca (sizeof ("MAKEFLAGS=") + strlen (pv) + 1); + sprintf (p, "MAKEFLAGS=%s", pv); +- putenv (p); ++ putenv (allocated_variable_expand (p)); + } + + if (ISDB (DB_BASIC)) diff --git a/sys-devel/make/files/make-3.82-archives-many-objs.patch b/sys-devel/make/files/make-3.82-archives-many-objs.patch new file mode 100644 index 00000000000..abdcd322801 --- /dev/null +++ b/sys-devel/make/files/make-3.82-archives-many-objs.patch @@ -0,0 +1,60 @@ +http://bugs.gentoo.org/334889 +https://savannah.gnu.org/bugs/?30612 + +revision 1.194 +date: 2010-08-13 22:50:14 -0400; author: psmith; state: Exp; lines: +9 -6; commitid: 4UaslPqQHZTs5wKu; +- Fix Savannah bug #30612: handling of archive references with >1 object + +Index: read.c +=================================================================== +RCS file: /sources/make/make/read.c,v +retrieving revision 1.193 +retrieving revision 1.194 +diff -u -p -r1.193 -r1.194 +--- read.c 13 Jul 2010 01:20:42 -0000 1.193 ++++ read.c 14 Aug 2010 02:50:14 -0000 1.194 +@@ -3028,7 +3028,7 @@ parse_file_seq (char **stringp, unsigned + { + /* This looks like the first element in an open archive group. + A valid group MUST have ')' as the last character. */ +- const char *e = p + nlen; ++ const char *e = p; + do + { + e = next_token (e); +@@ -3084,19 +3084,19 @@ parse_file_seq (char **stringp, unsigned + Go to the next item in the string. */ + if (flags & PARSEFS_NOGLOB) + { +- NEWELT (concat (2, prefix, tp)); ++ NEWELT (concat (2, prefix, tmpbuf)); + continue; + } + + /* If we get here we know we're doing glob expansion. + TP is a string in tmpbuf. NLEN is no longer used. + We may need to do more work: after this NAME will be set. */ +- name = tp; ++ name = tmpbuf; + + /* Expand tilde if applicable. */ +- if (tp[0] == '~') ++ if (tmpbuf[0] == '~') + { +- tildep = tilde_expand (tp); ++ tildep = tilde_expand (tmpbuf); + if (tildep != 0) + name = tildep; + } +@@ -3152,7 +3152,10 @@ parse_file_seq (char **stringp, unsigned + else + { + /* We got a chain of items. Attach them. */ +- (*newp)->next = found; ++ if (*newp) ++ (*newp)->next = found; ++ else ++ *newp = found; + + /* Find and set the new end. Massage names if necessary. */ + while (1) diff --git a/sys-devel/make/files/make-3.82-construct-command-line.patch b/sys-devel/make/files/make-3.82-construct-command-line.patch new file mode 100644 index 00000000000..c504c45291b --- /dev/null +++ b/sys-devel/make/files/make-3.82-construct-command-line.patch @@ -0,0 +1,71 @@ +https://savannah.gnu.org/bugs/?23922 + +From 6f3684710a0f832533191f8657a57bc2fbba90ba Mon Sep 17 00:00:00 2001 +From: eliz <eliz> +Date: Sat, 7 May 2011 08:29:13 +0000 +Subject: [PATCH] job.c (construct_command_argv_internal): Don't assume + shellflags is always non-NULL. Escape-protect characters + special to the shell when copying the value of SHELL into + new_line. Fixes Savannah bug #23922. + +--- + ChangeLog | 7 +++++++ + job.c | 23 ++++++++++++++++------- + 2 files changed, 23 insertions(+), 7 deletions(-) + +diff --git a/job.c b/job.c +index 67b402d..c2ce84d 100644 +--- a/job.c ++++ b/job.c +@@ -2844,12 +2844,12 @@ construct_command_argv_internal (char *line, char **restp, char *shell, + + unsigned int shell_len = strlen (shell); + unsigned int line_len = strlen (line); +- unsigned int sflags_len = strlen (shellflags); ++ unsigned int sflags_len = shellflags ? strlen (shellflags) : 0; + char *command_ptr = NULL; /* used for batch_mode_shell mode */ + char *new_line; + + # ifdef __EMX__ /* is this necessary? */ +- if (!unixy_shell) ++ if (!unixy_shell && shellflags) + shellflags[0] = '/'; /* "/c" */ + # endif + +@@ -2911,19 +2911,28 @@ construct_command_argv_internal (char *line, char **restp, char *shell, + + new_argv = xmalloc (4 * sizeof (char *)); + new_argv[0] = xstrdup(shell); +- new_argv[1] = xstrdup(shellflags); ++ new_argv[1] = xstrdup(shellflags ? shellflags : ""); + new_argv[2] = line; + new_argv[3] = NULL; + return new_argv; + } + +- new_line = alloca (shell_len + 1 + sflags_len + 1 ++ new_line = alloca ((shell_len*2) + 1 + sflags_len + 1 + + (line_len*2) + 1); + ap = new_line; +- memcpy (ap, shell, shell_len); +- ap += shell_len; ++ /* Copy SHELL, escaping any characters special to the shell. If ++ we don't escape them, construct_command_argv_internal will ++ recursively call itself ad nauseam, or until stack overflow, ++ whichever happens first. */ ++ for (p = shell; *p != '\0'; ++p) ++ { ++ if (strchr (sh_chars, *p) != 0) ++ *(ap++) = '\\'; ++ *(ap++) = *p; ++ } + *(ap++) = ' '; +- memcpy (ap, shellflags, sflags_len); ++ if (shellflags) ++ memcpy (ap, shellflags, sflags_len); + ap += sflags_len; + *(ap++) = ' '; + command_ptr = ap; +-- +1.7.12 + 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 00000000000..3f202b4db96 --- /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-darwin-library_search-dylib.patch b/sys-devel/make/files/make-3.82-darwin-library_search-dylib.patch new file mode 100644 index 00000000000..de7e4f61521 --- /dev/null +++ b/sys-devel/make/files/make-3.82-darwin-library_search-dylib.patch @@ -0,0 +1,17 @@ +Fixed default libpatttern on Darwin, imported from prefix overlay. +Got merged upstream: +https://savannah.gnu.org/bugs/?37197 +--- default.c.orig 2009-05-02 12:25:24 +0200 ++++ default.c 2009-05-02 12:25:58 +0200 +@@ -509,7 +509,11 @@ + #ifdef __MSDOS__ + ".LIBPATTERNS", "lib%.a $(DJDIR)/lib/lib%.a", + #else ++#ifdef __APPLE__ ++ ".LIBPATTERNS", "lib%.dylib lib%.a", ++#else + ".LIBPATTERNS", "lib%.so lib%.a", ++#endif + #endif + #endif + diff --git a/sys-devel/make/files/make-3.82-glob-speedup.patch b/sys-devel/make/files/make-3.82-glob-speedup.patch new file mode 100644 index 00000000000..c826c2c0e1f --- /dev/null +++ b/sys-devel/make/files/make-3.82-glob-speedup.patch @@ -0,0 +1,104 @@ +change from upstream to speed up by skipping unused globs +https://bugs.gentoo.org/382845 + +http://cvs.savannah.gnu.org/viewvc/make/read.c?root=make&r1=1.198&r2=1.200 + +Revision 1.200 +Sat May 7 14:36:12 2011 UTC (4 months, 1 week ago) by psmith +Branch: MAIN +Changes since 1.199: +1 -1 lines +Inverted the boolean test from what I wanted it to be. Added a +regression test to make sure this continues to work. + +Revision 1.199 +Mon May 2 00:18:06 2011 UTC (4 months, 2 weeks ago) by psmith +Branch: MAIN +Changes since 1.198: +35 -25 lines +Avoid invoking glob() unless the filename has potential globbing +characters in it, for performance improvements. + +--- a/read.c 2011/04/29 15:27:39 1.198 ++++ b/read.c 2011/05/07 14:36:12 1.200 +@@ -2901,6 +2901,7 @@ + const char *name; + const char **nlist = 0; + char *tildep = 0; ++ int globme = 1; + #ifndef NO_ARCHIVES + char *arname = 0; + char *memname = 0; +@@ -3109,32 +3110,40 @@ + } + #endif /* !NO_ARCHIVES */ + +- switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl)) +- { +- case GLOB_NOSPACE: +- fatal (NILF, _("virtual memory exhausted")); +- +- case 0: +- /* Success. */ +- i = gl.gl_pathc; +- nlist = (const char **)gl.gl_pathv; +- break; +- +- case GLOB_NOMATCH: +- /* If we want only existing items, skip this one. */ +- if (flags & PARSEFS_EXISTS) +- { +- i = 0; +- break; +- } +- /* FALLTHROUGH */ +- +- default: +- /* By default keep this name. */ ++ /* glob() is expensive: don't call it unless we need to. */ ++ if (!(flags & PARSEFS_EXISTS) && strpbrk (name, "?*[") == NULL) ++ { ++ globme = 0; + i = 1; + nlist = &name; +- break; +- } ++ } ++ else ++ switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl)) ++ { ++ case GLOB_NOSPACE: ++ fatal (NILF, _("virtual memory exhausted")); ++ ++ case 0: ++ /* Success. */ ++ i = gl.gl_pathc; ++ nlist = (const char **)gl.gl_pathv; ++ break; ++ ++ case GLOB_NOMATCH: ++ /* If we want only existing items, skip this one. */ ++ if (flags & PARSEFS_EXISTS) ++ { ++ i = 0; ++ break; ++ } ++ /* FALLTHROUGH */ ++ ++ default: ++ /* By default keep this name. */ ++ i = 1; ++ nlist = &name; ++ break; ++ } + + /* For each matched element, add it to the list. */ + while (i-- > 0) +@@ -3174,7 +3183,8 @@ + #endif /* !NO_ARCHIVES */ + NEWELT (concat (2, prefix, nlist[i])); + +- globfree (&gl); ++ if (globme) ++ globfree (&gl); + + #ifndef NO_ARCHIVES + if (arname) diff --git a/sys-devel/make/files/make-3.82-intermediate-parallel.patch b/sys-devel/make/files/make-3.82-intermediate-parallel.patch new file mode 100644 index 00000000000..df9b8d475b9 --- /dev/null +++ b/sys-devel/make/files/make-3.82-intermediate-parallel.patch @@ -0,0 +1,62 @@ +https://savannah.gnu.org/bugs/?30653 +https://bugs.gentoo.org/431250 + +From d1ba0ee36b2bdd91434b5df90f0f4cceda7d6979 Mon Sep 17 00:00:00 2001 +From: psmith <psmith> +Date: Mon, 10 Sep 2012 02:36:05 +0000 +Subject: [PATCH] Force intermediate targets to be considered if their + non-intermediate parent needs to be remade. Fixes Savannah + bug #30653. + +--- + ChangeLog | 4 ++++ + remake.c | 4 ++++ + tests/scripts/features/parallelism | 17 +++++++++++++++++ + 3 files changed, 25 insertions(+) + +diff --git a/remake.c b/remake.c +index c0bf709..b1ddd23 100644 +--- a/remake.c ++++ b/remake.c +@@ -612,6 +612,10 @@ update_file_1 (struct file *file, unsigned int depth) + d->file->dontcare = file->dontcare; + } + ++ /* We may have already considered this file, when we didn't know ++ we'd need to update it. Force update_file() to consider it and ++ not prune it. */ ++ d->file->considered = !considered; + + dep_status |= update_file (d->file, depth); + +diff --git a/tests/scripts/features/parallelism b/tests/scripts/features/parallelism +index d4250f0..76d24a7 100644 +--- a/tests/scripts/features/parallelism ++++ b/tests/scripts/features/parallelism +@@ -214,6 +214,23 @@ rm main.x"); + rmfiles(qw(foo.y foo.y.in main.bar)); + } + ++# Ensure intermediate/secondary files are not pruned incorrectly. ++# See Savannah bug #30653 ++ ++utouch(-15, 'file2'); ++utouch(-10, 'file4'); ++utouch(-5, 'file1'); ++ ++run_make_test(q! ++.INTERMEDIATE: file3 ++file4: file3 ; @mv -f $< $@ ++file3: file2 ; touch $@ ++file2: file1 ; @touch $@ ++!, ++ '--no-print-directory -j2', "touch file3"); ++ ++#rmfiles('file1', 'file2', 'file3', 'file4'); ++ + if ($all_tests) { + # Jobserver FD handling is messed up in some way. + # Savannah bug #28189 +-- +1.7.12 + diff --git a/sys-devel/make/files/make-3.82-long-command-line.patch b/sys-devel/make/files/make-3.82-long-command-line.patch new file mode 100644 index 00000000000..9266786e4da --- /dev/null +++ b/sys-devel/make/files/make-3.82-long-command-line.patch @@ -0,0 +1,54 @@ +https://savannah.gnu.org/bugs/?36451 + +From a95796de3a491d8acfc8ea94c217b90531161786 Mon Sep 17 00:00:00 2001 +From: psmith <psmith> +Date: Sun, 9 Sep 2012 23:25:07 +0000 +Subject: [PATCH] Keep the command line on the heap to avoid stack overflow. + Fixes Savannah bug #36451. + +--- + ChangeLog | 3 +++ + job.c | 13 +++++++++---- + 2 files changed, 12 insertions(+), 4 deletions(-) + +diff --git a/job.c b/job.c +index 754576b..f7b7d51 100644 +--- a/job.c ++++ b/job.c +@@ -2984,8 +2984,8 @@ construct_command_argv_internal (char *line, char **restp, char *shell, + return new_argv; + } + +- new_line = alloca ((shell_len*2) + 1 + sflags_len + 1 +- + (line_len*2) + 1); ++ new_line = xmalloc ((shell_len*2) + 1 + sflags_len + 1 ++ + (line_len*2) + 1); + ap = new_line; + /* Copy SHELL, escaping any characters special to the shell. If + we don't escape them, construct_command_argv_internal will +@@ -3052,8 +3052,11 @@ construct_command_argv_internal (char *line, char **restp, char *shell, + *ap++ = *p; + } + if (ap == new_line + shell_len + sflags_len + 2) +- /* Line was empty. */ +- return 0; ++ { ++ /* Line was empty. */ ++ free (new_line); ++ return 0; ++ } + *ap = '\0'; + + #ifdef WINDOWS32 +@@ -3194,6 +3197,8 @@ construct_command_argv_internal (char *line, char **restp, char *shell, + fatal (NILF, _("%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"), + __FILE__, __LINE__); + #endif ++ ++ free (new_line); + } + #endif /* ! AMIGA */ + +-- +1.7.12 + 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 00000000000..b28c07353ec --- /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/files/make-3.82-oneshell.patch b/sys-devel/make/files/make-3.82-oneshell.patch new file mode 100644 index 00000000000..fbade127ce6 --- /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 00000000000..a19fe7b7d62 --- /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/files/make-4.0-char-cast.patch b/sys-devel/make/files/make-4.0-char-cast.patch new file mode 100644 index 00000000000..86505be5da4 --- /dev/null +++ b/sys-devel/make/files/make-4.0-char-cast.patch @@ -0,0 +1,46 @@ +http://savannah.gnu.org/bugs/?40371 +http://git.savannah.gnu.org/cgit/make.git/commit/?id=9d58570c + +From 9d58570c77240fed53d1f88217877f8e778f4bb2 Mon Sep 17 00:00:00 2001 +From: Paul Smith <psmith@gnu.org> +Date: Sat, 26 Oct 2013 04:10:17 +0000 +Subject: * makeint.h (STOP_SET): [SV 40371] Cast to unsigned char. + +* tests/scripts/misc/utf8: Test variable names with characters >127. +Fix suggested by Robert Bogomip <bob.bogo@milohedge.com> +--- +diff --git a/makeint.h b/makeint.h +index 77f51e0..c591427 100644 +--- a/makeint.h ++++ b/makeint.h +@@ -415,7 +415,7 @@ extern int unixy_shell; + # define MAP_VMSCOMMA 0x0000 + #endif + +-#define STOP_SET(_v,_m) ANY_SET (stopchar_map[(int)(_v)],(_m)) ++#define STOP_SET(_v,_m) ANY_SET (stopchar_map[(unsigned char)(_v)],(_m)) + + #if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) + # define SET_STACK_SIZE +diff --git a/tests/scripts/misc/utf8 b/tests/scripts/misc/utf8 +new file mode 100644 +index 0000000..2adcd07 +--- a/dev/null ++++ b/tests/scripts/misc/utf8 +@@ -0,0 +1,14 @@ ++# -*-perl-*- ++$description = "Test utf8 handling."; ++ ++$details = ""; ++ ++# Variable names containing UTF8 characters ++run_make_test(" ++\xe2\x96\xaa := hello ++\$(info \$(\xe2\x96\xaa)) ++all: ++", ++ '', "hello\n#MAKE#: Nothing to be done for 'all'."); ++ ++1; +-- +cgit v0.9.0.2 diff --git a/sys-devel/make/files/make-4.1-fix_null_returns_from_ttyname.patch b/sys-devel/make/files/make-4.1-fix_null_returns_from_ttyname.patch new file mode 100644 index 00000000000..f6be5c9f06a --- /dev/null +++ b/sys-devel/make/files/make-4.1-fix_null_returns_from_ttyname.patch @@ -0,0 +1,53 @@ +From 292da6f6867b75a5af7ddbb639a1feae022f438f Mon Sep 17 00:00:00 2001 +From: Paul Smith <psmith@gnu.org> +Date: Mon, 20 Oct 2014 05:54:56 +0000 +Subject: * main.c (main): [SV 43434] Handle NULL returns from ttyname(). + +--- +diff --git a/main.c b/main.c +index b2d169c..0cdb8a8 100644 +--- a/main.c ++++ b/main.c +@@ -1429,13 +1429,18 @@ main (int argc, char **argv, char **envp) + #ifdef HAVE_ISATTY + if (isatty (fileno (stdout))) + if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMOUT"))) +- define_variable_cname ("MAKE_TERMOUT", TTYNAME (fileno (stdout)), +- o_default, 0)->export = v_export; +- ++ { ++ const char *tty = TTYNAME (fileno (stdout)); ++ define_variable_cname ("MAKE_TERMOUT", tty ? tty : DEFAULT_TTYNAME, ++ o_default, 0)->export = v_export; ++ } + if (isatty (fileno (stderr))) + if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMERR"))) +- define_variable_cname ("MAKE_TERMERR", TTYNAME (fileno (stderr)), +- o_default, 0)->export = v_export; ++ { ++ const char *tty = TTYNAME (fileno (stderr)); ++ define_variable_cname ("MAKE_TERMERR", tty ? tty : DEFAULT_TTYNAME, ++ o_default, 0)->export = v_export; ++ } + #endif + + /* Reset in case the switches changed our minds. */ +diff --git a/makeint.h b/makeint.h +index 6223936..2009f41 100644 +--- a/makeint.h ++++ b/makeint.h +@@ -436,10 +436,11 @@ extern struct rlimit stack_limit; + /* The number of bytes needed to represent the largest integer as a string. */ + #define INTSTR_LENGTH CSTRLEN ("18446744073709551616") + ++#define DEFAULT_TTYNAME "true" + #ifdef HAVE_TTYNAME + # define TTYNAME(_f) ttyname (_f) + #else +-# define TTYNAME(_f) "true" ++# define TTYNAME(_f) DEFAULT_TTYNAME + #endif + + +-- +cgit v0.9.0.2 diff --git a/sys-devel/make/make-3.80-r4.ebuild b/sys-devel/make/make-3.80-r4.ebuild new file mode 100644 index 00000000000..38854b2e174 --- /dev/null +++ b/sys-devel/make/make-3.80-r4.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit eutils flag-o-matic + +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-2" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd" +IUSE="nls static" + +DEPEND="nls? ( sys-devel/gettext )" +RDEPEND="" + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/${PV}-memory.patch + epatch "${FILESDIR}"/${P}-parallel-build-failure.patch + epatch "${FILESDIR}"/${P}-conditional-eval.patch #123317 +} + +src_compile() { + use static && append-ldflags -static + econf \ + $(use_enable nls) \ + --program-prefix=g \ + || die + emake || die +} + +src_install() { + emake DESTDIR="${D}" install || die "make install failed" + dodoc AUTHORS ChangeLog NEWS README* + if [[ ${USERLAND} == "GNU" ]] ; then + dosym gmake /usr/bin/make + dosym gmake.1 /usr/share/man/man1/make.1 + fi +} diff --git a/sys-devel/make/make-3.81-r2.ebuild b/sys-devel/make/make-3.81-r2.ebuild new file mode 100644 index 00000000000..f4683e0dc6e --- /dev/null +++ b/sys-devel/make/make-3.81-r2.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +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-2" +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_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/${P}-tests-lang.patch + epatch "${FILESDIR}"/${P}-long-cmdline.patch #301116 + epatch "${FILESDIR}"/${P}-tests-recursion.patch #329153 + epatch "${FILESDIR}"/${P}-jobserver.patch #193258 +} + +src_compile() { + use static && append-ldflags -static + econf \ + $(use_enable nls) \ + --program-prefix=g \ + || die + emake || die +} + +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 +} 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 00000000000..79f2c14b3c0 --- /dev/null +++ b/sys-devel/make/make-3.82-r4.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +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 arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +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}-intermediate-parallel.patch #431250 + epatch "${FILESDIR}"/${P}-construct-command-line.patch + epatch "${FILESDIR}"/${P}-long-command-line.patch + epatch "${FILESDIR}"/${P}-darwin-library_search-dylib.patch +} + +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 +} diff --git a/sys-devel/make/make-4.0-r1.ebuild b/sys-devel/make/make-4.0-r1.ebuild new file mode 100644 index 00000000000..5e9857c593e --- /dev/null +++ b/sys-devel/make/make-4.0-r1.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 + +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 arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="guile nls static" + +CDEPEND="guile? ( >=dev-scheme/guile-1.8 )" +DEPEND="${CDEPEND} + nls? ( sys-devel/gettext )" +RDEPEND="${CDEPEND} + nls? ( virtual/libintl )" + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-3.82-darwin-library_search-dylib.patch \ + "${FILESDIR}"/${P}-char-cast.patch +} + +src_configure() { + use static && append-ldflags -static + econf \ + --program-prefix=g \ + $(use_with guile) \ + $(use_enable nls) +} + +src_install() { + emake DESTDIR="${D}" install + 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 +} diff --git a/sys-devel/make/make-4.1-r1.ebuild b/sys-devel/make/make-4.1-r1.ebuild new file mode 100644 index 00000000000..6bad17dfaab --- /dev/null +++ b/sys-devel/make/make-4.1-r1.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 + +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 arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="guile nls static" + +CDEPEND="guile? ( >=dev-scheme/guile-1.8 )" +DEPEND="${CDEPEND} + nls? ( sys-devel/gettext )" +RDEPEND="${CDEPEND} + nls? ( virtual/libintl )" + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-3.82-darwin-library_search-dylib.patch \ + "${FILESDIR}"/${P}-fix_null_returns_from_ttyname.patch +} + +src_configure() { + use static && append-ldflags -static + econf \ + --program-prefix=g \ + $(use_with guile) \ + $(use_enable nls) +} + +src_install() { + emake DESTDIR="${D}" install + dodoc AUTHORS 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 +} diff --git a/sys-devel/make/metadata.xml b/sys-devel/make/metadata.xml new file mode 100644 index 00000000000..96a2d586367 --- /dev/null +++ b/sys-devel/make/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>base-system</herd> +</pkgmetadata> |