Adjust default CPU for OpenBSD/arm and set proper ABI.

from Brad (maintainer)
This commit is contained in:
ajacoutot 2016-09-24 12:35:38 +00:00
parent 422b6e6b4a
commit dd092f3f2c
5 changed files with 47 additions and 13 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.119 2016/09/18 07:46:32 ajacoutot Exp $ # $OpenBSD: Makefile,v 1.120 2016/09/24 12:35:38 ajacoutot Exp $
# XXX: Remember to bump MODCLANG_VERSION in lang/clang/clang.port.mk when # XXX: Remember to bump MODCLANG_VERSION in lang/clang/clang.port.mk when
# updating this port. # updating this port.
@ -9,7 +9,7 @@ DPB_PROPERTIES = parallel
COMMENT = modular, fast C/C++/ObjC compiler, static analyzer and tools COMMENT = modular, fast C/C++/ObjC compiler, static analyzer and tools
LLVM_V = 3.8.1 LLVM_V = 3.8.1
REVISION = 2 REVISION = 3
DISTNAME = llvm-${LLVM_V}.src DISTNAME = llvm-${LLVM_V}.src
PKGNAME = llvm-${LLVM_V} PKGNAME = llvm-${LLVM_V}
CATEGORIES = devel CATEGORIES = devel

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-lib_Support_Triple_cpp,v 1.3 2016/09/24 12:35:38 ajacoutot Exp $
Set default CPU for OpenBSD/arm to Cortex-A8
--- lib/Support/Triple.cpp.orig Mon Sep 19 20:57:02 2016
+++ lib/Support/Triple.cpp Mon Sep 19 20:57:28 2016
@@ -1426,6 +1426,7 @@ StringRef Triple::getARMCPUForArch(StringRef MArch) co
return "strongarm";
}
case llvm::Triple::NaCl:
+ case llvm::Triple::OpenBSD:
return "cortex-a8";
default:
switch (getEnvironment()) {

View File

@ -1,9 +1,10 @@
$OpenBSD: patch-tools_clang_lib_Basic_Targets_cpp,v 1.15 2016/09/18 07:46:32 ajacoutot Exp $ $OpenBSD: patch-tools_clang_lib_Basic_Targets_cpp,v 1.16 2016/09/24 12:35:38 ajacoutot Exp $
fix clang types on arm - [OpenBSD] Add type sign information for OpenBSD
- Set ABI for ARM
--- tools/clang/lib/Basic/Targets.cpp.orig Sat Sep 17 13:20:27 2016 --- tools/clang/lib/Basic/Targets.cpp.orig Tue May 24 15:36:54 2016
+++ tools/clang/lib/Basic/Targets.cpp Sat Sep 17 13:22:32 2016 +++ tools/clang/lib/Basic/Targets.cpp Mon Sep 19 20:59:16 2016
@@ -4275,8 +4275,10 @@ class ARMTargetInfo : public TargetInfo { @@ -4275,8 +4275,10 @@ class ARMTargetInfo : public TargetInfo {
DoubleAlign = LongLongAlign = LongDoubleAlign = SuitableAlign = 64; DoubleAlign = LongLongAlign = LongDoubleAlign = SuitableAlign = 64;
const llvm::Triple &T = getTriple(); const llvm::Triple &T = getTriple();
@ -32,3 +33,12 @@ fix clang types on arm
PtrDiffType = SignedLong; PtrDiffType = SignedLong;
break; break;
default: default:
@@ -4525,6 +4529,8 @@ class ARMTargetInfo : public TargetInfo {
default:
if (Triple.getOS() == llvm::Triple::NetBSD)
setABI("apcs-gnu");
+ else if (Triple.getOS() == llvm::Triple::OpenBSD)
+ setABI("aapcs-linux");
else
setABI("aapcs");
break;

View File

@ -1,9 +1,9 @@
$OpenBSD: patch-tools_clang_lib_Driver_ToolChains_cpp,v 1.7 2016/05/15 07:07:52 ajacoutot Exp $ $OpenBSD: patch-tools_clang_lib_Driver_ToolChains_cpp,v 1.8 2016/09/24 12:35:38 ajacoutot Exp $
Use the integrated assembler by default on Sparc and Mips64. Use the integrated assembler by default on Sparc and Mips64.
--- tools/clang/lib/Driver/ToolChains.cpp.orig Tue Feb 16 14:56:48 2016 --- tools/clang/lib/Driver/ToolChains.cpp.orig Tue Feb 16 14:56:48 2016
+++ tools/clang/lib/Driver/ToolChains.cpp Sat May 14 20:34:32 2016 +++ tools/clang/lib/Driver/ToolChains.cpp Sun Sep 18 19:00:06 2016
@@ -2378,6 +2378,10 @@ bool Generic_GCC::IsIntegratedAssemblerDefault() const @@ -2378,6 +2378,10 @@ bool Generic_GCC::IsIntegratedAssemblerDefault() const
case llvm::Triple::ppc64: case llvm::Triple::ppc64:
case llvm::Triple::ppc64le: case llvm::Triple::ppc64le:

View File

@ -1,12 +1,13 @@
$OpenBSD: patch-tools_clang_lib_Driver_Tools_cpp,v 1.33 2016/09/18 07:46:32 ajacoutot Exp $ $OpenBSD: patch-tools_clang_lib_Driver_Tools_cpp,v 1.34 2016/09/24 12:35:38 ajacoutot Exp $
- Select proper SPARCv9 variant for the external assembler - Select proper SPARCv9 variant for the external assembler
- For now, force soft-float on ARM - For now, force soft-float on ARM
- Set ABI for ARM
- Produce EH frame header for all binaries - Produce EH frame header for all binaries
- Link static PIEs with the correct C runtime (rcrt0.o) - Link static PIEs with the correct C runtime (rcrt0.o)
--- tools/clang/lib/Driver/Tools.cpp.orig Fri Feb 12 17:51:41 2016 --- tools/clang/lib/Driver/Tools.cpp.orig Fri Feb 12 17:51:41 2016
+++ tools/clang/lib/Driver/Tools.cpp Sat Sep 17 18:37:22 2016 +++ tools/clang/lib/Driver/Tools.cpp Mon Sep 19 20:58:33 2016
@@ -78,7 +78,7 @@ static const char *getSparcAsmModeForCPU(StringRef Nam @@ -78,7 +78,7 @@ static const char *getSparcAsmModeForCPU(StringRef Nam
.Case("niagara2", "-Av9b") .Case("niagara2", "-Av9b")
.Case("niagara3", "-Av9d") .Case("niagara3", "-Av9d")
@ -27,7 +28,16 @@ $OpenBSD: patch-tools_clang_lib_Driver_Tools_cpp,v 1.33 2016/09/18 07:46:32 ajac
default: default:
switch (Triple.getEnvironment()) { switch (Triple.getEnvironment()) {
case llvm::Triple::GNUEABIHF: case llvm::Triple::GNUEABIHF:
@@ -7570,12 +7574,13 @@ void openbsd::Linker::ConstructJob(Compilation &C, con @@ -977,6 +981,8 @@ void Clang::AddARMTargetArgs(const llvm::Triple &Tripl
default:
if (Triple.getOS() == llvm::Triple::NetBSD)
ABIName = "apcs-gnu";
+ else if (Triple.getOS() == llvm::Triple::OpenBSD)
+ ABIName = "aapcs-linux";
else
ABIName = "aapcs";
break;
@@ -7570,12 +7576,13 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
CmdArgs.push_back("__start"); CmdArgs.push_back("__start");
} }
@ -42,7 +52,7 @@ $OpenBSD: patch-tools_clang_lib_Driver_Tools_cpp,v 1.33 2016/09/18 07:46:32 ajac
CmdArgs.push_back("-Bdynamic"); CmdArgs.push_back("-Bdynamic");
if (Args.hasArg(options::OPT_shared)) { if (Args.hasArg(options::OPT_shared)) {
CmdArgs.push_back("-shared"); CmdArgs.push_back("-shared");
@@ -7600,6 +7605,10 @@ void openbsd::Linker::ConstructJob(Compilation &C, con @@ -7600,6 +7607,10 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
if (Args.hasArg(options::OPT_pg)) if (Args.hasArg(options::OPT_pg))
CmdArgs.push_back( CmdArgs.push_back(
Args.MakeArgString(getToolChain().GetFilePath("gcrt0.o"))); Args.MakeArgString(getToolChain().GetFilePath("gcrt0.o")));
@ -53,7 +63,7 @@ $OpenBSD: patch-tools_clang_lib_Driver_Tools_cpp,v 1.33 2016/09/18 07:46:32 ajac
else else
CmdArgs.push_back( CmdArgs.push_back(
Args.MakeArgString(getToolChain().GetFilePath("crt0.o"))); Args.MakeArgString(getToolChain().GetFilePath("crt0.o")));
@@ -7611,15 +7620,17 @@ void openbsd::Linker::ConstructJob(Compilation &C, con @@ -7611,15 +7622,17 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
} }
} }