summaryrefslogtreecommitdiff
path: root/src/trans/target.cpp
diff options
context:
space:
mode:
authorJohn Hodge (Mutabah) <acessdev@gmail.com>2018-02-21 20:14:43 +0800
committerGitHub <noreply@github.com>2018-02-21 20:14:43 +0800
commit350769c002b51c7fcb7e2d632222fbae3e7a8ab5 (patch)
treefe47ec09ce838c1744397745fba8106b8a1c427e /src/trans/target.cpp
parentaec2d67316fae536e68062d7a5ba4e0145b7d587 (diff)
parenta30e54931004c5ad41a8a7b7233c31b40063c17b (diff)
downloadmrust-350769c002b51c7fcb7e2d632222fbae3e7a8ab5.tar.gz
Merge pull request #58 from ibara/master
Add OpenBSD support.
Diffstat (limited to 'src/trans/target.cpp')
-rw-r--r--src/trans/target.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/trans/target.cpp b/src/trans/target.cpp
index 71a342ba..1f04666e 100644
--- a/src/trans/target.cpp
+++ b/src/trans/target.cpp
@@ -94,6 +94,27 @@ namespace
ARCH_X86_64
};
}
+ else if(target_name == "i686-unknown-openbsd")
+ {
+ return TargetSpec {
+ "unix", "openbsd", "gnu", CodegenMode::Gnu11, "i686-unknown-openbsd",
+ ARCH_X86
+ };
+ }
+ else if(target_name == "x86_64-unknown-openbsd")
+ {
+ return TargetSpec {
+ "unix", "openbsd", "gnu", CodegenMode::Gnu11, "x86_64-unknown-openbsd",
+ ARCH_X86_64
+ };
+ }
+ else if(target_name == "arm-unknown-openbsd")
+ {
+ return TargetSpec {
+ "unix", "openbsd", "gnu", CodegenMode::Gnu11, "arm-unknown-openbsd",
+ ARCH_ARM32
+ };
+ }
else
{
::std::cerr << "Unknown target name '" << target_name << "'" << ::std::endl;
@@ -126,6 +147,13 @@ void Target_SetCfg(const ::std::string& target_name)
}
Cfg_SetValue("target_env", g_target.m_env_name);
+ if( g_target.m_os_name == "openbsd" )
+ {
+ Cfg_SetFlag("openbsd");
+ Cfg_SetValue("target_vendor", "unknown");
+ }
+ Cfg_SetValue("target_env", g_target.m_env_name);
+
Cfg_SetValue("target_os", g_target.m_os_name);
Cfg_SetValue("target_pointer_width", FMT(g_target.m_arch.m_pointer_bits));
Cfg_SetValue("target_endian", g_target.m_arch.m_big_endian ? "big" : "little");