Author: brad Date: Mon Feb 27 21:20:26 2017 New Revision: 296430 URL: http://llvm.org/viewvc/llvm-project?rev=296430&view=rev Log: Set ABIs correctly for OpenBSD/arm; soft float and aapcs-linux.
Modified: cfe/trunk/lib/Basic/Targets.cpp cfe/trunk/lib/Driver/Arch/ARM.cpp cfe/trunk/lib/Driver/Tools.cpp cfe/trunk/test/Driver/arm-abi.c cfe/trunk/test/Driver/openbsd.c Modified: cfe/trunk/lib/Basic/Targets.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=296430&r1=296429&r2=296430&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Targets.cpp (original) +++ cfe/trunk/lib/Basic/Targets.cpp Mon Feb 27 21:20:26 2017 @@ -5166,6 +5166,8 @@ public: default: if (Triple.getOS() == llvm::Triple::NetBSD) setABI("apcs-gnu"); + else if (Triple.getOS() == llvm::Triple::OpenBSD) + setABI("aapcs-linux"); else setABI("aapcs"); break; Modified: cfe/trunk/lib/Driver/Arch/ARM.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Arch/ARM.cpp?rev=296430&r1=296429&r2=296430&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Arch/ARM.cpp (original) +++ cfe/trunk/lib/Driver/Arch/ARM.cpp Mon Feb 27 21:20:26 2017 @@ -191,6 +191,10 @@ arm::FloatABI arm::getARMFloatABI(const } break; + case llvm::Triple::OpenBSD: + ABI = FloatABI::Soft; + break; + default: switch (Triple.getEnvironment()) { case llvm::Triple::GNUEABIHF: Modified: cfe/trunk/lib/Driver/Tools.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=296430&r1=296429&r2=296430&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Tools.cpp (original) +++ cfe/trunk/lib/Driver/Tools.cpp Mon Feb 27 21:20:26 2017 @@ -787,6 +787,8 @@ void Clang::AddARMTargetArgs(const llvm: default: if (Triple.getOS() == llvm::Triple::NetBSD) ABIName = "apcs-gnu"; + else if (Triple.getOS() == llvm::Triple::OpenBSD) + ABIName = "aapcs-linux"; else ABIName = "aapcs"; break; Modified: cfe/trunk/test/Driver/arm-abi.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/arm-abi.c?rev=296430&r1=296429&r2=296430&view=diff ============================================================================== --- cfe/trunk/test/Driver/arm-abi.c (original) +++ cfe/trunk/test/Driver/arm-abi.c Mon Feb 27 21:20:26 2017 @@ -28,6 +28,10 @@ // RUN: %clang -target arm--netbsd-eabihf %s -### -o %t.o 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK-AAPCS %s +// OpenBSD defaults to aapcs-linux +// RUN: %clang -target arm--openbsd- %s -### -o %t.o 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s + // Otherwise, ABI is selected based on environment // RUN: %clang -target arm---android %s -### -o %t.o 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s Modified: cfe/trunk/test/Driver/openbsd.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/openbsd.c?rev=296430&r1=296429&r2=296430&view=diff ============================================================================== --- cfe/trunk/test/Driver/openbsd.c (original) +++ cfe/trunk/test/Driver/openbsd.c Mon Feb 27 21:20:26 2017 @@ -96,3 +96,8 @@ // CHECK-STATIC-PIE: "{{.*}}rcrt0.o" // CHECK-STATIC-PIE-NOT: "-nopie" // CHECK-NOPIE: "-nopie" "{{.*}}crt0.o" + +// Check ARM float ABI +// RUN: %clang -target arm-unknown-openbsd -### -c %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK-ARM-FLOAT-ABI %s +// CHECK-ARM-FLOAT-ABI: "-mfloat-abi" "soft" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits