diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-04-12 03:05:03 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-04-12 03:05:03 +0000 |
commit | c066d9cf55686a1fff5b7fe1bd1b77bdac6dca54 (patch) | |
tree | 652c230870a3a7ad40b03c18f09b258efa67bc51 /clang/lib/Basic/Targets.cpp | |
parent | 6efde2fb451bf6c5538ca38cfb44cf84a7bb0e72 (diff) | |
download | bcm5719-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.cpp | 4 |
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; } |