| ... | @@ -632,11 +632,17 @@ static int main0(int argc, char **argv) { | ... | @@ -632,11 +632,17 @@ static int main0(int argc, char **argv) { |
| 632 | break; | 632 | break; |
| 633 | } | 633 | } |
| 634 | case Stage2ClangArgL: // -l | 634 | case Stage2ClangArgL: // -l |
| 635 | if (strcmp(it.only_arg, "c") == 0) | 635 | if (strcmp(it.only_arg, "c") == 0) { |
| 636 | have_libc = true; | 636 | have_libc = true; |
| 637 | if (strcmp(it.only_arg, "c++") == 0) | 637 | link_libs.append("c"); |
| | 638 | } else if (strcmp(it.only_arg, "c++") == 0 || |
| | 639 | strcmp(it.only_arg, "stdc++") == 0) |
| | 640 | { |
| 638 | have_libcpp = true; | 641 | have_libcpp = true; |
| 639 | link_libs.append(it.only_arg); | 642 | link_libs.append("c++"); |
| | 643 | } else { |
| | 644 | link_libs.append(it.only_arg); |
| | 645 | } |
| 640 | break; | 646 | break; |
| 641 | case Stage2ClangArgIgnore: | 647 | case Stage2ClangArgIgnore: |
| 642 | break; | 648 | break; |
| ... | @@ -1016,11 +1022,15 @@ static int main0(int argc, char **argv) { | ... | @@ -1016,11 +1022,15 @@ static int main0(int argc, char **argv) { |
| 1016 | } else if (arg[1] == 'l' && arg[2] != 0) { | 1022 | } else if (arg[1] == 'l' && arg[2] != 0) { |
| 1017 | // alias for --library | 1023 | // alias for --library |
| 1018 | const char *l = &arg[2]; | 1024 | const char *l = &arg[2]; |
| 1019 | if (strcmp(l, "c") == 0) | 1025 | if (strcmp(l, "c") == 0) { |
| 1020 | have_libc = true; | 1026 | have_libc = true; |
| 1021 | if (strcmp(l, "c++") == 0) | 1027 | link_libs.append("c"); |
| | 1028 | } else if (strcmp(l, "c++") == 0 || strcmp(l, "stdc++") == 0) { |
| 1022 | have_libcpp = true; | 1029 | have_libcpp = true; |
| 1023 | link_libs.append(l); | 1030 | link_libs.append("c++"); |
| | 1031 | } else { |
| | 1032 | link_libs.append(l); |
| | 1033 | } |
| 1024 | } else if (arg[1] == 'I' && arg[2] != 0) { | 1034 | } else if (arg[1] == 'I' && arg[2] != 0) { |
| 1025 | clang_argv.append("-I"); | 1035 | clang_argv.append("-I"); |
| 1026 | clang_argv.append(&arg[2]); | 1036 | clang_argv.append(&arg[2]); |
| ... | @@ -1159,11 +1169,15 @@ static int main0(int argc, char **argv) { | ... | @@ -1159,11 +1169,15 @@ static int main0(int argc, char **argv) { |
| 1159 | } else if (strcmp(arg, "-F") == 0) { | 1169 | } else if (strcmp(arg, "-F") == 0) { |
| 1160 | framework_dirs.append(argv[i]); | 1170 | framework_dirs.append(argv[i]); |
| 1161 | } else if (strcmp(arg, "--library") == 0 || strcmp(arg, "-l") == 0) { | 1171 | } else if (strcmp(arg, "--library") == 0 || strcmp(arg, "-l") == 0) { |
| 1162 | if (strcmp(argv[i], "c") == 0) | 1172 | if (strcmp(argv[i], "c") == 0) { |
| 1163 | have_libc = true; | 1173 | have_libc = true; |
| 1164 | if (strcmp(argv[i], "c++") == 0) | 1174 | link_libs.append("c"); |
| | 1175 | } else if (strcmp(argv[i], "c++") == 0 || strcmp(argv[i], "stdc++") == 0) { |
| 1165 | have_libcpp = true; | 1176 | have_libcpp = true; |
| 1166 | link_libs.append(argv[i]); | 1177 | link_libs.append("c++"); |
| | 1178 | } else { |
| | 1179 | link_libs.append(argv[i]); |
| | 1180 | } |
| 1167 | } else if (strcmp(arg, "--forbid-library") == 0) { | 1181 | } else if (strcmp(arg, "--forbid-library") == 0) { |
| 1168 | forbidden_link_libs.append(argv[i]); | 1182 | forbidden_link_libs.append(argv[i]); |
| 1169 | } else if (strcmp(arg, "--object") == 0) { | 1183 | } else if (strcmp(arg, "--object") == 0) { |