Skip to content

Commit 91aa7b8

Browse files
committed
FreeBSD: Autolink C++ runtime
This hooks up the autolink mechanism to link the C++ runtime when C++ interop is enabled on FreeBSD.
1 parent 3376785 commit 91aa7b8

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

lib/AST/ModuleDependencies.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,8 @@ void swift::dependencies::registerCxxInteropLibraries(
573573
return mainModuleName == Name;
574574
})) {
575575
// Only link with CxxStdlib on platforms where the overlay is available.
576-
if (Target.isOSDarwin() || Target.isOSLinux() || Target.isOSWindows())
576+
if (Target.isOSDarwin() || Target.isOSLinux() || Target.isOSWindows() ||
577+
Target.isOSFreeBSD())
577578
RegistrationCallback(LinkLibrary{"swiftCxxStdlib", LibraryKind::Library,
578579
hasStaticCxxStdlib});
579580
}

lib/Frontend/CompilerInvocation.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,8 @@ void CompilerInvocation::computeCXXStdlibOptions() {
391391
// (see https://reviews.llvm.org/D101479).
392392
LangOpts.CXXStdlib = CXXStdlibKind::Msvcprt;
393393
LangOpts.PlatformDefaultCXXStdlib = CXXStdlibKind::Msvcprt;
394-
} else if (LangOpts.Target.isOSLinux() || LangOpts.Target.isOSDarwin()) {
394+
} else if (LangOpts.Target.isOSLinux() || LangOpts.Target.isOSDarwin() ||
395+
LangOpts.Target.isOSFreeBSD()) {
395396
auto [clangDriver, clangDiagEngine] =
396397
ClangImporter::createClangDriver(LangOpts, ClangImporterOpts);
397398
auto clangDriverArgs = ClangImporter::createClangArgs(

0 commit comments

Comments
 (0)