authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-25 12:28:41-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-25 12:28:41-04:00
logf313ab18aecea1ade0b6a90d671352a641ad351a
treef0c540296b5209a33bddba91298e64c300830a83
parent6cbe589b51c9404a0f485733cbc4e3b46499d480
signaturelock-open Commit is signed but in an unrecognized format.

zig cc: freestanding target implies -nostdlib


1 files changed, 8 insertions(+), 6 deletions(-)

src/main.cpp+8-6
...@@ -455,6 +455,7 @@ static int main0(int argc, char **argv) {...@@ -455,6 +455,7 @@ static int main0(int argc, char **argv) {
455 CodeModel code_model = CodeModelDefault;455 CodeModel code_model = CodeModelDefault;
456 const char *override_soname = nullptr;456 const char *override_soname = nullptr;
457 bool only_preprocess = false;457 bool only_preprocess = false;
458 bool ensure_libc_on_non_freestanding = false;
458459
459 ZigList<const char *> llvm_argv = {0};460 ZigList<const char *> llvm_argv = {0};
460 llvm_argv.append("zig (LLVM option parsing)");461 llvm_argv.append("zig (LLVM option parsing)");
...@@ -582,11 +583,11 @@ static int main0(int argc, char **argv) {...@@ -582,11 +583,11 @@ static int main0(int argc, char **argv) {
582 } else if (argc >= 2 && strcmp(argv[1], "cc") == 0) {583 } else if (argc >= 2 && strcmp(argv[1], "cc") == 0) {
583 emit_h = false;584 emit_h = false;
584 strip = true;585 strip = true;
586 ensure_libc_on_non_freestanding = true;
585587
586 bool c_arg = false;588 bool c_arg = false;
587 Stage2ClangArgIterator it;589 Stage2ClangArgIterator it;
588 stage2_clang_arg_iterator(&it, argc, argv);590 stage2_clang_arg_iterator(&it, argc, argv);
589 bool nostdlib = false;
590 bool is_shared_lib = false;591 bool is_shared_lib = false;
591 ZigList<Buf *> linker_args = {};592 ZigList<Buf *> linker_args = {};
592 while (it.has_next) {593 while (it.has_next) {
...@@ -645,7 +646,7 @@ static int main0(int argc, char **argv) {...@@ -645,7 +646,7 @@ static int main0(int argc, char **argv) {
645 want_pic = WantPICDisabled;646 want_pic = WantPICDisabled;
646 break;647 break;
647 case Stage2ClangArgNoStdLib:648 case Stage2ClangArgNoStdLib:
648 nostdlib = true;649 ensure_libc_on_non_freestanding = false;
649 break;650 break;
650 case Stage2ClangArgShared:651 case Stage2ClangArgShared:
651 is_dynamic = true;652 is_dynamic = true;
...@@ -772,10 +773,6 @@ static int main0(int argc, char **argv) {...@@ -772,10 +773,6 @@ static int main0(int argc, char **argv) {
772 build_mode = BuildModeSafeRelease;773 build_mode = BuildModeSafeRelease;
773 }774 }
774775
775 if (!nostdlib && !have_libc) {
776 have_libc = true;
777 link_libs.append("c");
778 }
779 if (only_preprocess) {776 if (only_preprocess) {
780 cmd = CmdBuild;777 cmd = CmdBuild;
781 out_type = OutTypeObj;778 out_type = OutTypeObj;
...@@ -1216,6 +1213,11 @@ static int main0(int argc, char **argv) {...@@ -1216,6 +1213,11 @@ static int main0(int argc, char **argv) {
1216 return print_error_usage(arg0);1213 return print_error_usage(arg0);
1217 }1214 }
12181215
1216 if (!have_libc && ensure_libc_on_non_freestanding && target.os != OsFreestanding) {
1217 have_libc = true;
1218 link_libs.append("c");
1219 }
1220
1219 Buf zig_triple_buf = BUF_INIT;1221 Buf zig_triple_buf = BUF_INIT;
1220 target_triple_zig(&zig_triple_buf, &target);1222 target_triple_zig(&zig_triple_buf, &target);
12211223