-
Notifications
You must be signed in to change notification settings - Fork 529
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v2.6.2 introduces behavior change that is incompatible with previous versions #113
Comments
Consequences of this change can be searched and found here: https://bugs.gentoo.org/598186 |
Flex 2.6.2 also does not properly handle doxygen. The flex generated code fails with:
The code it generated looks like:
Basically it did not handle the pattern match at all. |
This partially reverts commit 2dfc72b. flex 2.6.2 is broken horribly causing build failures in various packages. For details: westes/flex#113
Just to add another me too. This issue breaks Mesa also: https://bugs.freedesktop.org/show_bug.cgi?id=98473 |
It also breaks kde-frameworks/kservice: https://bugs.kde.org/show_bug.cgi?id=371885 and the developers comment was "So why not report this to the flex authors?". |
@DemiMarie, could you have a look at this? |
My changes caused Flex to mishandle string and character literals in line comments. This commit fixes them. Fixes westes#113.
I just tested head against nftables-0.6 (using Gentoo's nftables-0.6-r4 ebuild) and the issue is still present. Could you please reopen this bug until the issue is fixed? edit: head in this case is commit d374b87 |
Certainly. @DemiMarie, what do you think? |
I think I know what is going on. Flex versions <= 2.6.1 expand M4 macros in the source file. This allows a bad input file to execute arbitrary shell commands and results in broken debugging info. It also corrupts string literals that happen to contain the relevant strings. I "fixed" this behavior. This also required changing the testsuite. In retrospect, I should probably have realized that this would break code. The solution is to add CPP (not M4) macros that handle this. I will make a patch. |
If the problem is in section 3, you can use |
This patch adds compatiblity `#defines` for all macros affected by `%prefix`. Fixes westes#113.
@westes Can we please have a new release once this issue has been confirmed to be fixed? |
The version of flex used here includes a workaround for westes/flex#113 (since it's otherwise not-compilable)
The version of flex used here includes a workaround for westes/flex#113 (since it's otherwise not-compilable)
The version of flex used here includes a workaround for westes/flex#113 (since it's otherwise not-compilable)
The version of flex used here includes a workaround for westes/flex#113 (since it's otherwise not-compilable)
mainly related to westes/flex#113 "v2.6.2 introduces behavior change that is incompatible with previous versions" This fixes at least doxygen
mainly related to westes/flex#113 "v2.6.2 introduces behavior change that is incompatible with previous versions" This fixes at least doxygen
The version of flex used here includes a workaround for westes/flex#113 (since it's otherwise not-compilable)
My changes caused Flex to mishandle string and character literals in line comments. This commit fixes them. Fixes westes#113.
This patch addscompatibility `#defines` for all macros affected by `%prefix`. Fixes westes#113.
Hi guys, I'm having trouble with flex. |
Flex 2.6.2 has a bug which results in incorrect variable expansion and that causes quite a lot of other packages to fail westes/flex#113 The best way for now is to work it around for the concerning packages as upstream is thinking of reverting back to the older version https://patchwork.openembedded.org/patch/135715/ https://patchwork.openembedded.org/patch/135503/ Signed-off-by: Awais Belal <awais_belal@mentor.com>
Flex 2.6.2 has a bug which results in incorrect variable expansion and that causes quite a lot of other packages to fail westes/flex#113 The best way for now is to work it around for the concerning packages as upstream is thinking of reverting back to the older version https://patchwork.openembedded.org/patch/135715/ https://patchwork.openembedded.org/patch/135503/ Signed-off-by: Awais Belal <awais_belal@mentor.com>
With version 2.6.1 if prefix was set, then all affected functions would have their declaration changed and all references in the lexer input file would be changed as well. With v2.6.2 only the function declarations are changed.
For example, set prefix to AA, reference yyget_extra() in the lexer input file, and build the C file using v2.6.1 and all calls in the C source file will be to AAget_extra(). However, build with v2.6.2 and the resultant C file will still have calls to yyget_extra() resulting in a broken source file.
This change in behavior appears to have been introduced with commit ee87e5d.
The text was updated successfully, but these errors were encountered: