Files
qt5/gnuwin32/patches/win_flex.patch
Joerg Bornemann 9eefa9fb9a Fix parallel builds in WebKit
The parallel builds aborts because parallel execution of flex breaks
due to the usage of the same temporary file names. This stems from
using a hard coded temp file name "~flex_temp_out_main" and
"random numbers" based on constants in mkstempFILE.

Fixing those issues by embedding the current PID into the temp file
names. Patch is in gnuwin32/patches/win_flex.patch

Change-Id: I6c0cd499b3c9c35128280ec0fee5e450a9ca097f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-11-22 14:58:19 +01:00

48 lines
1.4 KiB
Diff

Index: flex/src/main.c
===================================================================
--- flex/src/main.c (revision 24)
+++ flex/src/main.c (working copy)
@@ -112,7 +112,7 @@
struct yytbl_writer tableswr;
int prev_stdout = 0;
-char *flex_temp_out_main="~flex_temp_out_main";
+char *flex_temp_out_main = 0;
/* Make sure program_name is initialized so we don't crash if writing
* out an error message before getting the program name from argv[0].
@@ -767,6 +767,8 @@
tblsiz);
}
+ free (flex_temp_out_main);
+ flex_temp_out_main = 0;
exit (exit_status);
}
@@ -779,8 +781,10 @@
{
int i, sawcmpflag, rv, optind;
char *arg;
+ char flex_temp_out_main_template[] = "~flex_temp_out_main_XXXXXX";
scanopt_t sopt;
+ flex_temp_out_main = _strdup(_mktemp(flex_temp_out_main_template));
printstats = syntaxerror = trace = spprdflt = false;
lex_compat = posix_compat = C_plus_plus = backing_up_report =
ddebug = fulltbl = false;
Index: flex/src/filter.c
===================================================================
--- flex/src/filter.c (revision 24)
+++ flex/src/filter.c (working copy)
@@ -86,7 +86,8 @@
/* Get some more or less random data. */
{
- static unsigned long long g_value = 827363;
+ static unsigned long long g_value;
+ g_value = _getpid();
g_value += 100;
random_time_bits = (((unsigned long long)234546 << 32)
| (unsigned long long)g_value);