git: b762974cf4b9 - main - clang: stop linking _p libs for -pg as of FreeBSD 14
Rodney W. Grimes
freebsd at gndrsh.dnsmgr.net
Mon Jun 28 16:30:11 UTC 2021
> The branch main has been updated by emaste:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=b762974cf4b9ea77f1decf4a6d829372f0a97f75
>
> commit b762974cf4b9ea77f1decf4a6d829372f0a97f75
> Author: Ed Maste <emaste at FreeBSD.org>
> AuthorDate: 2021-06-26 23:58:16 +0000
> Commit: Ed Maste <emaste at FreeBSD.org>
> CommitDate: 2021-06-27 17:12:12 +0000
>
> clang: stop linking _p libs for -pg as of FreeBSD 14
>
> In FreeBSD 14 we will stop providing _p libraries (compiled with -pg).
So if this is being done in 14 only, why is there a MFC marker?
Should that of been MFC: never?
> Reviewed by: dim (upstream)
> Obtained from: LLVM 699d47472c3f
> MFC after: 2 weeks
> Sponsored by: The FreeBSD Foundation
> Differential Revision: https://reviews.freebsd.org/D30861
> ---
> .../clang/lib/Driver/ToolChains/FreeBSD.cpp | 17 ++++++++++-------
> 1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.cpp b/contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.cpp
> index 37c0a68234ed..652e5c4cb9e6 100644
> --- a/contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.cpp
> +++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.cpp
> @@ -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:
>
--
Rod Grimes rgrimes at freebsd.org
More information about the dev-commits-src-all
mailing list