Passing the MSVC include dirs via -isystem makes them included before clang's own include resource dir (<prefix>/lib/clang/<version>/include). This causes includes of stddef.h to bypass clang's stddef.h which defines max_align_t, which libc++ needs defined.
Details
Details
- Reviewers
CaseyCarter STL_MSFT miscco rnk ldionne - Group Reviewers
Restricted Project - Commits
- rG90232b2ecd72: [libcxx] [test] Don't pass INCLUDE to clang via -isystem
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
To follow up on the commit description: Manually passing these via -isystem isn't needed as the compiler driver itself picks up the include directories (and places them at the correct place in the include order!) from the INCLUDE variable.
Comment Actions
Fwiw, I traced this code back to rG4372f06d0fcaba1a6913e2f37be064e06a7b5b5b where the initial windows testing support was added - unsure if it really was needed back then; right now it isn't - and since libc++ started depending on max_align_t, it became an issue.