aboutsummaryrefslogtreecommitdiff
path: root/src/target.cpp
diff options
context:
space:
mode:
authorBenoitJGirard <BenoitJGirard@users.noreply.github.com>2019-02-17 14:38:55 -0500
committerGitHub <noreply@github.com>2019-02-17 14:38:55 -0500
commit6daa041932ae5ab03eed953dacf3ca506078390c (patch)
tree0f51f6c2ff84dde51b61bba6799e5c5abccf91b4 /src/target.cpp
parentf0ec308e26ff957c7fbb50ccc69d3d549c42c4da (diff)
parent8d2a902945ef97f28152c3d5a68bb974809c8539 (diff)
downloadzig-6daa041932ae5ab03eed953dacf3ca506078390c.tar.gz
zig-6daa041932ae5ab03eed953dacf3ca506078390c.zip
Merge pull request #2 from ziglang/master
Refreshing fork.
Diffstat (limited to 'src/target.cpp')
-rw-r--r--src/target.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/target.cpp b/src/target.cpp
index 5a4b5252f1..b1434c6871 100644
--- a/src/target.cpp
+++ b/src/target.cpp
@@ -174,6 +174,7 @@ static const Os os_list[] = {
OsContiki,
OsAMDPAL,
OsZen,
+ OsUefi,
};
// Coordinate with zig_llvm.h
@@ -282,6 +283,7 @@ ZigLLVM_OSType get_llvm_os_type(Os os_type) {
case OsSolaris:
return ZigLLVM_Solaris;
case OsWindows:
+ case OsUefi:
return ZigLLVM_Win32;
case OsHaiku:
return ZigLLVM_Haiku;
@@ -394,6 +396,8 @@ const char *get_target_os_name(Os os_type) {
return "freestanding";
case OsZen:
return "zen";
+ case OsUefi:
+ return "uefi";
case OsAnanas:
case OsCloudABI:
case OsDragonFly:
@@ -756,6 +760,7 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {
case CIntTypeCount:
zig_unreachable();
}
+ case OsUefi:
case OsWindows:
switch (id) {
case CIntTypeShort:
@@ -802,8 +807,12 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {
zig_unreachable();
}
+bool target_allows_addr_zero(const ZigTarget *target) {
+ return target->os == OsFreestanding;
+}
+
const char *target_o_file_ext(ZigTarget *target) {
- if (target->env_type == ZigLLVM_MSVC || target->os == OsWindows) {
+ if (target->env_type == ZigLLVM_MSVC || target->os == OsWindows || target->os == OsUefi) {
return ".obj";
} else {
return ".o";
@@ -821,13 +830,15 @@ const char *target_llvm_ir_file_ext(ZigTarget *target) {
const char *target_exe_file_ext(ZigTarget *target) {
if (target->os == OsWindows) {
return ".exe";
+ } else if (target->os == OsUefi) {
+ return ".efi";
} else {
return "";
}
}
const char *target_lib_file_ext(ZigTarget *target, bool is_static, size_t version_major, size_t version_minor, size_t version_patch) {
- if (target->os == OsWindows) {
+ if (target->os == OsWindows || target->os == OsUefi) {
if (is_static) {
return ".lib";
} else {