summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2016-04-12 03:05:03 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2016-04-12 03:05:03 +0000
commitc066d9cf55686a1fff5b7fe1bd1b77bdac6dca54 (patch)
tree652c230870a3a7ad40b03c18f09b258efa67bc51 /clang/lib/Basic/Targets.cpp
parent6efde2fb451bf6c5538ca38cfb44cf84a7bb0e72 (diff)
downloadbcm5719-llvm-c066d9cf55686a1fff5b7fe1bd1b77bdac6dca54.tar.gz
bcm5719-llvm-c066d9cf55686a1fff5b7fe1bd1b77bdac6dca54.zip
Basic: fix profiling with GNU EABI
The GNU profiling support indicates that the interface is `_mcount` rather than `mcount`. Conditionalise the behaviour according to the `-meabi gnu` flag. Resolves PR27311 llvm-svn: 266039
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r--clang/lib/Basic/Targets.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index b6253de1570..7639b04d25a 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -5464,6 +5464,10 @@ public:
// AArch64 targets default to using the ARM C++ ABI.
TheCXXABI.set(TargetCXXABI::GenericAArch64);
+
+ if (Triple.getOS() == llvm::Triple::Linux ||
+ Triple.getOS() == llvm::Triple::UnknownOS)
+ this->MCountName = Opts.EABIVersion == "gnu" ? "\01_mcount" : "mcount";
}
StringRef getABI() const override { return ABI; }
OpenPOWER on IntegriCloud