| ... | ... | @@ -357,6 +357,33 @@ Error target_parse_arch(ZigLLVM_ArchType *out_arch, const char *arch_ptr, size_t |
| 357 | 357 | } |
| 358 | 358 | |
| 359 | 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 | 387 | for (size_t i = 0; i < array_length(os_list); i += 1) { |
| 361 | 388 | Os os = os_list[i]; |
| 362 | 389 | const char *os_name = target_os_name(os); |