Index: lib/Driver/ToolChains/OpenBSD.h =================================================================== --- lib/Driver/ToolChains/OpenBSD.h +++ lib/Driver/ToolChains/OpenBSD.h @@ -58,6 +58,8 @@ bool IsMathErrnoDefault() const override { return false; } bool IsObjCNonFragileABIDefault() const override { return true; } bool isPIEDefault() const override { return true; } + void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const override; unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override { return 2; Index: lib/Driver/ToolChains/OpenBSD.cpp =================================================================== --- lib/Driver/ToolChains/OpenBSD.cpp +++ lib/Driver/ToolChains/OpenBSD.cpp @@ -259,6 +259,14 @@ getFilePaths().push_back("/usr/lib"); } +void OpenBSD::AddCXXStdlibLibArgs(const ArgList &Args, + ArgStringList &CmdArgs) const { + bool Profiling = Args.hasArg(options::OPT_pg); + + CmdArgs.push_back(Profiling ? "-lc++_p" : "-lc++"); + CmdArgs.push_back(Profiling ? "-lc++abi_p" : "-lc++abi"); +} + Tool *OpenBSD::buildAssembler() const { return new tools::openbsd::Assembler(*this); }