authorgravatar for lgustaf1@binghamton.eduLayne Gustafson <lgustaf1@binghamton.edu> 2020-01-16 15:31:53-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-19 20:53:20-05:00
log62e4cc06feb704391abdd591c048c0678dedcf5e
treeacf37b9c21302418575034685e4bc48b10cc33c9
parent35c681b7b18df1f8679457975f9dcfc6a4a53468
signature Commit is signed but in an unrecognized format.

Pass target details to c compiler


1 files changed, 5 insertions(+), 13 deletions(-)

src/codegen.cpp+5-13
...@@ -30,11 +30,6 @@ enum ResumeId {...@@ -30,11 +30,6 @@ enum ResumeId {
30 ResumeIdCall,30 ResumeIdCall,
31};31};
3232
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
36static const char *riscv_default_features = "+a,+c,+d,+f,+m,+relax";
37
38static void init_darwin_native(CodeGen *g) {33static 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));
91309125
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 }