14#include "llvm/Option/ArgList.h"
15#include "llvm/Support/FileSystem.h"
16#include "llvm/Support/Path.h"
27 :
Linux(D, Triple, Args) {
78 ArgStringList &CC1Args)
const {
79 if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
82 if (DriverArgs.hasArg(options::OPT_nobuiltininc) &&
83 DriverArgs.hasArg(options::OPT_nostdlibinc))
86 if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
88 llvm::sys::path::append(
P,
"include");
92 if (!DriverArgs.hasArg(options::OPT_nostdlibinc)) {
93 if (
const char *cl_include_dir = getenv(
"NCC_C_INCLUDE_PATH")) {
95 const char EnvPathSeparatorStr[] = {llvm::sys::EnvPathSeparator,
'\0'};
96 StringRef(cl_include_dir).split(Dirs, StringRef(EnvPathSeparatorStr));
101 getDriver().SysRoot +
"/opt/nec/ve/include");
107 ArgStringList &CC1Args,
109 CC1Args.push_back(
"-nostdsysteminc");
110 bool UseInitArrayDefault =
true;
111 if (!DriverArgs.hasFlag(options::OPT_fuse_init_array,
112 options::OPT_fno_use_init_array, UseInitArrayDefault))
113 CC1Args.push_back(
"-fno-use-init-array");
117 ArgStringList &CC1Args)
const {
118 if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc) ||
119 DriverArgs.hasArg(options::OPT_nostdlibinc) ||
120 DriverArgs.hasArg(options::OPT_nostdincxx))
122 if (
const char *cl_include_dir = getenv(
"NCC_CPLUS_INCLUDE_PATH")) {
124 const char EnvPathSeparatorStr[] = {llvm::sys::EnvPathSeparator,
'\0'};
125 StringRef(cl_include_dir).split(Dirs, StringRef(EnvPathSeparatorStr));
137 ArgStringList &CmdArgs)
const {
139 "Only -lc++ (aka libxx) is supported in this toolchain.");
143 CmdArgs.push_back(
"-lc++");
144 if (Args.hasArg(options::OPT_fexperimental_library))
145 CmdArgs.push_back(
"-lc++experimental");
146 CmdArgs.push_back(
"-lc++abi");
147 CmdArgs.push_back(
"-lunwind");
149 CmdArgs.push_back(
"-lpthread");
151 CmdArgs.push_back(
"-ldl");
154llvm::ExceptionHandling
157 return llvm::ExceptionHandling::SjLj;
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...