still build compiler-rt when linking msvc CRT

because it's missing some things
This commit is contained in:
Andrew Kelley 2017-10-01 21:19:06 -04:00
parent 756d5c545d
commit e3ea0b652c
2 changed files with 7 additions and 3 deletions

View File

@ -435,10 +435,13 @@ static void construct_linker_job_coff(LinkJob *lj) {
lj->args.append((const char *)buf_ptr(g->link_objects.at(i)));
}
if (g->libc_link_lib == nullptr && (g->out_type == OutTypeExe || g->out_type == OutTypeLib)) {
Buf *builtin_o_path = build_o(g, "builtin");
lj->args.append(buf_ptr(builtin_o_path));
if (g->out_type == OutTypeExe || g->out_type == OutTypeLib) {
if (g->libc_link_lib == nullptr) {
Buf *builtin_o_path = build_o(g, "builtin");
lj->args.append(buf_ptr(builtin_o_path));
}
// msvc compiler_rt is missing some stuff, so we still build it and rely on LinkOnce
Buf *compiler_rt_o_path = build_compiler_rt(g);
lj->args.append(buf_ptr(compiler_rt_o_path));
}

View File

@ -117,6 +117,7 @@ export fn __unordtf2(a: f128, b: f128) -> c_int {
}
// The following are alternative names for the preceding routines.
// TODO use aliases https://github.com/zig-lang/zig/issues/462
export fn __eqtf2(a: f128, b: f128) -> c_int {
@setGlobalLinkage(__eqtf2, builtin.GlobalLinkage.LinkOnce);