diff options
Diffstat (limited to 'contrib/llvm/patches/patch-r263619-clang-r201662-arm-gnueabihf.diff')
-rw-r--r-- | contrib/llvm/patches/patch-r263619-clang-r201662-arm-gnueabihf.diff | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/contrib/llvm/patches/patch-r263619-clang-r201662-arm-gnueabihf.diff b/contrib/llvm/patches/patch-r263619-clang-r201662-arm-gnueabihf.diff deleted file mode 100644 index 0e1997c..0000000 --- a/contrib/llvm/patches/patch-r263619-clang-r201662-arm-gnueabihf.diff +++ /dev/null @@ -1,89 +0,0 @@ -Pull in r201662 from upstream clang trunk: - - Add FreeBSD ARM EABI hard-float support - - Patch by Andrew Turner. - -Introduced here: http://svnweb.freebsd.org/changeset/base/263619 - -Index: tools/clang/lib/Driver/ToolChains.cpp -=================================================================== ---- tools/clang/lib/Driver/ToolChains.cpp -+++ tools/clang/lib/Driver/ToolChains.cpp -@@ -2034,6 +2034,7 @@ - bool FreeBSD::UseSjLjExceptions() const { - // FreeBSD uses SjLj exceptions on ARM oabi. - switch (getTriple().getEnvironment()) { -+ case llvm::Triple::GNUEABIHF: - case llvm::Triple::GNUEABI: - case llvm::Triple::EABI: - return false; -Index: tools/clang/lib/Driver/Tools.cpp -=================================================================== ---- tools/clang/lib/Driver/Tools.cpp -+++ tools/clang/lib/Driver/Tools.cpp -@@ -737,8 +737,15 @@ - } - - case llvm::Triple::FreeBSD: -- // FreeBSD defaults to soft float -- FloatABI = "soft"; -+ switch(Triple.getEnvironment()) { -+ case llvm::Triple::GNUEABIHF: -+ FloatABI = "hard"; -+ break; -+ default: -+ // FreeBSD defaults to soft float -+ FloatABI = "soft"; -+ break; -+ } - break; - - default: -@@ -5776,8 +5783,18 @@ - } - } else if (getToolChain().getArch() == llvm::Triple::arm || - getToolChain().getArch() == llvm::Triple::thumb) { -- CmdArgs.push_back("-mfpu=softvfp"); -+ const Driver &D = getToolChain().getDriver(); -+ llvm::Triple Triple = getToolChain().getTriple(); -+ StringRef FloatABI = getARMFloatABI(D, Args, Triple); -+ -+ if (FloatABI == "hard") { -+ CmdArgs.push_back("-mfpu=vfp"); -+ } else { -+ CmdArgs.push_back("-mfpu=softvfp"); -+ } -+ - switch(getToolChain().getTriple().getEnvironment()) { -+ case llvm::Triple::GNUEABIHF: - case llvm::Triple::GNUEABI: - case llvm::Triple::EABI: - CmdArgs.push_back("-meabi=5"); -Index: tools/clang/test/Driver/freebsd.c -=================================================================== ---- tools/clang/test/Driver/freebsd.c -+++ tools/clang/test/Driver/freebsd.c -@@ -101,13 +101,22 @@ - // RUN: | FileCheck --check-prefix=CHECK-ARM %s - // CHECK-ARM: clang{{.*}}" "-cc1"{{.*}}" "-fsjlj-exceptions" - // CHECK-ARM: as{{.*}}" "-mfpu=softvfp"{{.*}}"-matpcs" -+// CHECK-ARM-EABI-NOT: as{{.*}}" "-mfpu=vfp" - - // RUN: %clang %s -### -target arm-gnueabi-freebsd10.0 2>&1 \ - // RUN: | FileCheck --check-prefix=CHECK-ARM-EABI %s - // CHECK-ARM-EABI-NOT: clang{{.*}}" "-cc1"{{.*}}" "-fsjlj-exceptions" - // CHECK-ARM-EABI: as{{.*}}" "-mfpu=softvfp" "-meabi=5" -+// CHECK-ARM-EABI-NOT: as{{.*}}" "-mfpu=vfp" - // CHECK-ARM-EABI-NOT: as{{.*}}" "-matpcs" - -+// RUN: %clang %s -### -o %t.o -target arm-gnueabihf-freebsd10.0 -no-integrated-as 2>&1 \ -+// RUN: | FileCheck --check-prefix=CHECK-ARM-EABIHF %s -+// CHECK-ARM-EABIHF-NOT: clang{{.*}}" "-cc1"{{.*}}" "-fsjlj-exceptions" -+// CHECK-ARM-EABIHF: as{{.*}}" "-mfpu=vfp" "-meabi=5" -+// CHECK-ARM-EABIHF-NOT: as{{.*}}" "-mfpu=softvfp" -+// CHECK-ARM-EABIHF-NOT: as{{.*}}" "-matpcs" -+ - // RUN: %clang -target x86_64-pc-freebsd8 %s -### -flto -o %t.o 2>&1 \ - // RUN: | FileCheck --check-prefix=CHECK-LTO %s - // CHECK-LTO: ld{{.*}}" "-plugin{{.*}}LLVMgold.so |