From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- sys-devel/make/files/3.80-memory.patch | 77 ++++++++++ .../make/files/make-3.80-conditional-eval.patch | 157 +++++++++++++++++++++ .../files/make-3.80-parallel-build-failure.patch | 59 ++++++++ sys-devel/make/files/make-3.81-jobserver.patch | 19 +++ sys-devel/make/files/make-3.81-long-cmdline.patch | 100 +++++++++++++ sys-devel/make/files/make-3.81-tests-lang.patch | 55 ++++++++ .../make/files/make-3.81-tests-recursion.patch | 14 ++ .../make/files/make-3.82-MAKEFLAGS-reexec.patch | 14 ++ .../make/files/make-3.82-archives-many-objs.patch | 60 ++++++++ .../files/make-3.82-construct-command-line.patch | 71 ++++++++++ .../make/files/make-3.82-copy-on-expand.patch | 58 ++++++++ .../make-3.82-darwin-library_search-dylib.patch | 17 +++ sys-devel/make/files/make-3.82-glob-speedup.patch | 104 ++++++++++++++ .../files/make-3.82-intermediate-parallel.patch | 62 ++++++++ .../make/files/make-3.82-long-command-line.patch | 54 +++++++ .../make/files/make-3.82-memory-corruption.patch | 37 +++++ sys-devel/make/files/make-3.82-oneshell.patch | 24 ++++ .../make/files/make-3.82-parallel-remake.patch | 39 +++++ sys-devel/make/files/make-4.0-char-cast.patch | 46 ++++++ .../make-4.1-fix_null_returns_from_ttyname.patch | 53 +++++++ sys-devel/make/files/make-4.2-default-cxx.patch | 13 ++ 21 files changed, 1133 insertions(+) create mode 100644 sys-devel/make/files/3.80-memory.patch create mode 100644 sys-devel/make/files/make-3.80-conditional-eval.patch create mode 100644 sys-devel/make/files/make-3.80-parallel-build-failure.patch create mode 100644 sys-devel/make/files/make-3.81-jobserver.patch create mode 100644 sys-devel/make/files/make-3.81-long-cmdline.patch create mode 100644 sys-devel/make/files/make-3.81-tests-lang.patch create mode 100644 sys-devel/make/files/make-3.81-tests-recursion.patch create mode 100644 sys-devel/make/files/make-3.82-MAKEFLAGS-reexec.patch create mode 100644 sys-devel/make/files/make-3.82-archives-many-objs.patch create mode 100644 sys-devel/make/files/make-3.82-construct-command-line.patch create mode 100644 sys-devel/make/files/make-3.82-copy-on-expand.patch create mode 100644 sys-devel/make/files/make-3.82-darwin-library_search-dylib.patch create mode 100644 sys-devel/make/files/make-3.82-glob-speedup.patch create mode 100644 sys-devel/make/files/make-3.82-intermediate-parallel.patch create mode 100644 sys-devel/make/files/make-3.82-long-command-line.patch create mode 100644 sys-devel/make/files/make-3.82-memory-corruption.patch create mode 100644 sys-devel/make/files/make-3.82-oneshell.patch create mode 100644 sys-devel/make/files/make-3.82-parallel-remake.patch create mode 100644 sys-devel/make/files/make-4.0-char-cast.patch create mode 100644 sys-devel/make/files/make-4.1-fix_null_returns_from_ttyname.patch create mode 100644 sys-devel/make/files/make-4.2-default-cxx.patch (limited to 'sys-devel/make/files') 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 000000000000..663acf52d77c --- /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 000000000000..f4c1581f316f --- /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 000000000000..717e0f3556ce --- /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 + + Fix a bug reported by Michael Matz : 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 000000000000..cd787ca769d2 --- /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 000000000000..9ceb5e8195e2 --- /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 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 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 + ++#if defined(__linux__) /* defined (HAVE_LINUX_BINFMTS_H) && defined (HAVE_SYS_USER_H) */ ++#include ++#include ++#ifndef PAGE_SIZE ++#define PAGE_SIZE sysconf(_SC_PAGE_SIZE) ++#endif ++#include ++#endif ++ + /* Default shell to use. */ + #ifdef WINDOWS32 + #include +@@ -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 000000000000..f4e514712a0e --- /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 000000000000..490e2a912cd8 --- /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 000000000000..a2f59657d4ca --- /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 000000000000..abdcd3228014 --- /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 000000000000..c504c45291ba --- /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 +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 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-darwin-library_search-dylib.patch b/sys-devel/make/files/make-3.82-darwin-library_search-dylib.patch new file mode 100644 index 000000000000..de7e4f615212 --- /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 000000000000..c826c2c0e1fa --- /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 000000000000..df9b8d475b95 --- /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 +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 000000000000..9266786e4da7 --- /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 +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 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/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/files/make-4.0-char-cast.patch b/sys-devel/make/files/make-4.0-char-cast.patch new file mode 100644 index 000000000000..129f54092047 --- /dev/null +++ b/sys-devel/make/files/make-4.0-char-cast.patch @@ -0,0 +1,46 @@ +https://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 +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 +--- +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 000000000000..f6be5c9f06af --- /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 +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/files/make-4.2-default-cxx.patch b/sys-devel/make/files/make-4.2-default-cxx.patch new file mode 100644 index 000000000000..4d592086a6ff --- /dev/null +++ b/sys-devel/make/files/make-4.2-default-cxx.patch @@ -0,0 +1,13 @@ +diff --git a/default.c b/default.c +index 3d865c7..e8b3ed6 100644 +--- a/default.c ++++ b/default.c +@@ -530,7 +530,7 @@ static const char *default_variables[] = + "OBJC", "gcc", + #else + "CC", "cc", +- "CXX", "g++", ++ "CXX", "c++", + "OBJC", "cc", + #endif + -- cgit v1.2.3