Summary: | ODR violations caused by ANGLE and WebCore's use of bison | ||
---|---|---|---|
Product: | WebKit | Reporter: | Michael Catanzaro <mcatanzaro> |
Component: | ANGLE | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW --- | ||
Severity: | Normal | CC: | dino, geofflang, jonahr, kbr, kkinnunen, kpiddington, mcatanzaro, sam, webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | PC | ||
OS: | Linux | ||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=229867 | ||
Bug Depends on: | 220896 | ||
Bug Blocks: |
Description
Michael Catanzaro
2021-11-11 11:45:48 PST
ANGLE generated files come from ANGLE reporsitory, generated by ANGLE versions upstream. Some of the clashes can be worked around by defining the bison and flex prefix. rest of the clashes could in theory be perhaps worked around by #define trickery (e.g. preprocessor.l #define yyguts_t ppguts_t) Sounds like a good -W, those are hard to catch all and argue for otherwise, as they typically don't affect anything... > Some of the clashes can be worked around by defining the bison and flex prefix. Ah, I didn't know this was possible. (In reply to Kimmo Kinnunen from comment #1) > Sounds like a good -W, those are hard to catch all and argue for otherwise, > as they typically don't affect anything... Yes, but sadly the warnings it generates are non-suppressible, and we're hitting them in bug #229867. The ANGLE team would be glad to change how bison/flex are invoked upstream. If you can propose changes to how src/compiler/generate_parser_tools.py invokes them, we'll be glad to do so upstream. It would be most expedient to wait ~1 week for the next ANGLE roll into WebKit to be ready in Bug 220896. (In reply to Kimmo Kinnunen from comment #1) > Some of the clashes can be worked around by defining the bison and flex > prefix. Found some documentation: https://www.gnu.org/software/bison/manual/html_node/Multiple-Parsers.html Unfortunately there was an incompatible syntax change, apparently the braces are required for modern bison but not allowed for older bison. Oh well. Stack Overflow (one of the answers covers flex too): https://stackoverflow.com/questions/1634704/multiple-flex-bison-parsers gdb has worked around this with remapping, see https://sourceware.org/bugzilla/show_bug.cgi?id=30839 (some other examples in https://sourceware.org/bugzilla/show_bug.cgi?id=22395). |