apple / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. This fork is used to manage Apple’s stable releases of Clang as well as support the Swift project.
https://llvm.org
Other
1.1k stars 320 forks source link

[Clang] Prioritise built-in headers, even on musl. #8862

Closed al45tair closed 3 weeks ago

al45tair commented 4 weeks ago

Clang was putting its built-in headers at the end of the search path if running on musl; this was a mistake, because it breaks libc++, as the latter tries to include the built-in header and then the #include_next in the built-in header fails.

The right solution here is to have the built-in headers remain in their usual location in the search path, and then if it's desirable to override them for musl, have them explicitly include the musl header with #include_next. This is the solution that is already in use for other platforms.

rdar://118881637

al45tair commented 4 weeks ago

This is a cherry pick of #8253, with an additional fix from #8397.