From 27cd830ec8ca1ddba692c65e8a129a2b5c9a1673 Mon Sep 17 00:00:00 2001 From: Matthew Iannucci Date: Thu, 11 Apr 2019 13:15:17 -0400 Subject: Add initial support for iOS targets (#2237) * Add iOS C int sizes... try to hack in iOS DebugInfo * Get rid of ios link check for now * Remove macos linkversion check --- src/target.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/target.cpp') diff --git a/src/target.cpp b/src/target.cpp index dda8188765..3b4265359c 100644 --- a/src/target.cpp +++ b/src/target.cpp @@ -894,10 +894,25 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) { case CIntTypeCount: zig_unreachable(); } + case OsIOS: + switch (id) { + case CIntTypeShort: + case CIntTypeUShort: + return 16; + case CIntTypeInt: + case CIntTypeUInt: + return 32; + case CIntTypeLong: + case CIntTypeULong: + case CIntTypeLongLong: + case CIntTypeULongLong: + return 64; + case CIntTypeCount: + zig_unreachable(); + } case OsAnanas: case OsCloudABI: case OsDragonFly: - case OsIOS: case OsKFreeBSD: case OsLv2: case OsSolaris: -- cgit v1.2.3 From 63f2e96eeaaa032ffa9ff11a4a632d8032883233 Mon Sep 17 00:00:00 2001 From: Shritesh Bhattarai Date: Fri, 12 Apr 2019 10:54:15 -0500 Subject: wasm: use .wasm ext for exe --- src/codegen.cpp | 3 +-- src/target.cpp | 6 ++++++ src/target.hpp | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src/target.cpp') diff --git a/src/codegen.cpp b/src/codegen.cpp index 7e85fa238a..7d280b7ad1 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -7953,8 +7953,7 @@ static void init(CodeGen *g) { } } - bool is_wasm = g->zig_target->arch == ZigLLVM_wasm32 || g->zig_target->arch == ZigLLVM_wasm64; - g->have_err_ret_tracing = !is_wasm && g->build_mode != BuildModeFastRelease && g->build_mode != BuildModeSmallRelease; + g->have_err_ret_tracing = !target_is_wasm(g->zig_target) && g->build_mode != BuildModeFastRelease && g->build_mode != BuildModeSmallRelease; define_builtin_fns(g); Error err; diff --git a/src/target.cpp b/src/target.cpp index 3b4265359c..7d66761a16 100644 --- a/src/target.cpp +++ b/src/target.cpp @@ -965,6 +965,8 @@ const char *target_exe_file_ext(const ZigTarget *target) { return ".exe"; } else if (target->os == OsUefi) { return ".efi"; + } else if (target_is_wasm(target)) { + return ".wasm"; } else { return ""; } @@ -1365,6 +1367,10 @@ bool target_is_musl(const ZigTarget *target) { return target->os == OsLinux && target_abi_is_musl(target->abi); } +bool target_is_wasm(const ZigTarget *target) { + return target->arch == ZigLLVM_wasm32 || target->arch == ZigLLVM_wasm64; +} + ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) { switch (os) { case OsFreestanding: diff --git a/src/target.hpp b/src/target.hpp index 4a0264c2b1..0e3180bb2c 100644 --- a/src/target.hpp +++ b/src/target.hpp @@ -170,6 +170,7 @@ bool target_abi_is_gnu(ZigLLVM_EnvironmentType abi); bool target_abi_is_musl(ZigLLVM_EnvironmentType abi); bool target_is_glibc(const ZigTarget *target); bool target_is_musl(const ZigTarget *target); +bool target_is_wasm(const ZigTarget *target); uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch); -- cgit v1.2.3 From 0f1d92e2cfda7ac633cc66fdf2b0e5e27cdf0f98 Mon Sep 17 00:00:00 2001 From: Shritesh Bhattarai Date: Sat, 13 Apr 2019 18:40:28 -0500 Subject: wasm: force single threaded --- src/main.cpp | 4 ++++ src/target.cpp | 4 ++++ src/target.hpp | 1 + 3 files changed, 9 insertions(+) (limited to 'src/target.cpp') diff --git a/src/main.cpp b/src/main.cpp index 85e5b0c042..e571e1ae62 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -921,6 +921,10 @@ int main(int argc, char **argv) { } } + if (target_is_single_threaded(&target)) { + is_single_threaded = true; + } + if (output_dir != nullptr && enable_cache == CacheOptOn) { fprintf(stderr, "`--output-dir` is incompatible with --cache on.\n"); return print_error_usage(arg0); diff --git a/src/target.cpp b/src/target.cpp index 7d66761a16..1954fd7e2e 100644 --- a/src/target.cpp +++ b/src/target.cpp @@ -1371,6 +1371,10 @@ bool target_is_wasm(const ZigTarget *target) { return target->arch == ZigLLVM_wasm32 || target->arch == ZigLLVM_wasm64; } +bool target_is_single_threaded(const ZigTarget *target) { + return target_is_wasm(target); +} + ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) { switch (os) { case OsFreestanding: diff --git a/src/target.hpp b/src/target.hpp index 0e3180bb2c..fd5c7471c3 100644 --- a/src/target.hpp +++ b/src/target.hpp @@ -171,6 +171,7 @@ bool target_abi_is_musl(ZigLLVM_EnvironmentType abi); bool target_is_glibc(const ZigTarget *target); bool target_is_musl(const ZigTarget *target); bool target_is_wasm(const ZigTarget *target); +bool target_is_single_threaded(const ZigTarget *target); uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch); -- cgit v1.2.3