Skip to content

Commit 7439072

Browse files
authored
[Driver][Fuchsia] Support multilib for C++ include dir (#95815)
We generate a separate `__config_site` for each multilib and thus need to add the additional include dir if it exists.
1 parent 996905d commit 7439072

File tree

24 files changed

+24
-7
lines changed

24 files changed

+24
-7
lines changed

clang/lib/Driver/ToolChains/Fuchsia.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -433,13 +433,23 @@ void Fuchsia::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
433433
if (Version.empty())
434434
return;
435435

436-
// First add the per-target include path.
436+
// First add the per-target multilib include dir.
437+
if (!SelectedMultilibs.empty() && !SelectedMultilibs.back().isDefault()) {
438+
const Multilib &M = SelectedMultilibs.back();
439+
SmallString<128> TargetDir(Path);
440+
llvm::sys::path::append(TargetDir, Target, M.gccSuffix(), "c++", Version);
441+
if (getVFS().exists(TargetDir)) {
442+
addSystemInclude(DriverArgs, CC1Args, TargetDir);
443+
}
444+
}
445+
446+
// Second add the per-target include dir.
437447
SmallString<128> TargetDir(Path);
438448
llvm::sys::path::append(TargetDir, Target, "c++", Version);
439449
if (getVFS().exists(TargetDir))
440450
addSystemInclude(DriverArgs, CC1Args, TargetDir);
441451

442-
// Second add the generic one.
452+
// Third the generic one.
443453
SmallString<128> Dir(Path);
444454
llvm::sys::path::append(Dir, "c++", Version);
445455
addSystemInclude(DriverArgs, CC1Args, Dir);

clang/test/Driver/Inputs/basic_fuchsia_tree/include/aarch64-unknown-fuchsia/asan+noexcept/c++/v1/.keep

Whitespace-only changes.

clang/test/Driver/Inputs/basic_fuchsia_tree/include/aarch64-unknown-fuchsia/asan/c++/v1/.keep

Whitespace-only changes.

clang/test/Driver/Inputs/basic_fuchsia_tree/include/aarch64-unknown-fuchsia/compat/c++/v1/.keep

Whitespace-only changes.

clang/test/Driver/Inputs/basic_fuchsia_tree/include/aarch64-unknown-fuchsia/hwasan+noexcept/c++/v1/.keep

Whitespace-only changes.

clang/test/Driver/Inputs/basic_fuchsia_tree/include/aarch64-unknown-fuchsia/hwasan/c++/v1/.keep

Whitespace-only changes.

clang/test/Driver/Inputs/basic_fuchsia_tree/include/aarch64-unknown-fuchsia/noexcept/c++/v1/.keep

Whitespace-only changes.

clang/test/Driver/Inputs/basic_fuchsia_tree/include/riscv64-unknown-fuchsia/asan+noexcept/c++/v1/.keep

Whitespace-only changes.

clang/test/Driver/Inputs/basic_fuchsia_tree/include/riscv64-unknown-fuchsia/asan/c++/v1/.keep

Whitespace-only changes.

clang/test/Driver/Inputs/basic_fuchsia_tree/include/riscv64-unknown-fuchsia/compat/c++/v1/.keep

Whitespace-only changes.

0 commit comments

Comments
 (0)