| ... | ... | @@ -491,6 +491,16 @@ Error target_parse_glibc_version(ZigGLibCVersion *glibc_ver, const char *text) { |
| 491 | 491 | return ErrorNone; |
| 492 | 492 | } |
| 493 | 493 | |
| 494 | static ZigLLVM_EnvironmentType target_get_win32_abi() { |
| 495 | FILE* files[] = { stdin, stdout, stderr, nullptr }; |
| 496 | for (int i = 0; files[i] != nullptr; i++) { |
| 497 | if (os_is_cygwin_pty(fileno(files[i]))) { |
| 498 | return ZigLLVM_GNU; |
| 499 | } |
| 500 | } |
| 501 | return ZigLLVM_MSVC; |
| 502 | } |
| 503 | |
| 494 | 504 | void get_native_target(ZigTarget *target) { |
| 495 | 505 | // first zero initialize |
| 496 | 506 | *target = {}; |
| ... | ... | @@ -505,8 +515,11 @@ void get_native_target(ZigTarget *target) { |
| 505 | 515 | &target->abi, |
| 506 | 516 | &oformat); |
| 507 | 517 | target->os = get_zig_os_type(os_type); |
| 518 | if (target->os == OsWindows) { |
| 519 | target->abi = target_get_win32_abi(); |
| 520 | } |
| 508 | 521 | target->is_native = true; |
| 509 | | if (target->os == OsWindows || target->abi == ZigLLVM_UnknownEnvironment) { |
| 522 | if (target->abi == ZigLLVM_UnknownEnvironment) { |
| 510 | 523 | target->abi = target_default_abi(target->arch, target->os); |
| 511 | 524 | } |
| 512 | 525 | if (target_is_glibc(target)) { |
| ... | ... | @@ -1504,16 +1517,6 @@ bool target_is_single_threaded(const ZigTarget *target) { |
| 1504 | 1517 | return target_is_wasm(target); |
| 1505 | 1518 | } |
| 1506 | 1519 | |
| 1507 | | static ZigLLVM_EnvironmentType target_get_win32_abi() { |
| 1508 | | FILE* files[] = { stdin, stdout, stderr, nullptr }; |
| 1509 | | for (int i = 0; files[i] != nullptr; i++) { |
| 1510 | | if (os_is_cygwin_pty(fileno(files[i]))) { |
| 1511 | | return ZigLLVM_GNU; |
| 1512 | | } |
| 1513 | | } |
| 1514 | | return ZigLLVM_MSVC; |
| 1515 | | } |
| 1516 | | |
| 1517 | 1520 | ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) { |
| 1518 | 1521 | if (arch == ZigLLVM_wasm32 || arch == ZigLLVM_wasm64) { |
| 1519 | 1522 | return ZigLLVM_Musl; |
| ... | ... | @@ -1554,9 +1557,8 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) { |
| 1554 | 1557 | case OsHurd: |
| 1555 | 1558 | return ZigLLVM_GNU; |
| 1556 | 1559 | case OsUefi: |
| 1557 | | return ZigLLVM_MSVC; |
| 1558 | 1560 | case OsWindows: |
| 1559 | | return target_get_win32_abi(); |
| 1561 | return ZigLLVM_MSVC; |
| 1560 | 1562 | case OsLinux: |
| 1561 | 1563 | case OsWASI: |
| 1562 | 1564 | return ZigLLVM_Musl; |