diff options
Diffstat (limited to 'contrib/llvm/patches/patch-r262262-clang-r198911-sparc.diff')
-rw-r--r-- | contrib/llvm/patches/patch-r262262-clang-r198911-sparc.diff | 46 |
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") |