summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/patches/patch-r262262-clang-r198911-sparc.diff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/patches/patch-r262262-clang-r198911-sparc.diff')
-rw-r--r--contrib/llvm/patches/patch-r262262-clang-r198911-sparc.diff46
1 files changed, 46 insertions, 0 deletions
diff --git a/contrib/llvm/patches/patch-r262262-clang-r198911-sparc.diff b/contrib/llvm/patches/patch-r262262-clang-r198911-sparc.diff
new file mode 100644
index 0000000..d50b53f
--- /dev/null
+++ b/contrib/llvm/patches/patch-r262262-clang-r198911-sparc.diff
@@ -0,0 +1,46 @@
+Pull in r198911 from upstream clang trunk (by Jakob Stoklund Olesen):
+
+ Pass -32/-64 to the assembler when building for sparc/sparc64.
+
+Introduced here: http://svn.freebsd.org/changeset/base/262262
+
+Index: tools/clang/test/Driver/linux-as.c
+===================================================================
+--- tools/clang/test/Driver/linux-as.c
++++ tools/clang/test/Driver/linux-as.c
+@@ -60,6 +60,20 @@
+ // RUN: | FileCheck -check-prefix=CHECK-PPC-NO-MCPU %s
+ // CHECK-PPC-NO-MCPU-NOT: as{{.*}} "-mcpu=invalid-cpu"
+ //
++// RUN: %clang -target sparc64-linux -mcpu=invalid-cpu -### \
++// RUN: -no-integrated-as -c %s 2>&1 \
++// RUN: | FileCheck -check-prefix=CHECK-SPARCV9 %s
++// CHECK-SPARCV9: as
++// CHECK-SPARCV9: -64
++// CHECK-SPARCV9: -o
++//
++// RUN: %clang -target sparc-linux -mcpu=invalid-cpu -### \
++// RUN: -no-integrated-as -c %s 2>&1 \
++// RUN: | FileCheck -check-prefix=CHECK-SPARCV8 %s
++// CHECK-SPARCV8: as
++// CHECK-SPARCV8: -32
++// CHECK-SPARCV8: -o
++//
+ // RUN: %clang -target s390x-linux -### -no-integrated-as -c %s 2>&1 \
+ // RUN: | FileCheck -check-prefix=CHECK-Z-DEFAULT-ARCH %s
+ // CHECK-Z-DEFAULT-ARCH: as{{.*}} "-march=z10"
+Index: tools/clang/lib/Driver/Tools.cpp
+===================================================================
+--- tools/clang/lib/Driver/Tools.cpp
++++ tools/clang/lib/Driver/Tools.cpp
+@@ -6226,6 +6226,10 @@ void gnutools::Assemble::ConstructJob(Compilation
+ CmdArgs.push_back("-a64");
+ CmdArgs.push_back("-mppc64le");
+ CmdArgs.push_back("-many");
++ } else if (getToolChain().getArch() == llvm::Triple::sparc) {
++ CmdArgs.push_back("-32");
++ } else if (getToolChain().getArch() == llvm::Triple::sparcv9) {
++ CmdArgs.push_back("-64");
+ } else if (getToolChain().getArch() == llvm::Triple::arm) {
+ StringRef MArch = getToolChain().getArchName();
+ if (MArch == "armv7" || MArch == "armv7a" || MArch == "armv7-a")
OpenPOWER on IntegriCloud