| ... | @@ -357,6 +357,33 @@ Error target_parse_arch(ZigLLVM_ArchType *out_arch, const char *arch_ptr, size_t | ... | @@ -357,6 +357,33 @@ Error target_parse_arch(ZigLLVM_ArchType *out_arch, const char *arch_ptr, size_t |
| 357 | } | 357 | } |
| 358 | | 358 | |
| 359 | Error target_parse_os(Os *out_os, const char *os_ptr, size_t os_len) { | 359 | Error target_parse_os(Os *out_os, const char *os_ptr, size_t os_len) { |
| | 360 | if (mem_eql_str(os_ptr, os_len, "native")) { |
| | 361 | #if defined(ZIG_OS_DARWIN) |
| | 362 | *out_os = OsMacOSX; |
| | 363 | return ErrorNone; |
| | 364 | #elif defined(ZIG_OS_WINDOWS) |
| | 365 | *out_os = OsWindows; |
| | 366 | return ErrorNone; |
| | 367 | #elif defined(ZIG_OS_LINUX) |
| | 368 | *out_os = OsLinux; |
| | 369 | return ErrorNone; |
| | 370 | #elif defined(ZIG_OS_FREEBSD) |
| | 371 | *out_os = OsFreeBSD; |
| | 372 | return ErrorNone; |
| | 373 | #elif defined(ZIG_OS_NETBSD) |
| | 374 | *out_os = OsNetBSD; |
| | 375 | return ErrorNone; |
| | 376 | #elif defined(ZIG_OS_DRAGONFLY) |
| | 377 | *out_os = OsDragonFly; |
| | 378 | return ErrorNone; |
| | 379 | #elif defined(ZIG_OS_OPENBSD) |
| | 380 | *out_os = OsOpenBSD; |
| | 381 | return ErrorNone; |
| | 382 | #else |
| | 383 | zig_panic("stage1 is unable to detect native target for this OS"); |
| | 384 | #endif |
| | 385 | } |
| | 386 | |
| 360 | for (size_t i = 0; i < array_length(os_list); i += 1) { | 387 | for (size_t i = 0; i < array_length(os_list); i += 1) { |
| 361 | Os os = os_list[i]; | 388 | Os os = os_list[i]; |
| 362 | const char *os_name = target_os_name(os); | 389 | const char *os_name = target_os_name(os); |