sync
This commit is contained in:
parent
f609457dcf
commit
62073e0295
318 changed files with 8112 additions and 4346 deletions
|
@ -67,7 +67,6 @@ add_clang_library(clangDriver
|
|||
ToolChains/OpenBSD.cpp
|
||||
ToolChains/PS4CPU.cpp
|
||||
ToolChains/RISCVToolchain.cpp
|
||||
ToolChains/SecBSD.cpp
|
||||
ToolChains/Solaris.cpp
|
||||
ToolChains/TCE.cpp
|
||||
ToolChains/VEToolchain.cpp
|
||||
|
|
|
@ -41,7 +41,6 @@
|
|||
#include "ToolChains/PPCLinux.h"
|
||||
#include "ToolChains/PS4CPU.h"
|
||||
#include "ToolChains/RISCVToolchain.h"
|
||||
#include "ToolChains/SecBSD.h"
|
||||
#include "ToolChains/Solaris.h"
|
||||
#include "ToolChains/TCE.h"
|
||||
#include "ToolChains/VEToolchain.h"
|
||||
|
|
|
@ -1,338 +0,0 @@
|
|||
//===--- SecBSD.cpp - SecBSD ToolChain Implementations --------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "SecBSD.h"
|
||||
#include "Arch/Mips.h"
|
||||
#include "Arch/Sparc.h"
|
||||
#include "CommonArgs.h"
|
||||
#include "clang/Config/config.h"
|
||||
#include "clang/Driver/Compilation.h"
|
||||
#include "clang/Driver/Options.h"
|
||||
#include "clang/Driver/SanitizerArgs.h"
|
||||
#include "llvm/Option/ArgList.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/VirtualFileSystem.h"
|
||||
|
||||
using namespace clang::driver;
|
||||
using namespace clang::driver::tools;
|
||||
using namespace clang::driver::toolchains;
|
||||
using namespace clang;
|
||||
using namespace llvm::opt;
|
||||
|
||||
void secbsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output,
|
||||
const InputInfoList &Inputs,
|
||||
const ArgList &Args,
|
||||
const char *LinkingOutput) const {
|
||||
claimNoWarnArgs(Args);
|
||||
ArgStringList CmdArgs;
|
||||
|
||||
switch (getToolChain().getArch()) {
|
||||
case llvm::Triple::x86:
|
||||
// When building 32-bit code on SecBSD/amd64, we have to explicitly
|
||||
// instruct as in the base system to assemble 32-bit code.
|
||||
CmdArgs.push_back("--32");
|
||||
break;
|
||||
|
||||
case llvm::Triple::ppc:
|
||||
CmdArgs.push_back("-mppc");
|
||||
CmdArgs.push_back("-many");
|
||||
break;
|
||||
|
||||
case llvm::Triple::sparcv9: {
|
||||
CmdArgs.push_back("-64");
|
||||
std::string CPU = getCPUName(Args, getToolChain().getTriple());
|
||||
CmdArgs.push_back(sparc::getSparcAsmModeForCPU(CPU, getToolChain().getTriple()));
|
||||
AddAssemblerKPIC(getToolChain(), Args, CmdArgs);
|
||||
break;
|
||||
}
|
||||
|
||||
case llvm::Triple::mips64:
|
||||
case llvm::Triple::mips64el: {
|
||||
StringRef CPUName;
|
||||
StringRef ABIName;
|
||||
mips::getMipsCPUAndABI(Args, getToolChain().getTriple(), CPUName, ABIName);
|
||||
|
||||
CmdArgs.push_back("-mabi");
|
||||
CmdArgs.push_back(mips::getGnuCompatibleMipsABIName(ABIName).data());
|
||||
|
||||
if (getToolChain().getTriple().isLittleEndian())
|
||||
CmdArgs.push_back("-EL");
|
||||
else
|
||||
CmdArgs.push_back("-EB");
|
||||
|
||||
AddAssemblerKPIC(getToolChain(), Args, CmdArgs);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);
|
||||
|
||||
CmdArgs.push_back("-o");
|
||||
CmdArgs.push_back(Output.getFilename());
|
||||
|
||||
for (const auto &II : Inputs)
|
||||
CmdArgs.push_back(II.getFilename());
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));
|
||||
C.addCommand(std::make_unique<Command>(JA, *this,
|
||||
ResponseFileSupport::AtFileCurCP(),
|
||||
Exec, CmdArgs, Inputs, Output));
|
||||
}
|
||||
|
||||
void secbsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output,
|
||||
const InputInfoList &Inputs,
|
||||
const ArgList &Args,
|
||||
const char *LinkingOutput) const {
|
||||
const toolchains::SecBSD &ToolChain =
|
||||
static_cast<const toolchains::SecBSD &>(getToolChain());
|
||||
const Driver &D = getToolChain().getDriver();
|
||||
ArgStringList CmdArgs;
|
||||
|
||||
// Silence warning for "clang -g foo.o -o foo"
|
||||
Args.ClaimAllArgs(options::OPT_g_Group);
|
||||
// and "clang -emit-llvm foo.o -o foo"
|
||||
Args.ClaimAllArgs(options::OPT_emit_llvm);
|
||||
// and for "clang -w foo.o -o foo". Other warning options are already
|
||||
// handled somewhere else.
|
||||
Args.ClaimAllArgs(options::OPT_w);
|
||||
|
||||
if (ToolChain.getArch() == llvm::Triple::mips64)
|
||||
CmdArgs.push_back("-EB");
|
||||
else if (ToolChain.getArch() == llvm::Triple::mips64el)
|
||||
CmdArgs.push_back("-EL");
|
||||
|
||||
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_shared)) {
|
||||
CmdArgs.push_back("-e");
|
||||
CmdArgs.push_back("__start");
|
||||
}
|
||||
|
||||
CmdArgs.push_back("--eh-frame-hdr");
|
||||
if (Args.hasArg(options::OPT_static)) {
|
||||
CmdArgs.push_back("-Bstatic");
|
||||
} else {
|
||||
if (Args.hasArg(options::OPT_rdynamic))
|
||||
CmdArgs.push_back("-export-dynamic");
|
||||
CmdArgs.push_back("-Bdynamic");
|
||||
if (Args.hasArg(options::OPT_shared)) {
|
||||
CmdArgs.push_back("-shared");
|
||||
} else {
|
||||
CmdArgs.push_back("-dynamic-linker");
|
||||
CmdArgs.push_back("/usr/libexec/ld.so");
|
||||
}
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_pie))
|
||||
CmdArgs.push_back("-pie");
|
||||
if (Args.hasArg(options::OPT_nopie) || Args.hasArg(options::OPT_pg))
|
||||
CmdArgs.push_back("-nopie");
|
||||
|
||||
if (Output.isFilename()) {
|
||||
CmdArgs.push_back("-o");
|
||||
CmdArgs.push_back(Output.getFilename());
|
||||
} else {
|
||||
assert(Output.isNothing() && "Invalid output.");
|
||||
}
|
||||
|
||||
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {
|
||||
const char *crt0 = nullptr;
|
||||
const char *crtbegin = nullptr;
|
||||
if (!Args.hasArg(options::OPT_shared)) {
|
||||
if (Args.hasArg(options::OPT_pg))
|
||||
crt0 = "gcrt0.o";
|
||||
else if (Args.hasArg(options::OPT_static) &&
|
||||
!Args.hasArg(options::OPT_nopie))
|
||||
crt0 = "rcrt0.o";
|
||||
else
|
||||
crt0 = "crt0.o";
|
||||
crtbegin = "crtbegin.o";
|
||||
} else {
|
||||
crtbegin = "crtbeginS.o";
|
||||
}
|
||||
|
||||
if (crt0)
|
||||
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crt0)));
|
||||
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtbegin)));
|
||||
}
|
||||
|
||||
Args.AddAllArgs(CmdArgs, options::OPT_L);
|
||||
ToolChain.AddFilePathLibArgs(Args, CmdArgs);
|
||||
Args.AddAllArgs(CmdArgs, {options::OPT_T_Group, options::OPT_e,
|
||||
options::OPT_s, options::OPT_t,
|
||||
options::OPT_Z_Flag, options::OPT_r});
|
||||
|
||||
bool NeedsSanitizerDeps = addSanitizerRuntimes(ToolChain, Args, CmdArgs);
|
||||
bool NeedsXRayDeps = addXRayRuntime(ToolChain, Args, CmdArgs);
|
||||
AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA);
|
||||
|
||||
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
|
||||
// Use the static OpenMP runtime with -static-openmp
|
||||
bool StaticOpenMP = Args.hasArg(options::OPT_static_openmp) &&
|
||||
!Args.hasArg(options::OPT_static);
|
||||
addOpenMPRuntime(CmdArgs, ToolChain, Args, StaticOpenMP);
|
||||
|
||||
if (D.CCCIsCXX()) {
|
||||
if (ToolChain.ShouldLinkCXXStdlib(Args))
|
||||
ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs);
|
||||
if (Args.hasArg(options::OPT_pg))
|
||||
CmdArgs.push_back("-lm_p");
|
||||
else
|
||||
CmdArgs.push_back("-lm");
|
||||
}
|
||||
if (NeedsSanitizerDeps) {
|
||||
CmdArgs.push_back(ToolChain.getCompilerRTArgString(Args, "builtins"));
|
||||
linkSanitizerRuntimeDeps(ToolChain, CmdArgs);
|
||||
}
|
||||
if (NeedsXRayDeps) {
|
||||
CmdArgs.push_back(ToolChain.getCompilerRTArgString(Args, "builtins"));
|
||||
linkXRayRuntimeDeps(ToolChain, CmdArgs);
|
||||
}
|
||||
// FIXME: For some reason GCC passes -lgcc before adding
|
||||
// the default system libraries. Just mimic this for now.
|
||||
CmdArgs.push_back("-lcompiler_rt");
|
||||
|
||||
if (Args.hasArg(options::OPT_pthread)) {
|
||||
if (!Args.hasArg(options::OPT_shared) && Args.hasArg(options::OPT_pg))
|
||||
CmdArgs.push_back("-lpthread_p");
|
||||
else
|
||||
CmdArgs.push_back("-lpthread");
|
||||
}
|
||||
|
||||
if (!Args.hasArg(options::OPT_shared)) {
|
||||
if (Args.hasArg(options::OPT_pg))
|
||||
CmdArgs.push_back("-lc_p");
|
||||
else
|
||||
CmdArgs.push_back("-lc");
|
||||
}
|
||||
|
||||
CmdArgs.push_back("-lcompiler_rt");
|
||||
}
|
||||
|
||||
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {
|
||||
const char *crtend = nullptr;
|
||||
if (!Args.hasArg(options::OPT_shared))
|
||||
crtend = "crtend.o";
|
||||
else
|
||||
crtend = "crtendS.o";
|
||||
|
||||
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtend)));
|
||||
}
|
||||
|
||||
ToolChain.addProfileRTLibs(Args, CmdArgs);
|
||||
|
||||
const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath());
|
||||
C.addCommand(std::make_unique<Command>(JA, *this,
|
||||
ResponseFileSupport::AtFileCurCP(),
|
||||
Exec, CmdArgs, Inputs, Output));
|
||||
}
|
||||
|
||||
SanitizerMask SecBSD::getSupportedSanitizers() const {
|
||||
const bool IsX86 = getTriple().getArch() == llvm::Triple::x86;
|
||||
const bool IsX86_64 = getTriple().getArch() == llvm::Triple::x86_64;
|
||||
|
||||
// For future use, only UBsan at the moment
|
||||
SanitizerMask Res = ToolChain::getSupportedSanitizers();
|
||||
|
||||
if (IsX86 || IsX86_64) {
|
||||
Res |= SanitizerKind::Vptr;
|
||||
Res |= SanitizerKind::Fuzzer;
|
||||
Res |= SanitizerKind::FuzzerNoLink;
|
||||
}
|
||||
|
||||
if (IsX86_64) {
|
||||
Res |= SanitizerKind::KernelAddress;
|
||||
}
|
||||
|
||||
return Res;
|
||||
}
|
||||
|
||||
/// SecBSD - SecBSD tool chain which can call as(1) and ld(1) directly.
|
||||
|
||||
SecBSD::SecBSD(const Driver &D, const llvm::Triple &Triple,
|
||||
const ArgList &Args)
|
||||
: Generic_ELF(D, Triple, Args) {
|
||||
getFilePaths().push_back(getDriver().SysRoot + "/usr/lib");
|
||||
}
|
||||
|
||||
void SecBSD::AddClangSystemIncludeArgs(
|
||||
const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const {
|
||||
const Driver &D = getDriver();
|
||||
|
||||
if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
|
||||
return;
|
||||
|
||||
if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
|
||||
SmallString<128> Dir(D.ResourceDir);
|
||||
llvm::sys::path::append(Dir, "include");
|
||||
addSystemInclude(DriverArgs, CC1Args, Dir.str());
|
||||
}
|
||||
|
||||
if (DriverArgs.hasArg(options::OPT_nostdlibinc))
|
||||
return;
|
||||
|
||||
// Check for configure-time C include directories.
|
||||
StringRef CIncludeDirs(C_INCLUDE_DIRS);
|
||||
if (CIncludeDirs != "") {
|
||||
SmallVector<StringRef, 5> dirs;
|
||||
CIncludeDirs.split(dirs, ":");
|
||||
for (StringRef dir : dirs) {
|
||||
StringRef Prefix =
|
||||
llvm::sys::path::is_absolute(dir) ? StringRef(D.SysRoot) : "";
|
||||
addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
addExternCSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/usr/include");
|
||||
}
|
||||
|
||||
void SecBSD::addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const {
|
||||
addSystemInclude(DriverArgs, CC1Args,
|
||||
getDriver().SysRoot + "/usr/include/c++/v1");
|
||||
}
|
||||
|
||||
void SecBSD::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");
|
||||
CmdArgs.push_back(Profiling ? "-lpthread_p" : "-lpthread");
|
||||
}
|
||||
|
||||
std::string SecBSD::getCompilerRT(const ArgList &Args,
|
||||
StringRef Component,
|
||||
FileType Type) const {
|
||||
if (Component == "builtins") {
|
||||
SmallString<128> Path(getDriver().SysRoot);
|
||||
llvm::sys::path::append(Path, "/usr/lib/libcompiler_rt.a");
|
||||
return std::string(Path.str());
|
||||
} else {
|
||||
SmallString<128> P(getDriver().ResourceDir);
|
||||
std::string CRTBasename =
|
||||
buildCompilerRTBasename(Args, Component, Type, /*AddArch=*/false);
|
||||
llvm::sys::path::append(P, "lib", CRTBasename);
|
||||
if (getVFS().exists(P))
|
||||
return std::string(P.str());
|
||||
return ToolChain::getCompilerRT(Args, Component, Type);
|
||||
}
|
||||
}
|
||||
|
||||
Tool *SecBSD::buildAssembler() const {
|
||||
return new tools::secbsd::Assembler(*this);
|
||||
}
|
||||
|
||||
Tool *SecBSD::buildLinker() const { return new tools::secbsd::Linker(*this); }
|
||||
|
||||
bool SecBSD::HasNativeLLVMSupport() const { return true; }
|
|
@ -1,109 +0,0 @@
|
|||
//===--- SecBSD.h - SecBSD ToolChain Implementations ----------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_OPENBSD_H
|
||||
#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_OPENBSD_H
|
||||
|
||||
#include "Gnu.h"
|
||||
#include "clang/Basic/LangOptions.h"
|
||||
#include "clang/Driver/Tool.h"
|
||||
#include "clang/Driver/ToolChain.h"
|
||||
|
||||
namespace clang {
|
||||
namespace driver {
|
||||
namespace tools {
|
||||
|
||||
/// secbsd -- Directly call GNU Binutils assembler and linker
|
||||
namespace secbsd {
|
||||
class LLVM_LIBRARY_VISIBILITY Assembler : public Tool {
|
||||
public:
|
||||
Assembler(const ToolChain &TC)
|
||||
: Tool("secbsd::Assembler", "assembler", TC) {}
|
||||
|
||||
bool hasIntegratedCPP() const override { return false; }
|
||||
|
||||
void ConstructJob(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output, const InputInfoList &Inputs,
|
||||
const llvm::opt::ArgList &TCArgs,
|
||||
const char *LinkingOutput) const override;
|
||||
};
|
||||
|
||||
class LLVM_LIBRARY_VISIBILITY Linker : public Tool {
|
||||
public:
|
||||
Linker(const ToolChain &TC) : Tool("secbsd::Linker", "linker", TC) {}
|
||||
|
||||
bool hasIntegratedCPP() const override { return false; }
|
||||
bool isLinkJob() const override { return true; }
|
||||
|
||||
void ConstructJob(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output, const InputInfoList &Inputs,
|
||||
const llvm::opt::ArgList &TCArgs,
|
||||
const char *LinkingOutput) const override;
|
||||
};
|
||||
} // end namespace secbsd
|
||||
} // end namespace tools
|
||||
|
||||
namespace toolchains {
|
||||
|
||||
class LLVM_LIBRARY_VISIBILITY SecBSD : public Generic_ELF {
|
||||
public:
|
||||
SecBSD(const Driver &D, const llvm::Triple &Triple,
|
||||
const llvm::opt::ArgList &Args);
|
||||
|
||||
bool HasNativeLLVMSupport() const override;
|
||||
|
||||
bool IsMathErrnoDefault() const override { return false; }
|
||||
bool IsObjCNonFragileABIDefault() const override { return true; }
|
||||
bool isPIEDefault() const override { return true; }
|
||||
|
||||
RuntimeLibType GetDefaultRuntimeLibType() const override {
|
||||
return ToolChain::RLT_CompilerRT;
|
||||
}
|
||||
CXXStdlibType GetDefaultCXXStdlibType() const override {
|
||||
return ToolChain::CST_Libcxx;
|
||||
}
|
||||
|
||||
void
|
||||
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const override;
|
||||
|
||||
void addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const override;
|
||||
void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
|
||||
llvm::opt::ArgStringList &CmdArgs) const override;
|
||||
|
||||
std::string getCompilerRT(const llvm::opt::ArgList &Args, StringRef Component,
|
||||
FileType Type = ToolChain::FT_Static) const override;
|
||||
|
||||
bool IsUnwindTablesDefault(const llvm::opt::ArgList &Args) const override {
|
||||
switch (getArch()) {
|
||||
case llvm::Triple::arm:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
LangOptions::StackProtectorMode
|
||||
GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
|
||||
return LangOptions::SSPStrong;
|
||||
}
|
||||
unsigned GetDefaultDwarfVersion() const override { return 2; }
|
||||
|
||||
SanitizerMask getSupportedSanitizers() const override;
|
||||
|
||||
protected:
|
||||
Tool *buildAssembler() const override;
|
||||
Tool *buildLinker() const override;
|
||||
};
|
||||
|
||||
} // end namespace toolchains
|
||||
} // end namespace driver
|
||||
} // end namespace clang
|
||||
|
||||
#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_OPENBSD_H
|
|
@ -97,7 +97,7 @@ macro(add_sanitizer_rt_version_list name)
|
|||
endmacro()
|
||||
|
||||
# Add target to check code style for sanitizer runtimes.
|
||||
if(CMAKE_HOST_UNIX AND NOT OS_NAME MATCHES "SecBSD")
|
||||
if(CMAKE_HOST_UNIX AND NOT OS_NAME MATCHES "OpenBSD")
|
||||
add_custom_target(SanitizerLintCheck
|
||||
COMMAND env LLVM_CHECKOUT=${LLVM_MAIN_SRC_DIR} SILENT=1 TMPDIR=
|
||||
PYTHON_EXECUTABLE=${Python3_EXECUTABLE}
|
||||
|
|
|
@ -1471,7 +1471,7 @@ class Base(unittest2.TestCase):
|
|||
|
||||
def getstdlibFlag(self):
|
||||
""" Returns the proper -stdlib flag, or empty if not required."""
|
||||
if self.platformIsDarwin() or self.getPlatform() == "freebsd" or self.getPlatform() == "openbsd" or self.getPlatform() == "secbsd":
|
||||
if self.platformIsDarwin() or self.getPlatform() == "freebsd" or self.getPlatform() == "openbsd":
|
||||
stdlibflag = "-stdlib=libc++"
|
||||
else: # this includes NetBSD
|
||||
stdlibflag = ""
|
||||
|
@ -1734,7 +1734,7 @@ class Base(unittest2.TestCase):
|
|||
cflags += "c++11"
|
||||
if self.platformIsDarwin() or self.getPlatform() == "freebsd":
|
||||
cflags += " -stdlib=libc++"
|
||||
elif self.getPlatform() == "openbsd" or self.getPlatform() == "secbsd":
|
||||
elif self.getPlatform() == "openbsd":
|
||||
cflags += " -stdlib=libc++"
|
||||
elif self.getPlatform() == "netbsd":
|
||||
# NetBSD defaults to libc++
|
||||
|
@ -1782,7 +1782,7 @@ class Base(unittest2.TestCase):
|
|||
return configuration.lldb_libs_dir
|
||||
|
||||
def getLibcPlusPlusLibs(self):
|
||||
if self.getPlatform() in ('freebsd', 'linux', 'netbsd', 'openbsd', 'secbsd'):
|
||||
if self.getPlatform() in ('freebsd', 'linux', 'netbsd', 'openbsd'):
|
||||
return ['libc++.so.1']
|
||||
else:
|
||||
return ['libc++.1.dylib', 'libc++abi.']
|
||||
|
|
|
@ -21,10 +21,6 @@ if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
|
|||
list(APPEND LLDB_PLUGINS lldbPluginProcessOpenBSD)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "SecBSD")
|
||||
list(APPEND LLDB_PLUGINS lldbPluginProcessOpenBSD)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
list(APPEND LLDB_PLUGINS lldbPluginObjectFileMachO)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
|
|
4
gnu/llvm/llvm/cmake/config.guess
vendored
4
gnu/llvm/llvm/cmake/config.guess
vendored
|
@ -206,10 +206,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:SecBSD:*:*)
|
||||
UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-secbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:ekkoBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
|
|
|
@ -99,7 +99,7 @@ function(add_llvm_symbol_exports target_name export_file)
|
|||
elseif(LLVM_HAVE_LINK_VERSION_SCRIPT)
|
||||
# Gold and BFD ld require a version script rather than a plain list.
|
||||
set(native_export_file "${target_name}.exports")
|
||||
# FIXME: Don't write the "local:" line on OpenBSD/SecBSD.
|
||||
# FIXME: Don't write the "local:" line on OpenBSD.
|
||||
# in the export file, also add a linker script to version LLVM symbols (form: LLVM_N.M)
|
||||
add_custom_command(OUTPUT ${native_export_file}
|
||||
COMMAND echo "LLVM_${LLVM_VERSION_MAJOR} {" > ${native_export_file}
|
||||
|
@ -263,7 +263,7 @@ function(add_link_opts target_name)
|
|||
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
|
||||
LINK_FLAGS " -Wl,-z,discard-unused=sections")
|
||||
endif()
|
||||
elseif(NOT MSVC AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD|SecBSD|AIX|OS390")
|
||||
elseif(NOT MSVC AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD|AIX|OS390")
|
||||
# TODO Revisit this later on z/OS.
|
||||
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
|
||||
LINK_FLAGS " -Wl,--gc-sections")
|
||||
|
|
|
@ -228,7 +228,7 @@ endif()
|
|||
|
||||
# Pass -Wl,-z,defs. This makes sure all symbols are defined. Otherwise a DSO
|
||||
# build might work on ELF but fail on MachO/COFF.
|
||||
if(NOT (CMAKE_SYSTEM_NAME MATCHES "Darwin|FreeBSD|OpenBSD|SecBSD|DragonFly|AIX|SunOS|OS390" OR
|
||||
if(NOT (CMAKE_SYSTEM_NAME MATCHES "Darwin|FreeBSD|OpenBSD|DragonFly|AIX|SunOS|OS390" OR
|
||||
WIN32 OR CYGWIN) AND
|
||||
NOT LLVM_USE_SANITIZER)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,defs")
|
||||
|
|
|
@ -356,7 +356,6 @@ enum {
|
|||
ELFOSABI_AROS = 15, // AROS
|
||||
ELFOSABI_FENIXOS = 16, // FenixOS
|
||||
ELFOSABI_CLOUDABI = 17, // Nuxi CloudABI
|
||||
ELFOSABI_SECBSD = 19, // SecBSD
|
||||
ELFOSABI_FIRST_ARCH = 64, // First architecture-specific OS ABI
|
||||
ELFOSABI_AMDGPU_HSA = 64, // AMD HSA runtime
|
||||
ELFOSABI_AMDGPU_PAL = 65, // AMD PAL runtime
|
||||
|
|
|
@ -1001,7 +1001,6 @@ static const EnumEntry<unsigned> ElfOSABI[] = {
|
|||
{"AROS", "AROS", ELF::ELFOSABI_AROS},
|
||||
{"FenixOS", "FenixOS", ELF::ELFOSABI_FENIXOS},
|
||||
{"CloudABI", "CloudABI", ELF::ELFOSABI_CLOUDABI},
|
||||
{"SecBSD", "UNIX - SecBSD", ELF::ELFOSABI_SECBSD},
|
||||
{"Standalone", "Standalone App", ELF::ELFOSABI_STANDALONE}
|
||||
};
|
||||
|
||||
|
|
|
@ -37,7 +37,6 @@ if(LLVM_BUILD_LLVM_DYLIB)
|
|||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "GNU")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "SecBSD")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS")) # FIXME: It should be "GNU ld for elf"
|
||||
|
|
|
@ -1480,10 +1480,6 @@ TEST(TripleTest, getARMCPUForArch) {
|
|||
llvm::Triple Triple("arm--openbsd");
|
||||
EXPECT_EQ("cortex-a8", Triple.getARMCPUForArch());
|
||||
}
|
||||
{
|
||||
llvm::Triple Triple("arm--secbsd");
|
||||
EXPECT_EQ("cortex-a8", Triple.getARMCPUForArch());
|
||||
}
|
||||
{
|
||||
llvm::Triple Triple("armv6-unknown-freebsd");
|
||||
EXPECT_EQ("arm1176jzf-s", Triple.getARMCPUForArch());
|
||||
|
|
|
@ -2156,7 +2156,7 @@ TEST_F(FileSystemTest, permissions) {
|
|||
// AIX and Solaris without root will mask off (i.e., lose) the sticky bit
|
||||
// on files.
|
||||
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && \
|
||||
!defined(__SecBSD__) && !defined(_AIX) && !(defined(__sun__) && defined(__svr4__))
|
||||
!defined(_AIX) && !(defined(__sun__) && defined(__svr4__))
|
||||
EXPECT_EQ(fs::setPermissions(TempPath, fs::sticky_bit), NoError);
|
||||
EXPECT_TRUE(CheckPermissions(fs::sticky_bit));
|
||||
|
||||
|
@ -2176,7 +2176,7 @@ TEST_F(FileSystemTest, permissions) {
|
|||
|
||||
EXPECT_EQ(fs::setPermissions(TempPath, fs::all_perms), NoError);
|
||||
EXPECT_TRUE(CheckPermissions(fs::all_perms));
|
||||
#endif // !FreeBSD && !NetBSD && !OpenBSD && !SecBSD && !AIX
|
||||
#endif // !FreeBSD && !NetBSD && !OpenBSD && !AIX
|
||||
|
||||
EXPECT_EQ(fs::setPermissions(TempPath, fs::all_perms & ~fs::sticky_bit),
|
||||
NoError);
|
||||
|
|
|
@ -86,7 +86,6 @@ static_library("Driver") {
|
|||
"ToolChains/PPCLinux.cpp",
|
||||
"ToolChains/PS4CPU.cpp",
|
||||
"ToolChains/RISCVToolchain.cpp",
|
||||
"ToolChains/SecBSD.cpp",
|
||||
"ToolChains/Solaris.cpp",
|
||||
"ToolChains/TCE.cpp",
|
||||
"ToolChains/VEToolchain.cpp",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue