Title: [114569] trunk/Source/WebCore
Revision
114569
Author
[email protected]
Date
2012-04-18 15:29:02 -0700 (Wed, 18 Apr 2012)

Log Message

Win8 builds usually fail due to cygwin rebasing
https://bugs.webkit.org/show_bug.cgi?id=84274

Reviewed by Dirk Pranke.

Cygwin can fail to spawn children if the DLL is rebased. This happens
frequently enough on Windows 8 that we should retry on failure.

No new tests. No behavior changed.

* bindings/scripts/preprocessor.pm:
(applyPreprocessor):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (114568 => 114569)


--- trunk/Source/WebCore/ChangeLog	2012-04-18 22:03:44 UTC (rev 114568)
+++ trunk/Source/WebCore/ChangeLog	2012-04-18 22:29:02 UTC (rev 114569)
@@ -1,3 +1,18 @@
+2012-04-18  Justin Schuh  <[email protected]>
+
+        Win8 builds usually fail due to cygwin rebasing
+        https://bugs.webkit.org/show_bug.cgi?id=84274
+
+        Reviewed by Dirk Pranke.
+
+        Cygwin can fail to spawn children if the DLL is rebased. This happens
+        frequently enough on Windows 8 that we should retry on failure.
+
+        No new tests. No behavior changed.
+
+        * bindings/scripts/preprocessor.pm:
+        (applyPreprocessor):
+
 2012-04-18  Levi Weintraub  <[email protected]>
 
         Add explicit template instantiation to chromium/PopupListBox.cpp to prepare for sub-pixel layout

Modified: trunk/Source/WebCore/bindings/scripts/preprocessor.pm (114568 => 114569)


--- trunk/Source/WebCore/bindings/scripts/preprocessor.pm	2012-04-18 22:03:44 UTC (rev 114568)
+++ trunk/Source/WebCore/bindings/scripts/preprocessor.pm	2012-04-18 22:29:02 UTC (rev 114569)
@@ -21,6 +21,7 @@
 use strict;
 use warnings;
 
+use Config;
 use IPC::Open2;
 
 BEGIN {
@@ -60,7 +61,20 @@
     my @macros = grep { $_ } split(/\s+/, $defines); # grep skips empty macros.
     @macros = map { "-D$_" } @macros;
 
-    my $pid = open2(\*PP_OUT, \*PP_IN, split(' ', $preprocessor), @args, @macros, $fileName);
+    my $pid = 0;
+    if ($Config{osname} eq "cygwin") {
+        # This call can fail if Windows rebases cygwin, so retry a few times until it succeeds.
+        for (my $tries = 0; !$pid && ($tries < 20); $tries++) {
+            eval {
+                $pid = open2(\*PP_OUT, \*PP_IN, split(' ', $preprocessor), @args, @macros, $fileName);
+                1;
+            } or do {
+                sleep 1;
+            }
+        };
+    } else {
+        $pid = open2(\*PP_OUT, \*PP_IN, split(' ', $preprocessor), @args, @macros, $fileName);
+    }
     close PP_IN;
     my @documentContent = <PP_OUT>;
     close PP_OUT;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to