[libc++] Make sure we include a header when checking compiler macros

Otherwise, it's possible for some __config_site macros not to be
picked up.
This commit is contained in:
Louis Dionne 2020-10-27 15:57:47 -04:00
parent 6a972ffabd
commit c56bbb3961
1 changed files with 5 additions and 1 deletions

View File

@ -191,8 +191,12 @@ def compilerMacros(config, flags=''):
be added to the compiler invocation when generating the macros. be added to the compiler invocation when generating the macros.
""" """
with _makeConfigTest(config) as test: with _makeConfigTest(config) as test:
with open(test.getSourcePath(), 'w') as sourceFile:
# Make sure files like <__config> are included, since they can define
# additional macros.
sourceFile.write("#include <cstddef>")
unparsedOutput, err, exitCode, timeoutInfo = _executeScriptInternal(test, [ unparsedOutput, err, exitCode, timeoutInfo = _executeScriptInternal(test, [
"%{{cxx}} -xc++ {} -dM -E %{{flags}} %{{compile_flags}} {}".format(os.devnull, flags) "%{{cxx}} %s -dM -E %{{flags}} %{{compile_flags}} {}".format(flags)
]) ])
parsedMacros = dict() parsedMacros = dict()
defines = (l.strip() for l in unparsedOutput.split('\n') if l.startswith('#define ')) defines = (l.strip() for l in unparsedOutput.split('\n') if l.startswith('#define '))