From c0bc2729ae1d2c407a0e4370769722f0a667b2f7 Mon Sep 17 00:00:00 2001 From: Ian Anderson Date: Tue, 21 May 2024 15:48:25 -0700 Subject: [PATCH] [ClangImporter] `-Xclang -fbuiltin-headers-in-system-modules` is being passed when it shouldn't swift::getClangInvocationFileMapping is called for non-Linux platforms, but will unconditionally set requiresBuiltinHeadersInSystemModules in the else case, or if getLibcFileMapping doesn't return a mapping. rdar://128219177 --- lib/ClangImporter/ClangIncludePaths.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/ClangImporter/ClangIncludePaths.cpp b/lib/ClangImporter/ClangIncludePaths.cpp index 11d95131b701b..80f79c0406db4 100644 --- a/lib/ClangImporter/ClangIncludePaths.cpp +++ b/lib/ClangImporter/ClangIncludePaths.cpp @@ -554,8 +554,8 @@ ClangInvocationFileMapping swift::getClangInvocationFileMapping( libcFileMapping = getLibcFileMapping(ctx, "wasi-libc.modulemap", std::nullopt, vfs); - // WASI's module map needs fixing - result.requiresBuiltinHeadersInSystemModules = true; + // WASI's module map needs fixing (rdar://119563706) + result.requiresBuiltinHeadersInSystemModules = !libcFileMapping.empty(); } else if (triple.isMusl()) { libcFileMapping = getLibcFileMapping(ctx, "musl.modulemap", StringRef("SwiftMusl.h"), vfs); @@ -564,8 +564,8 @@ ClangInvocationFileMapping swift::getClangInvocationFileMapping( libcFileMapping = getLibcFileMapping(ctx, "glibc.modulemap", StringRef("SwiftGlibc.h"), vfs); - // glibc.modulemap needs fixing - result.requiresBuiltinHeadersInSystemModules = true; + // glibc.modulemap needs fixing (rdar://119563686&123317003) + result.requiresBuiltinHeadersInSystemModules = !libcFileMapping.empty(); } result.redirectedFiles.append(libcFileMapping);