clang: stop linking _p libs for -pg as of FreeBSD 14
In FreeBSD 14 we will stop providing _p libraries (compiled with -pg). Reviewed by: dim (upstream) Obtained from: LLVM 699d47472c3f MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D30861
This commit is contained in:
parent
61b4c62718
commit
b762974cf4
@ -293,6 +293,8 @@ void freebsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
addLinkerCompressDebugSectionsOption(ToolChain, Args, CmdArgs);
|
||||
AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA);
|
||||
|
||||
bool Profiling = Args.hasArg(options::OPT_pg) &&
|
||||
ToolChain.getTriple().getOSMajorVersion() < 14;
|
||||
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
|
||||
// Use the static OpenMP runtime with -static-openmp
|
||||
bool StaticOpenMP = Args.hasArg(options::OPT_static_openmp) &&
|
||||
@ -302,7 +304,7 @@ void freebsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
if (D.CCCIsCXX()) {
|
||||
if (ToolChain.ShouldLinkCXXStdlib(Args))
|
||||
ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs);
|
||||
if (Args.hasArg(options::OPT_pg))
|
||||
if (Profiling)
|
||||
CmdArgs.push_back("-lm_p");
|
||||
else
|
||||
CmdArgs.push_back("-lm");
|
||||
@ -313,13 +315,13 @@ void freebsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
linkXRayRuntimeDeps(ToolChain, CmdArgs);
|
||||
// FIXME: For some reason GCC passes -lgcc and -lgcc_s before adding
|
||||
// the default system libraries. Just mimic this for now.
|
||||
if (Args.hasArg(options::OPT_pg))
|
||||
if (Profiling)
|
||||
CmdArgs.push_back("-lgcc_p");
|
||||
else
|
||||
CmdArgs.push_back("-lgcc");
|
||||
if (Args.hasArg(options::OPT_static)) {
|
||||
CmdArgs.push_back("-lgcc_eh");
|
||||
} else if (Args.hasArg(options::OPT_pg)) {
|
||||
} else if (Profiling) {
|
||||
CmdArgs.push_back("-lgcc_eh_p");
|
||||
} else {
|
||||
CmdArgs.push_back("--as-needed");
|
||||
@ -328,13 +330,13 @@ void freebsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_pthread)) {
|
||||
if (Args.hasArg(options::OPT_pg))
|
||||
if (Profiling)
|
||||
CmdArgs.push_back("-lpthread_p");
|
||||
else
|
||||
CmdArgs.push_back("-lpthread");
|
||||
}
|
||||
|
||||
if (Args.hasArg(options::OPT_pg)) {
|
||||
if (Profiling) {
|
||||
if (Args.hasArg(options::OPT_shared))
|
||||
CmdArgs.push_back("-lc");
|
||||
else
|
||||
@ -347,7 +349,7 @@ void freebsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
||||
if (Args.hasArg(options::OPT_static)) {
|
||||
CmdArgs.push_back("-lgcc_eh");
|
||||
} else if (Args.hasArg(options::OPT_pg)) {
|
||||
} else if (Profiling) {
|
||||
CmdArgs.push_back("-lgcc_eh_p");
|
||||
} else {
|
||||
CmdArgs.push_back("--as-needed");
|
||||
@ -416,7 +418,8 @@ void FreeBSD::addLibStdCxxIncludePaths(
|
||||
void FreeBSD::AddCXXStdlibLibArgs(const ArgList &Args,
|
||||
ArgStringList &CmdArgs) const {
|
||||
CXXStdlibType Type = GetCXXStdlibType(Args);
|
||||
bool Profiling = Args.hasArg(options::OPT_pg);
|
||||
bool Profiling =
|
||||
Args.hasArg(options::OPT_pg) && getTriple().getOSMajorVersion() < 14;
|
||||
|
||||
switch (Type) {
|
||||
case ToolChain::CST_Libcxx:
|
||||
|
Loading…
Reference in New Issue
Block a user