| ... | @@ -30,11 +30,6 @@ enum ResumeId { | ... | @@ -30,11 +30,6 @@ enum ResumeId { |
| 30 | ResumeIdCall, | 30 | ResumeIdCall, |
| 31 | }; | 31 | }; |
| 32 | | 32 | |
| 33 | // TODO https://github.com/ziglang/zig/issues/2883 | | |
| 34 | // Until then we have this same default as Clang. | | |
| 35 | // This avoids https://github.com/ziglang/zig/issues/3275 | | |
| 36 | static const char *riscv_default_features = "+a,+c,+d,+f,+m,+relax"; | | |
| 37 | | | |
| 38 | static void init_darwin_native(CodeGen *g) { | 33 | static void init_darwin_native(CodeGen *g) { |
| 39 | char *osx_target = getenv("MACOSX_DEPLOYMENT_TARGET"); | 34 | char *osx_target = getenv("MACOSX_DEPLOYMENT_TARGET"); |
| 40 | char *ios_target = getenv("IPHONEOS_DEPLOYMENT_TARGET"); | 35 | char *ios_target = getenv("IPHONEOS_DEPLOYMENT_TARGET"); |
| ... | @@ -9128,21 +9123,18 @@ void add_cc_args(CodeGen *g, ZigList<const char *> &args, const char *out_dep_pa | ... | @@ -9128,21 +9123,18 @@ void add_cc_args(CodeGen *g, ZigList<const char *> &args, const char *out_dep_pa |
| 9128 | args.append("-target"); | 9123 | args.append("-target"); |
| 9129 | args.append(buf_ptr(&g->llvm_triple_str)); | 9124 | args.append(buf_ptr(&g->llvm_triple_str)); |
| 9130 | | 9125 | |
| 9131 | if (target_is_musl(g->zig_target) && target_is_riscv(g->zig_target)) { | 9126 | if (g->target_details) { |
| 9132 | // Musl depends on atomic instructions, which are disabled by default in Clang/LLVM's | | |
| 9133 | // cross compilation CPU info for RISCV. | | |
| 9134 | // TODO: https://github.com/ziglang/zig/issues/2883 | | |
| 9135 | args.append("-Xclang"); | 9127 | args.append("-Xclang"); |
| 9136 | args.append("-target-feature"); | 9128 | args.append("-target-cpu"); |
| 9137 | args.append("-Xclang"); | 9129 | args.append("-Xclang"); |
| 9138 | args.append(riscv_default_features); | 9130 | args.append(stage2_target_details_get_llvm_cpu(g->target_details)); |
| 9139 | } else if (g->zig_target->os == OsFreestanding && g->zig_target->arch == ZigLLVM_x86) { | | |
| 9140 | args.append("-Xclang"); | 9131 | args.append("-Xclang"); |
| 9141 | args.append("-target-feature"); | 9132 | args.append("-target-feature"); |
| 9142 | args.append("-Xclang"); | 9133 | args.append("-Xclang"); |
| 9143 | args.append("-sse"); | 9134 | args.append(stage2_target_details_get_llvm_features(g->target_details)); |
| 9144 | } | 9135 | } |
| 9145 | } | 9136 | } |
| | 9137 | |
| 9146 | if (g->zig_target->os == OsFreestanding) { | 9138 | if (g->zig_target->os == OsFreestanding) { |
| 9147 | args.append("-ffreestanding"); | 9139 | args.append("-ffreestanding"); |
| 9148 | } | 9140 | } |