RESOLVED FIXED 164973
Disable #line markers in bison output on Windows
https://bugs.webkit.org/show_bug.cgi?id=164973
Summary Disable #line markers in bison output on Windows
Konstantin Tokarev
Reported 2016-11-18 17:20:25 PST
New bison versions since 3.0 have bug that causes unescaped paths to be printed in #line directives. On Windows CMake passes absolute paths to bison that have backslashes in them, leading to compiler errors or warnings because of unrecognized escape sequences.
Attachments
Patch (1.58 KB, patch)
2016-11-18 17:22 PST, Konstantin Tokarev
darin: review+
Konstantin Tokarev
Comment 1 2016-11-18 17:22:15 PST
Darin Adler
Comment 2 2016-11-21 09:14:12 PST
Comment on attachment 295229 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=295229&action=review > Source/WebCore/css/makegrammar.pl:83 > -system("\"$bison\" -d -p $symbolsPrefix $grammarFilePath -o $fileBase.cpp"); > + > +my $extraArg = ""; > +if ($^O eq "MSWin32") { > + $extraArg = "--no-lines"; > +} > +system("\"$bison\" $extraArg -d -p $symbolsPrefix $grammarFilePath -o $fileBase.cpp"); Here's how I would write it: my @noLines = (); push @noLines, "--no-lines" if $^O eq "MSWin32"; # Work around bug in bison >= 3.0 on Windows where it puts backslashes into #line directives. system($bison, @noLines, "-d", "-p", $symbolsPrefix, $grammarFilePath, "-o", "$fileBase.cpp") == 0 or die;
Konstantin Tokarev
Comment 3 2016-11-21 09:39:59 PST
What about my @bisonCmd = ($bison, "-d", "-p", $symbolsPrefix, $grammarFilePath, "-o", $fileBase.cpp); push @bisonCmd, "--no-lines" if $^O eq "MSWin32"; # Work around bug in bison >= 3.0 on Windows where it puts backslashes into #line directives. system(@bisonCmd) == 0 or die; ?
Darin Adler
Comment 4 2016-11-21 09:42:16 PST
That seems fine. I would name it @bisonCommand, without abbreviating the word, though.
Darin Adler
Comment 5 2016-11-21 09:43:00 PST
(In reply to comment #3) > my @bisonCmd = ($bison, "-d", "-p", $symbolsPrefix, $grammarFilePath, > "-o", $fileBase.cpp); Need quotes around "$fileBase.cpp".
Konstantin Tokarev
Comment 6 2016-11-21 17:57:42 PST
Note You need to log in before you can comment on or make changes to this bug.