[cfe-commits] [patch] profiling support for OpenBSD
Eli Friedman
eli.friedman at gmail.com
Mon Dec 12 11:06:46 PST 2011
On Sat, Dec 10, 2011 at 3:14 PM, Jonathan Gray <jsg at openbsd.org> wrote:
> The following lets profiling work on OpenBSD. While here
> fix the symbol prefix to be empty rather than an underscore.
>
> Index: lib/Basic/Targets.cpp
> ===================================================================
> --- lib/Basic/Targets.cpp (revision 146203)
> +++ lib/Basic/Targets.cpp (working copy)
> @@ -371,7 +371,26 @@
> }
> public:
> OpenBSDTargetInfo(const std::string &triple)
> - : OSTargetInfo<Target>(triple) {}
> + : OSTargetInfo<Target>(triple) {
> + this->UserLabelPrefix = "";
> +
> + llvm::Triple Triple(triple);
> + switch (Triple.getArch()) {
> + default:
> + case llvm::Triple::x86:
> + case llvm::Triple::x86_64:
> + case llvm::Triple::arm:
> + case llvm::Triple::sparc:
> + this->MCountName = "__mcount";
> + break;
> + case llvm::Triple::mips64:
> + case llvm::Triple::mips64el:
> + case llvm::Triple::ppc:
> + case llvm::Triple::sparcv9:
> + this->MCountName = "_mcount";
> + break;
> + }
> + }
> };
>
> // PSP Target
> Index: lib/Driver/Tools.cpp
> ===================================================================
> --- lib/Driver/Tools.cpp (revision 146203)
> +++ lib/Driver/Tools.cpp (working copy)
> @@ -3890,9 +3890,13 @@
> if (!Args.hasArg(options::OPT_nostdlib) &&
> !Args.hasArg(options::OPT_nostartfiles)) {
> if (!Args.hasArg(options::OPT_shared)) {
> + if (Args.hasArg(options::OPT_pg))
> + CmdArgs.push_back(Args.MakeArgString(
> + getToolChain().GetFilePath("gcrt0.o")));
> + else
> + CmdArgs.push_back(Args.MakeArgString(
> + getToolChain().GetFilePath("crt0.o")));
> CmdArgs.push_back(Args.MakeArgString(
> - getToolChain().GetFilePath("crt0.o")));
> - CmdArgs.push_back(Args.MakeArgString(
> getToolChain().GetFilePath("crtbegin.o")));
> } else {
> CmdArgs.push_back(Args.MakeArgString(
> @@ -3916,7 +3920,10 @@
> !Args.hasArg(options::OPT_nodefaultlibs)) {
> if (D.CCCIsCXX) {
> getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs);
> - CmdArgs.push_back("-lm");
> + if (Args.hasArg(options::OPT_pg))
> + CmdArgs.push_back("-lm_p");
> + else
> + CmdArgs.push_back("-lm");
> }
>
> // FIXME: For some reason GCC passes -lgcc before adding
> @@ -3926,7 +3933,10 @@
> if (Args.hasArg(options::OPT_pthread))
> CmdArgs.push_back("-lpthread");
> if (!Args.hasArg(options::OPT_shared))
> - CmdArgs.push_back("-lc");
> + if (Args.hasArg(options::OPT_pg))
> + CmdArgs.push_back("-lc_p");
> + else
> + CmdArgs.push_back("-lc");
> CmdArgs.push_back("-lgcc");
> }
>
Patch looks fine.
If you want me to commit, please attach the patch rather than putting it inline.
-Eli
More information about the cfe-commits
mailing list