A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/OHOS_8cpp_source.html below:

clang: lib/Driver/ToolChains/OHOS.cpp Source File

12#include "clang/Config/config.h" 18#include "llvm/Option/ArgList.h" 19#include "llvm/ProfileData/InstrProf.h" 20#include "llvm/Support/FileSystem.h" 21#include "llvm/Support/Path.h" 22#include "llvm/Support/VirtualFileSystem.h" 23#include "llvm/Support/ScopedPrinter.h" 28using namespace clang

;

44 Multilib

(

"/a7_soft"

, {}, {}, {

"-mcpu=cortex-a7"

,

"-mfloat-abi=soft"

}));

47 Multilib

(

"/a7_softfp_neon-vfpv4"

, {}, {},

48

{

"-mcpu=cortex-a7"

,

"-mfloat-abi=softfp"

,

"-mfpu=neon-vfpv4"

}));

51 Multilib

(

"/a7_hard_neon-vfpv4"

, {}, {},

52

{

"-mcpu=cortex-a7"

,

"-mfloat-abi=hard"

,

"-mfpu=neon-vfpv4"

}));

54 if

(Multilibs.

select

(

D

, Flags, Result.SelectedMultilibs)) {

55

Result.Multilibs = Multilibs;

63 const

llvm::Triple &TargetTriple,

64

StringRef

Path

,

const

ArgList &Args,

68 if

(

const

Arg *A = Args.getLastArg(options::OPT_mcpu_EQ))

69

IsA7 = A->getValue() == StringRef(

"cortex-a7"

);

73 if

(

const

Arg *A = Args.getLastArg(options::OPT_mfpu_EQ))

74

IsMFPU = A->getValue() == StringRef(

"neon-vfpv4"

);

79 "-mfloat-abi=soft"

, Flags);

81 "-mfloat-abi=softfp"

, Flags);

83 "-mfloat-abi=hard"

, Flags);

91 switch

(

T

.getArch()) {

99 case

llvm::Triple::arm:

100 case

llvm::Triple::thumb:

101 return T

.isOSLiteOS() ?

"arm-liteos-ohos"

:

"arm-linux-ohos"

;

102 case

llvm::Triple::riscv32:

103 return "riscv32-linux-ohos"

;

104 case

llvm::Triple::riscv64:

105 return "riscv64-linux-ohos"

;

106 case

llvm::Triple::mipsel:

107 return "mipsel-linux-ohos"

;

108 case

llvm::Triple::x86:

109 return "i686-linux-ohos"

;

110 case

llvm::Triple::x86_64:

111 return "x86_64-linux-ohos"

;

112 case

llvm::Triple::aarch64:

113 return "aarch64-linux-ohos"

;

119 const

llvm::Triple &TargetTriple,

120

StringRef SysRoot)

const

{

124static

std::string

makePath

(

const

std::initializer_list<std::string> &IL) {

126 for

(

const auto

&S : IL)

127

llvm::sys::path::append(

P

, S);

128 return static_cast<

std::string

>

(

P

.str());

147 if

(

getVFS

().exists(CandidateLibPath))

160

std::string SysRootLibPath =

makePath

({SysRoot,

"usr"

,

"lib"

});

165 makePath

({

D

.Dir,

".."

,

"lib"

, MultiarchTriple,

176 const

ArgList &Args)

const

{

177 if

(Arg *A = Args.getLastArg(clang::driver::options::OPT_rtlib_EQ)) {

178

StringRef

Value

= A->getValue();

179 if

(

Value

!=

"compiler-rt"

)

181

<< A->getAsString(Args);

189 if

(Arg *A = Args.getLastArg(options::OPT_stdlib_EQ)) {

190

StringRef

Value

= A->getValue();

191 if

(

Value

!=

"libc++"

)

193

<< A->getAsString(Args);

200

ArgStringList &CC1Args)

const

{

202 const

llvm::Triple &Triple =

getTriple

();

205 if

(DriverArgs.hasArg(options::OPT_nostdinc))

208 if

(!DriverArgs.hasArg(options::OPT_nobuiltininc)) {

210

llvm::sys::path::append(

P

,

"include"

);

214 if

(DriverArgs.hasArg(options::OPT_nostdlibinc))

218

StringRef CIncludeDirs(C_INCLUDE_DIRS);

219 if

(CIncludeDirs !=

""

) {

221

CIncludeDirs.split(dirs,

":"

);

222 for

(StringRef dir : dirs) {

224

llvm::sys::path::is_absolute(dir) ? StringRef(SysRoot) :

""

;

231

SysRoot +

"/usr/include/"

+

238

ArgStringList &CC1Args)

const

{

239 if

(DriverArgs.hasArg(options::OPT_nostdlibinc) ||

240

DriverArgs.hasArg(options::OPT_nostdincxx))

246

std::string IncTargetPath =

248 if

(

getVFS

().exists(IncTargetPath)) {

256

llvm_unreachable(

"invalid stdlib name"

);

261

ArgStringList &CmdArgs)

const

{

264

CmdArgs.push_back(

"-lc++"

);

265

CmdArgs.push_back(

"-lc++abi"

);

266

CmdArgs.push_back(

"-lunwind"

);

270

llvm_unreachable(

"invalid stdlib name"

);

275

std::string SysRoot =

279 if

(!llvm::sys::fs::exists(SysRoot))

280 return

std::string();

283 return

llvm::sys::fs::exists(ArchRoot) ? ArchRoot : SysRoot;

290 const

llvm::Triple &Triple =

getTriple

();

293 P

.assign(

D

.ResourceDir);

294

llvm::sys::path::append(

P

,

"lib"

,

D

.getTargetTriple(), SelectedMultilib.

gccSuffix

());

295

Paths.push_back(

P

.c_str());

298 P

.assign(

D

.ResourceDir);

299

llvm::sys::path::append(

P

,

"lib"

, Triple.str(), SelectedMultilib.

gccSuffix

());

300

Paths.push_back(

P

.c_str());

303 P

.assign(

D

.ResourceDir);

307

Paths.push_back(

P

.c_str());

313 const

llvm::Triple &Triple =

getTriple

();

314 const

llvm::Triple::ArchType Arch =

getArch

();

316

assert(Triple.isMusl());

317

std::string ArchName;

321 case

llvm::Triple::arm:

322 case

llvm::Triple::thumb:

326 case

llvm::Triple::armeb:

327 case

llvm::Triple::thumbeb:

332

ArchName = Triple.getArchName().str();

338 return "/lib/ld-musl-"

+ ArchName +

".so.1"

;

360

llvm::sys::path::append(

361 Path

, Prefix + Twine(

"clang_rt."

) + Component + Suffix);

362 return static_cast<

std::string

>

(

Path

.str());

366

CmdArgs.push_back(

"-z"

);

367

CmdArgs.push_back(

"now"

);

368

CmdArgs.push_back(

"-z"

);

369

CmdArgs.push_back(

"relro"

);

370

CmdArgs.push_back(

"-z"

);

371

CmdArgs.push_back(

"max-page-size=4096"

);

373 if

(

getArch

() != llvm::Triple::mipsel)

374

CmdArgs.push_back(

"--hash-style=both"

);

375#ifdef ENABLE_LINKER_BUILD_ID 376

CmdArgs.push_back(

"--build-id"

);

378

CmdArgs.push_back(

"--enable-new-dtags"

);

383

Res |= SanitizerKind::Address;

384

Res |= SanitizerKind::PointerCompare;

385

Res |= SanitizerKind::PointerSubtract;

386

Res |= SanitizerKind::Fuzzer;

387

Res |= SanitizerKind::FuzzerNoLink;

388

Res |= SanitizerKind::Memory;

389

Res |= SanitizerKind::Vptr;

390

Res |= SanitizerKind::SafeStack;

391

Res |= SanitizerKind::Scudo;

399

llvm::opt::ArgStringList &CmdArgs)

const

{

403

CmdArgs.push_back(Args.MakeArgString(

404

Twine(

"-u"

, llvm::getInstrProfRuntimeHookVarName())));

417 if

(Args.getLastArg(options::OPT_unwindlib_EQ))

static bool findOHOSMuslMultilibs(const Driver &D, const Multilib::flags_list &Flags, DetectedMultilibs &Result)

static std::string makePath(const std::initializer_list< std::string > &IL)

static bool findOHOSMultilibs(const Driver &D, const ToolChain &TC, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, DetectedMultilibs &Result)

The base class of the type hierarchy.

Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...

std::string SysRoot

sysroot, if present

DiagnosticBuilder Diag(unsigned DiagID) const

std::string ResourceDir

The path to the compiler resource directory.

std::string Dir

The path the driver executable was in, as invoked from the command line.

See also MultilibSetBuilder for combining multilibs into a set.

bool select(const Driver &D, const Multilib::flags_list &Flags, llvm::SmallVectorImpl< Multilib > &, llvm::SmallVector< StringRef > *=nullptr) const

Select compatible variants,.

void push_back(const Multilib &M)

Add a completed Multilib to the set.

This corresponds to a single GCC Multilib, or a segment of one controlled by a command line flag.

const std::string & gccSuffix() const

Get the detected GCC installation path suffix for the multi-arch target variant.

std::vector< std::string > flags_list

The JSON file list parser is used to communicate input to InstallAPI.

@ Result

The result type of a method or function.

const FunctionProtoType * T


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4