[PATCH] D98574: [Sparc] Define the same macros for -mcpu=v9 as GCC on Linux

Jessica Clarke via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Mar 13 16:53:48 PST 2021


jrtc27 requested changes to this revision.
jrtc27 added inline comments.
This revision now requires changes to proceed.


================
Comment at: clang/lib/Basic/Targets/Sparc.cpp:160-164
+      // Linux doesn't need these variants, but the BSDs do.
+      if (getTriple().getOS() != llvm::Triple::Linux) {
+        Builder.defineMacro("__sparcv9");
+        Builder.defineMacro("__sparcv9__");
+      }
----------------
This is wrong, they should never be defined on any OS for 32-bit SPARC; see https://github.com/gcc-mirror/gcc/blob/master/gcc/config/sparc/netbsd-elf.h#L22 for example (FreeBSD only ever had a 64-bit port so isn't interesting to look at). That is, the contents of this `if` should just be deleted, leaving just `__sparc_v9__`.


================
Comment at: clang/lib/Basic/Targets/Sparc.cpp:246-256
+  if (getTriple().getOS() == llvm::Triple::Linux) {
     Builder.defineMacro("__sparc_v9__");
-    Builder.defineMacro("__sparcv9__");
+  } else {
+    Builder.defineMacro("__sparcv9");
+    // Solaris doesn't need these variants, but the BSDs do.
+    if (getTriple().getOS() != llvm::Triple::Solaris) {
+      Builder.defineMacro("__sparc64__");
----------------
This doesn't need changing, we can define more things than GCC to keep it simple.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D98574/new/

https://reviews.llvm.org/D98574



More information about the cfe-commits mailing list