Skip to content

Refix builds on machines with modern flex versions #24

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

Open
wants to merge 1 commit into
base: xlnx_rel_v2023.1
Choose a base branch
from

Conversation

jacmet
Copy link

@jacmet jacmet commented Jun 12, 2023

Bootgen embeds an old version of flex, but uses the system include syntax (#include <>) to reference it, causing conflicts on systems with the development headers for a modern flex version installed, leading to build issues like:

../bisonflex/cmdoptions.yy.cpp: In member function 'virtual int CO::FlexScanner::yylex()':
../bisonflex/cmdoptions.yy.cpp:1362:18: error: no match for 'operator=' (operand types are 'std::istream' {aka 'std::basic_istream'} and 'std::istream*' {aka 'std::basic_istream*'})

http://autobuild.buildroot.net/results/293/2936d9b054269b7055e66ab5a7f7c1f7f4926d48/build-end.log

Fix it by using normal local #include statements by:

sed -i 's/<FlexLexer.h>/"FlexLexer.h"/g' *

Notice: This was already fixed on master with:
#20

Notice: The patch was not applied, instead a different patch with the same content was applied to master:
af4f708

This patch was not applied to the xlnx_rel_v2023.1 branch, instead most of the content was included in:
bfba91b

But the cmdoptions.yy.cpp and reginit.yy.cpp hunks were accidently dropped: bfba91b#diff-e0287adb420dbecc112acdf7d4a1efba8ea6cbf06401e4e8679b8ffd22a091d8

Bootgen embeds an old version of flex, but uses the system include syntax
(#include <>) to reference it, causing conflicts on systems with the
development headers for a modern flex version installed, leading to build
issues like:

../bisonflex/cmdoptions.yy.cpp: In member function 'virtual int CO::FlexScanner::yylex()':
../bisonflex/cmdoptions.yy.cpp:1362:18: error: no match for 'operator=' (operand types are 'std::istream' {aka 'std::basic_istream<char>'} and 'std::istream*' {aka 'std::basic_istream<char>*'})

http://autobuild.buildroot.net/results/293/2936d9b054269b7055e66ab5a7f7c1f7f4926d48/build-end.log

Fix it by using normal local #include statements by:

sed -i 's/<FlexLexer.h>/"FlexLexer.h"/g' *

Notice: This was already fixed on master with:
Xilinx#20

Notice: The patch was not applied, instead a different patch with the same
content was applied to master:
Xilinx@af4f708

This patch was not applied to the xlnx_rel_v2023.1 branch, instead most
of the content was included in:
Xilinx@bfba91b

But the cmdoptions.yy.cpp and reginit.yy.cpp hunks were accidently dropped:
Xilinx@bfba91b#diff-e0287adb420dbecc112acdf7d4a1efba8ea6cbf06401e4e8679b8ffd22a091d8

Signed-off-by: Peter Korsgaard <[email protected]>
@jacmet
Copy link
Author

jacmet commented Aug 29, 2023

@RamyaDarapuneni ping?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant