diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt index d9f6311d9b48e..dd00636fcf0b7 100644 --- a/libcxx/include/CMakeLists.txt +++ b/libcxx/include/CMakeLists.txt @@ -1029,8 +1029,10 @@ add_custom_target(generate-cxx-headers ALL DEPENDS ${_all_includes}) add_library(cxx-headers INTERFACE) target_link_libraries(cxx-headers INTERFACE libcxx-abi-headers) add_dependencies(cxx-headers generate-cxx-headers) -target_include_directories(cxx-headers INTERFACE ${LIBCXX_GENERATED_INCLUDE_DIR} - ${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}) +# It's important that the arch directory be included first so that its header files +# which interpose on the default include dir be included instead of the default ones. +target_include_directories(cxx-headers INTERFACE ${LIBCXX_GENERATED_INCLUDE_TARGET_DIR} + ${LIBCXX_GENERATED_INCLUDE_DIR}) if (LIBCXX_INSTALL_HEADERS) foreach(file ${files}) diff --git a/libcxx/modules/CMakeLists.txt b/libcxx/modules/CMakeLists.txt index 338769d64fd40..395226fb37287 100644 --- a/libcxx/modules/CMakeLists.txt +++ b/libcxx/modules/CMakeLists.txt @@ -128,8 +128,10 @@ if ("${LIBCXX_GENERATED_INCLUDE_DIR}" STREQUAL "${LIBCXX_GENERATED_INCLUDE_TARGE # This typically happens when the target is not installed. set(LIBCXX_CONFIGURED_INCLUDE_DIRS "${LIBCXX_GENERATED_INCLUDE_DIR}") else() + # It's important that the arch directory be included first so that its header files + # which interpose on the default include dir be included instead of the default ones. set(LIBCXX_CONFIGURED_INCLUDE_DIRS - "${LIBCXX_GENERATED_INCLUDE_DIR};${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}" + "${LIBCXX_GENERATED_INCLUDE_TARGET_DIR};${LIBCXX_GENERATED_INCLUDE_DIR}" ) endif() configure_file(