Title: [111749] trunk/Tools
Revision
111749
Author
k...@webkit.org
Date
2012-03-22 13:23:01 -0700 (Thu, 22 Mar 2012)

Log Message

[GTK] Add make to the jhbuild moduleset
https://bugs.webkit.org/show_bug.cgi?id=81769

Reviewed by Martin Robinson.

Mostly based on a patch by Carlos Garcia Campos <cgar...@igalia.com>.
Add GNU make with custom patches to fix several issues:

- make-3.82-arg-list-length.patch: Patch by Ralf Wildenhues to
  fix the argument list limit of GNU make when running make
  distcheck.
- make-3.82-parallel-build.patch: Patch by Kamil Mierzejewski
  and Jeremy Devenport to fix parallel build issues present in
  GNU make 3.82

* gtk/jhbuild.modules: Added make with patches.
* gtk/patches/make-3.82-arg-list-length.patch: Added.
* gtk/patches/make-3.82-parallel-build.patch: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/ChangeLog (111748 => 111749)


--- trunk/Tools/ChangeLog	2012-03-22 20:03:05 UTC (rev 111748)
+++ trunk/Tools/ChangeLog	2012-03-22 20:23:01 UTC (rev 111749)
@@ -1,3 +1,24 @@
+2012-03-22  Gustavo Noronha Silva  <g...@gnome.org>
+
+        [GTK] Add make to the jhbuild moduleset
+        https://bugs.webkit.org/show_bug.cgi?id=81769
+
+        Reviewed by Martin Robinson.
+
+        Mostly based on a patch by Carlos Garcia Campos <cgar...@igalia.com>.
+        Add GNU make with custom patches to fix several issues:
+
+        - make-3.82-arg-list-length.patch: Patch by Ralf Wildenhues to
+          fix the argument list limit of GNU make when running make
+          distcheck.
+        - make-3.82-parallel-build.patch: Patch by Kamil Mierzejewski
+          and Jeremy Devenport to fix parallel build issues present in
+          GNU make 3.82
+
+        * gtk/jhbuild.modules: Added make with patches.
+        * gtk/patches/make-3.82-arg-list-length.patch: Added.
+        * gtk/patches/make-3.82-parallel-build.patch: Added.
+
 2012-03-22  Kevin Ollivier  <kev...@theolliviers.com>
 
         [wx] Unreviewed. Adding Source/WTF to the build and updating

Modified: trunk/Tools/gtk/jhbuild.modules (111748 => 111749)


--- trunk/Tools/gtk/jhbuild.modules	2012-03-22 20:03:05 UTC (rev 111748)
+++ trunk/Tools/gtk/jhbuild.modules	2012-03-22 20:23:01 UTC (rev 111749)
@@ -5,6 +5,7 @@
 
   <metamodule id="webkitgtk-testing-dependencies">
     <dependencies>
+      <dep package="make"/>
       <dep package="cairo"/>
       <dep package="fonts"/>
       <dep package="fontconfig"/>
@@ -20,6 +21,8 @@
     </dependencies>
   </metamodule>
 
+  <repository type="tarball" name="ftp.gnu.org"
+      href=""
   <repository type="tarball" name="github.com"
       href=""
   <repository type="tarball" name="sourceware.org"
@@ -39,6 +42,15 @@
   <repository type="tarball" name="freedesktop.org"
       href=""
 
+  <autotools id="make" autogen-sh="configure">
+    <branch repo="ftp.gnu.org"
+            module="make/make-3.82.tar.bz2" version="3.82"
+            size="1242186" md5sum="1a11100f3c63fcf5753818e59d63088f">
+      <patch file="make-3.82-arg-list-length.patch" strip="1"/>
+      <patch file="make-3.82-parallel-build.patch" strip="1"/>
+    </branch>
+  </autotools>
+
   <autotools id="cairo" autogen-sh="configure">
     <dependencies>
       <dep package="pixman"/>

Added: trunk/Tools/gtk/patches/make-3.82-arg-list-length.patch (0 => 111749)


--- trunk/Tools/gtk/patches/make-3.82-arg-list-length.patch	                        (rev 0)
+++ trunk/Tools/gtk/patches/make-3.82-arg-list-length.patch	2012-03-22 20:23:01 UTC (rev 111749)
@@ -0,0 +1,104 @@
+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.  */
+

Added: trunk/Tools/gtk/patches/make-3.82-parallel-build.patch (0 => 111749)


--- trunk/Tools/gtk/patches/make-3.82-parallel-build.patch	                        (rev 0)
+++ trunk/Tools/gtk/patches/make-3.82-parallel-build.patch	2012-03-22 20:23:01 UTC (rev 111749)
@@ -0,0 +1,26 @@
+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);
+ 
+
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to