into using non-absolute system includes (<foo>)... ... and introduce another hack that is simultaneously more heineous and more effective. We whitelist Clang-supplied headers that augment or override system headers (such as float.h, stdarg.h, and tgmath.h). For these headers, Clang does not provide a module mapping. Instead, a system-supplied module map can refer to these headers in a system module, and Clang will look both in its own include directory and wherever the system-supplied module map suggests, then adds either or both headers. The end result is that Clang-supplied headers get merged into the system-supplied module for the C standard library. As a drive-by, fix up a few dependencies in the _Builtin_instrinsics module. llvm-svn: 149611
22 lines
432 B
Plaintext
22 lines
432 B
Plaintext
module cstd [system] {
|
|
// Only in compiler support directory
|
|
module float_constants {
|
|
header "float.h"
|
|
}
|
|
|
|
// Only in system headers directory
|
|
module stdio {
|
|
header "stdio.h"
|
|
}
|
|
|
|
// In both directories (compiler support version wins, does not forward)
|
|
module stdbool {
|
|
header "stdbool.h"
|
|
}
|
|
|
|
// In both directories (compiler support version wins, forwards)
|
|
module stdint {
|
|
header "stdint.h"
|
|
}
|
|
}
|