From c4957ef206b792ff421b0e7e41a39a8603356c6f Mon Sep 17 00:00:00 2001 From: Kaleb Barrett Date: Sun, 20 Sep 2026 21:14:11 +0200 Subject: [PATCH] Fix MSYS header include search to be after toolchain headers (#8422) --- configure.ac | 7 ++++++- src/CMakeLists.txt | 11 ++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 80f51e09a..ddfbb92d8 100644 --- a/configure.ac +++ b/configure.ac @@ -280,7 +280,12 @@ import sys print(pathlib.Path(shutil.which(sys.argv@<:@1@:>@) or sys.argv@<:@1@:>@).resolve().parent.parent / "include") ' "$LEX") if test -f "$flex_include/FlexLexer.h"; then - CPPFLAGS="$CPPFLAGS -I$flex_include" + if test -n "$MSYSTEM"; then + # Search MSYS Flex headers after the active toolchain's system headers. + CPPFLAGS="$CPPFLAGS -idirafter $flex_include" + else + CPPFLAGS="$CPPFLAGS -I$flex_include" + fi fi AC_CHECK_PROG(YACC,bison,bison) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 000e63e1d..1d9211f1e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -565,9 +565,18 @@ set_target_properties( MSVC_RUNTIME_LIBRARY MultiThreaded$,,DebugDLL> #JOB_POOL_LINK one_job # Linking takes lots of resources INTERPROCEDURAL_OPTIMIZATION_RELEASE $ - INCLUDE_DIRECTORIES ${FLEX_INCLUDE_DIR} ) +if(MINGW) + # Search MSYS Flex headers after the active toolchain's system headers. + target_compile_options( + ${verilator} + PRIVATE -idirafter "${FLEX_INCLUDE_DIR}" + ) +else() + target_include_directories(${verilator} PRIVATE "${FLEX_INCLUDE_DIR}") +endif() + add_dependencies( ${verilator} V3Lexer_yy_cpp${CMAKE_BUILD_TYPE}