From 4e2f6ebf398f5d84aa630c4a9ab40c0de3980a72 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 16 Apr 2019 12:06:14 -0400 Subject: [PATCH] freestanding target adds -ffrestanding to cc parameters closes #2287 --- src/codegen.cpp | 3 +++ src/translate_c.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/codegen.cpp b/src/codegen.cpp index 277d6a447..8eea4e87f 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -8531,6 +8531,9 @@ static void gen_c_object(CodeGen *g, Buf *self_exe_path, CFile *c_file) { args.append("-target"); args.append(buf_ptr(&g->triple_str)); } + if (g->zig_target->os == OsFreestanding) { + args.append("-ffreestanding"); + } if (!g->strip_debug_symbols) { args.append("-g"); diff --git a/src/translate_c.cpp b/src/translate_c.cpp index 659b5ef0c..43783cf1c 100644 --- a/src/translate_c.cpp +++ b/src/translate_c.cpp @@ -4988,6 +4988,9 @@ Error parse_h_file(AstNode **out_root_node, ZigList *errors, const c clang_argv.append("-target"); clang_argv.append(buf_ptr(&c->codegen->triple_str)); } + if (c->codegen->zig_target->os == OsFreestanding) { + clang_argv.append("-ffreestanding"); + } clang_argv.append(target_file);