Hello community, here is the log from the commit of package make for openSUSE:Factory checked in at 2012-08-31 09:42:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/make (Old) and /work/SRC/openSUSE:Factory/.make.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "make", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/make/make.changes 2012-04-17 22:00:00.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.make.new/make.changes 2012-08-31 09:42:15.000000000 +0200 @@ -1,0 +2,10 @@ +Wed Aug 8 13:33:19 UTC 2012 - [email protected] + +- Add make-arglength.patch: fix the argument list limit of GNU make +- Add make-parallel-build.patch: Fix parallel build issues present + in GNU make 3.82 +- Both patches taken from http://trac.webkit.org/browser/trunk/Tools/gtk/patches/ + are known by upstream and are mandatory to be able to build + libwebkit 1.9.6+. + +------------------------------------------------------------------- New: ---- make-arglength.patch make-parallel-build.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ make.spec ++++++ --- /var/tmp/diff_new_pack.SV17Zh/_old 2012-08-31 09:42:17.000000000 +0200 +++ /var/tmp/diff_new_pack.SV17Zh/_new 2012-08-31 09:42:17.000000000 +0200 @@ -32,6 +32,10 @@ Patch5: make-savannah-bug30612-handling_of_archives.diff Patch6: make-fix_whitespace_tokenization.diff Patch7: make-glob-faster.patch +# PATCH-FIX-UPSTREAM make-arglength.patch [email protected] -- http://article.gmane.org/gmane.comp.gnu.make.bugs/4219 +Patch8: make-arglength.patch +# PATCH-FIX-UPSTREAM make-parallel-build.patch [email protected] -- http://savannah.gnu.org/bugs/?30653 +Patch9: make-parallel-build.patch Patch64: make-library-search-path.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -46,6 +50,8 @@ %patch5 %patch6 -p1 %patch7 -p0 +%patch8 -p1 +%patch9 -p1 if [ %_lib == lib64 ]; then %patch64 fi ++++++ make-arglength.patch ++++++ diff -u make-3.82-orig/configure.in make-3.82/configure.in --- make-3.82-orig/configure.in 2010-07-28 07:39:50.000000000 +0200 +++ make-3.82/configure.in 2012-03-21 12:34:20.000000000 +0100 @@ -64,7 +64,8 @@ AC_HEADER_STAT AC_HEADER_TIME AC_CHECK_HEADERS(stdlib.h locale.h unistd.h limits.h fcntl.h string.h \ - memory.h sys/param.h sys/resource.h sys/time.h sys/timeb.h) + memory.h sys/param.h sys/resource.h sys/time.h sys/timeb.h \ + sys/user.h linux/binfmts.h) # Set a flag if we have an ANSI C compiler if test "$ac_cv_prog_cc_stdc" != no; then Subdirectorios comunes: make-3.82-orig/doc y make-3.82/doc Subdirectorios comunes: make-3.82-orig/glob y make-3.82/glob diff -u make-3.82-orig/job.c make-3.82/job.c --- make-3.82-orig/job.c 2010-07-24 10:27:50.000000000 +0200 +++ make-3.82/job.c 2012-03-21 12:34:20.000000000 +0100 @@ -29,6 +29,11 @@ #include <string.h> +#if defined (HAVE_LINUX_BINFMTS_H) && defined (HAVE_SYS_USER_H) +#include <sys/user.h> +#include <linux/binfmts.h> +#endif + /* Default shell to use. */ #ifdef WINDOWS32 #include <windows.h> @@ -2795,6 +2800,7 @@ unsigned int sflags_len = strlen (shellflags); char *command_ptr = NULL; /* used for batch_mode_shell mode */ char *new_line; + char *args_ptr; # ifdef __EMX__ /* is this necessary? */ if (!unixy_shell) @@ -2865,8 +2871,17 @@ return new_argv; } +#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 + 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; @@ -2875,6 +2890,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') @@ -2922,6 +2961,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. */ ++++++ make-parallel-build.patch ++++++ diff -u make-3.82-orig/remake.c make-3.82/remake.c --- make-3.82-orig/remake.c 2010-07-13 03:20:42.000000000 +0200 +++ make-3.82/remake.c 2012-03-21 12:47:52.000000000 +0100 @@ -301,7 +301,7 @@ /* Check for the case where a target has been tried and failed but the diagnostics hasn't been issued. If we need the diagnostics then we will have to continue. */ - if (!(f->updated && f->update_status > 0 && !f->dontcare && f->no_diag)) + if (!(f->updated && f->update_status > 0 && !f->dontcare && f->no_diag) && f->command_state!=cs_not_started ) { DBF (DB_VERBOSE, _("Pruning file `%s'.\n")); return f->command_state == cs_finished ? f->update_status : 0; @@ -614,6 +614,12 @@ d->file->dontcare = file->dontcare; } + /* We may have already encountered this file earlier in the same + * pass before we knew we'd be updating this target. In that + * case calling update_file now would result in the file being + * inappropriately pruned so we toggle the considered bit back + * off first. */ + d->file->considered = !considered; dep_status |= update_file (d->file, depth); -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
