14#include "llvm/Option/ArgList.h"
15#include "llvm/Support/Path.h"
26 :
Linux(D, Triple, Args) {
80 ArgStringList &CC1Args)
const {
81 if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
84 if (DriverArgs.hasArg(options::OPT_nobuiltininc) &&
85 DriverArgs.hasArg(options::OPT_nostdlibinc))
88 if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
90 llvm::sys::path::append(P,
"include");
94 if (!DriverArgs.hasArg(options::OPT_nostdlibinc)) {
95 if (
const char *cl_include_dir = getenv(
"NCC_C_INCLUDE_PATH")) {
97 const char EnvPathSeparatorStr[] = {llvm::sys::EnvPathSeparator,
'\0'};
98 StringRef(cl_include_dir).split(Dirs, StringRef(EnvPathSeparatorStr));
103 getDriver().SysRoot +
"/opt/nec/ve/include");
109 ArgStringList &CC1Args,
111 CC1Args.push_back(
"-nostdsysteminc");
112 bool UseInitArrayDefault =
true;
113 if (!DriverArgs.hasFlag(options::OPT_fuse_init_array,
114 options::OPT_fno_use_init_array, UseInitArrayDefault))
115 CC1Args.push_back(
"-fno-use-init-array");
119 ArgStringList &CC1Args)
const {
120 if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc) ||
121 DriverArgs.hasArg(options::OPT_nostdlibinc) ||
122 DriverArgs.hasArg(options::OPT_nostdincxx))
124 if (
const char *cl_include_dir = getenv(
"NCC_CPLUS_INCLUDE_PATH")) {
126 const char EnvPathSeparatorStr[] = {llvm::sys::EnvPathSeparator,
'\0'};
127 StringRef(cl_include_dir).split(Dirs, StringRef(EnvPathSeparatorStr));
139 ArgStringList &CmdArgs)
const {
141 "Only -lc++ (aka libxx) is supported in this toolchain.");
147 CmdArgs.push_back(
"-rpath");
148 CmdArgs.push_back(Args.MakeArgString(*Path));
151 CmdArgs.push_back(
"-lc++");
152 if (Args.hasArg(options::OPT_fexperimental_library))
153 CmdArgs.push_back(
"-lc++experimental");
154 CmdArgs.push_back(
"-lc++abi");
155 CmdArgs.push_back(
"-lunwind");
157 CmdArgs.push_back(
"-lpthread");
159 CmdArgs.push_back(
"-ldl");
162llvm::ExceptionHandling
165 return llvm::ExceptionHandling::SjLj;
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
The JSON file list parser is used to communicate input to InstallAPI.