diff options
| author | Layne Gustafson <lgustaf1@binghamton.edu> | 2020-01-16 15:31:53 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-01-19 20:53:20 -0500 |
| commit | 62e4cc06feb704391abdd591c048c0678dedcf5e (patch) | |
| tree | acf37b9c21302418575034685e4bc48b10cc33c9 /src/codegen.cpp | |
| parent | 35c681b7b18df1f8679457975f9dcfc6a4a53468 (diff) | |
| download | zig-62e4cc06feb704391abdd591c048c0678dedcf5e.tar.gz zig-62e4cc06feb704391abdd591c048c0678dedcf5e.zip | |
Pass target details to c compiler
Diffstat (limited to 'src/codegen.cpp')
| -rw-r--r-- | src/codegen.cpp | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp index d0749c9432..5852f3f004 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -30,11 +30,6 @@ enum ResumeId { ResumeIdCall, }; -// TODO https://github.com/ziglang/zig/issues/2883 -// Until then we have this same default as Clang. -// This avoids https://github.com/ziglang/zig/issues/3275 -static const char *riscv_default_features = "+a,+c,+d,+f,+m,+relax"; - static void init_darwin_native(CodeGen *g) { char *osx_target = getenv("MACOSX_DEPLOYMENT_TARGET"); 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 args.append("-target"); args.append(buf_ptr(&g->llvm_triple_str)); - if (target_is_musl(g->zig_target) && target_is_riscv(g->zig_target)) { - // Musl depends on atomic instructions, which are disabled by default in Clang/LLVM's - // cross compilation CPU info for RISCV. - // TODO: https://github.com/ziglang/zig/issues/2883 + if (g->target_details) { args.append("-Xclang"); - args.append("-target-feature"); + args.append("-target-cpu"); args.append("-Xclang"); - args.append(riscv_default_features); - } else if (g->zig_target->os == OsFreestanding && g->zig_target->arch == ZigLLVM_x86) { + args.append(stage2_target_details_get_llvm_cpu(g->target_details)); args.append("-Xclang"); args.append("-target-feature"); args.append("-Xclang"); - args.append("-sse"); + args.append(stage2_target_details_get_llvm_features(g->target_details)); } } + if (g->zig_target->os == OsFreestanding) { args.append("-ffreestanding"); } |
