forked from OSchip/llvm-project
Driver/Darwin: Be bug compatible with GCC and ignore -pg on ARM.
llvm-svn: 126767
This commit is contained in:
parent
df26df726e
commit
733b0f87df
|
@ -151,6 +151,9 @@ public:
|
|||
/// particular PIC mode.
|
||||
virtual const char *GetForcedPicModel() const = 0;
|
||||
|
||||
/// SupportsProfiling - Does this tool chain support -pg.
|
||||
virtual bool SupportsProfiling() const { return true; }
|
||||
|
||||
/// Does this tool chain support Objective-C garbage collection.
|
||||
virtual bool SupportsObjCGC() const { return false; }
|
||||
|
||||
|
|
|
@ -918,6 +918,11 @@ const char *Darwin::GetForcedPicModel() const {
|
|||
return 0;
|
||||
}
|
||||
|
||||
bool Darwin::SupportsProfiling() const {
|
||||
// Profiling instrumentation is only supported on x86.
|
||||
return getArchName() == "i386" || getArchName() == "x86_64";
|
||||
}
|
||||
|
||||
bool Darwin::SupportsObjCGC() const {
|
||||
// Garbage collection is supported everywhere except on iPhone OS.
|
||||
return !isTargetIPhoneOS();
|
||||
|
|
|
@ -212,6 +212,8 @@ public:
|
|||
virtual const char *GetDefaultRelocationModel() const;
|
||||
virtual const char *GetForcedPicModel() const;
|
||||
|
||||
virtual bool SupportsProfiling() const;
|
||||
|
||||
virtual bool SupportsObjCGC() const;
|
||||
|
||||
virtual bool UseDwarfDebugFlags() const;
|
||||
|
|
|
@ -1385,7 +1385,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls);
|
||||
Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions);
|
||||
Args.AddLastArg(CmdArgs, options::OPT_flimit_debug_info);
|
||||
Args.AddLastArg(CmdArgs, options::OPT_pg);
|
||||
if (getToolChain().SupportsProfiling())
|
||||
Args.AddLastArg(CmdArgs, options::OPT_pg);
|
||||
|
||||
// -flax-vector-conversions is default.
|
||||
if (!Args.hasFlag(options::OPT_flax_vector_conversions,
|
||||
|
@ -2184,7 +2185,8 @@ void darwin::CC1::AddCC1OptionsArgs(const ArgList &Args, ArgStringList &CmdArgs,
|
|||
|
||||
if (Args.hasArg(options::OPT_v))
|
||||
CmdArgs.push_back("-version");
|
||||
if (Args.hasArg(options::OPT_pg))
|
||||
if (Args.hasArg(options::OPT_pg) &&
|
||||
getToolChain().SupportsProfiling())
|
||||
CmdArgs.push_back("-p");
|
||||
Args.AddLastArg(CmdArgs, options::OPT_p);
|
||||
|
||||
|
@ -2817,7 +2819,8 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
}
|
||||
}
|
||||
} else {
|
||||
if (Args.hasArg(options::OPT_pg)) {
|
||||
if (Args.hasArg(options::OPT_pg) &&
|
||||
getToolChain().SupportsProfiling()) {
|
||||
if (Args.hasArg(options::OPT_static) ||
|
||||
Args.hasArg(options::OPT_object) ||
|
||||
Args.hasArg(options::OPT_preload)) {
|
||||
|
|
Loading…
Reference in New Issue