Zig treats -lstdc++ identically to -lc++

Thanks to Michael Dusan for figuring out what was happening here.

closes #5012
This commit is contained in:
Andrew Kelley 2020-04-12 00:50:16 -04:00
parent f79faf9008
commit d27ef1aaef
2 changed files with 24 additions and 9 deletions

View File

@ -9252,6 +9252,7 @@ void add_cc_args(CodeGen *g, ZigList<const char *> &args, const char *out_dep_pa
}
args.append("-nostdinc");
args.append("-nostdinc++");
args.append("-fno-spell-checking");
if (g->function_sections) {

View File

@ -632,11 +632,17 @@ static int main0(int argc, char **argv) {
break;
}
case Stage2ClangArgL: // -l
if (strcmp(it.only_arg, "c") == 0)
if (strcmp(it.only_arg, "c") == 0) {
have_libc = true;
if (strcmp(it.only_arg, "c++") == 0)
link_libs.append("c");
} else if (strcmp(it.only_arg, "c++") == 0 ||
strcmp(it.only_arg, "stdc++") == 0)
{
have_libcpp = true;
link_libs.append(it.only_arg);
link_libs.append("c++");
} else {
link_libs.append(it.only_arg);
}
break;
case Stage2ClangArgIgnore:
break;
@ -1016,11 +1022,15 @@ static int main0(int argc, char **argv) {
} else if (arg[1] == 'l' && arg[2] != 0) {
// alias for --library
const char *l = &arg[2];
if (strcmp(l, "c") == 0)
if (strcmp(l, "c") == 0) {
have_libc = true;
if (strcmp(l, "c++") == 0)
link_libs.append("c");
} else if (strcmp(l, "c++") == 0 || strcmp(l, "stdc++") == 0) {
have_libcpp = true;
link_libs.append(l);
link_libs.append("c++");
} else {
link_libs.append(l);
}
} else if (arg[1] == 'I' && arg[2] != 0) {
clang_argv.append("-I");
clang_argv.append(&arg[2]);
@ -1159,11 +1169,15 @@ static int main0(int argc, char **argv) {
} else if (strcmp(arg, "-F") == 0) {
framework_dirs.append(argv[i]);
} else if (strcmp(arg, "--library") == 0 || strcmp(arg, "-l") == 0) {
if (strcmp(argv[i], "c") == 0)
if (strcmp(argv[i], "c") == 0) {
have_libc = true;
if (strcmp(argv[i], "c++") == 0)
link_libs.append("c");
} else if (strcmp(argv[i], "c++") == 0 || strcmp(argv[i], "stdc++") == 0) {
have_libcpp = true;
link_libs.append(argv[i]);
link_libs.append("c++");
} else {
link_libs.append(argv[i]);
}
} else if (strcmp(arg, "--forbid-library") == 0) {
forbidden_link_libs.append(argv[i]);
} else if (strcmp(arg, "--object") == 0) {