diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 0a1d0fd85e7ae..00d254b70277d 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -39,6 +39,11 @@ code bases. - The ``le32`` and ``le64`` targets have been removed. +- ``clang -m32`` defaults to ``-mcpu=v9`` on SPARC Linux now. Distros + still supporting SPARC V8 CPUs need to specify ``-mcpu=v8`` with a + `config file + `_. + - The ``clang-rename`` tool has been removed. C/C++ Language Potentially Breaking Changes diff --git a/clang/lib/Driver/ToolChains/Arch/Sparc.cpp b/clang/lib/Driver/ToolChains/Arch/Sparc.cpp index f7f0a265fef68..55fbc8b30698b 100644 --- a/clang/lib/Driver/ToolChains/Arch/Sparc.cpp +++ b/clang/lib/Driver/ToolChains/Arch/Sparc.cpp @@ -125,7 +125,8 @@ std::string sparc::getSparcTargetCPU(const Driver &D, const ArgList &Args, return std::string(CPUName); } - if (Triple.getArch() == llvm::Triple::sparc && Triple.isOSSolaris()) + if (Triple.getArch() == llvm::Triple::sparc && + (Triple.isOSSolaris() || Triple.isOSLinux())) return "v9"; return ""; } diff --git a/clang/test/Preprocessor/predefined-arch-macros.c b/clang/test/Preprocessor/predefined-arch-macros.c index a149c69ee0cdb..35801e758cc58 100644 --- a/clang/test/Preprocessor/predefined-arch-macros.c +++ b/clang/test/Preprocessor/predefined-arch-macros.c @@ -4137,7 +4137,8 @@ // CHECK_SPARC: #define __sparc__ 1 // CHECK_SPARC-NOT: #define __sparcv9 1 // CHECK_SPARC-NOT: #define __sparcv9__ 1 -// CHECK_SPARC: #define __sparcv8 1 +// CHECK_SPARC: #define __sparc_v9__ 1 +// CHECK_SPARC-NOT: #define __sparcv8 1 // CHECK_SPARC-NOT: #define __sparcv9 1 // CHECK_SPARC-NOT: #define __sparcv9__ 1