forked from OSchip/llvm-project
When given one of the applicable coverage flags, try to link against
libprofile_rt.a. On Darwin, don't try to link -lgcov. llvm-svn: 132006
This commit is contained in:
parent
2486729839
commit
82fe5f43d9
|
@ -3124,12 +3124,6 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(LinkingOutput);
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_fprofile_arcs) ||
|
||||
Args.hasArg(options::OPT_fprofile_generate) ||
|
||||
Args.hasArg(options::OPT_fcreate_profile) ||
|
||||
Args.hasArg(options::OPT_coverage))
|
||||
CmdArgs.push_back("-lgcov");
|
||||
|
||||
if (Args.hasArg(options::OPT_fnested_functions))
|
||||
CmdArgs.push_back("-allow_stack_execute");
|
||||
|
||||
|
@ -3150,6 +3144,12 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
// endfile_spec is empty.
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_fprofile_arcs) ||
|
||||
Args.hasArg(options::OPT_fprofile_generate) ||
|
||||
Args.hasArg(options::OPT_fcreate_profile) ||
|
||||
Args.hasArg(options::OPT_coverage))
|
||||
CmdArgs.push_back("-l:libprofile_rt.a");
|
||||
|
||||
Args.AddAllArgs(CmdArgs, options::OPT_T_Group);
|
||||
Args.AddAllArgs(CmdArgs, options::OPT_F);
|
||||
|
||||
|
@ -3307,6 +3307,12 @@ void auroraux::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
getToolChain().GetFilePath("crtend.o")));
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_fprofile_arcs) ||
|
||||
Args.hasArg(options::OPT_fprofile_generate) ||
|
||||
Args.hasArg(options::OPT_fcreate_profile) ||
|
||||
Args.hasArg(options::OPT_coverage))
|
||||
CmdArgs.push_back("-l:libprofile_rt.a");
|
||||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("ld"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
|
@ -3606,6 +3612,12 @@ void freebsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
"crtn.o")));
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_fprofile_arcs) ||
|
||||
Args.hasArg(options::OPT_fprofile_generate) ||
|
||||
Args.hasArg(options::OPT_fcreate_profile) ||
|
||||
Args.hasArg(options::OPT_coverage))
|
||||
CmdArgs.push_back("-l:libprofile_rt.a");
|
||||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("ld"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
|
@ -3759,6 +3771,12 @@ void netbsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
"crtn.o")));
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_fprofile_arcs) ||
|
||||
Args.hasArg(options::OPT_fprofile_generate) ||
|
||||
Args.hasArg(options::OPT_fcreate_profile) ||
|
||||
Args.hasArg(options::OPT_coverage))
|
||||
CmdArgs.push_back("-l:libprofile_rt.a");
|
||||
|
||||
const char *Exec = Args.MakeArgString(FindTargetProgramPath(getToolChain(),
|
||||
ToolTriple.getTriple(),
|
||||
"ld"));
|
||||
|
@ -3981,6 +3999,12 @@ void linuxtools::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
}
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_fprofile_arcs) ||
|
||||
Args.hasArg(options::OPT_fprofile_generate) ||
|
||||
Args.hasArg(options::OPT_fcreate_profile) ||
|
||||
Args.hasArg(options::OPT_coverage))
|
||||
CmdArgs.push_back("-l:libprofile_rt.a");
|
||||
|
||||
if (Args.hasArg(options::OPT_use_gold_plugin)) {
|
||||
CmdArgs.push_back("-plugin");
|
||||
std::string Plugin = ToolChain.getDriver().Dir + "/../lib/LLVMgold.so";
|
||||
|
@ -4063,6 +4087,12 @@ void minix::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
"/usr/gnu/lib/libend.a")));
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_fprofile_arcs) ||
|
||||
Args.hasArg(options::OPT_fprofile_generate) ||
|
||||
Args.hasArg(options::OPT_fcreate_profile) ||
|
||||
Args.hasArg(options::OPT_coverage))
|
||||
CmdArgs.push_back("-l:libprofile_rt.a");
|
||||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("/usr/gnu/bin/gld"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
|
@ -4218,6 +4248,12 @@ void dragonfly::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
getToolChain().GetFilePath("crtn.o")));
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_fprofile_arcs) ||
|
||||
Args.hasArg(options::OPT_fprofile_generate) ||
|
||||
Args.hasArg(options::OPT_fcreate_profile) ||
|
||||
Args.hasArg(options::OPT_coverage))
|
||||
CmdArgs.push_back("-l:libprofile_rt.a");
|
||||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("ld"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
|
|
Loading…
Reference in New Issue