| author | |
| committer | |
| log | 3c3692960328b82724560bf81ade0f72b651e969 |
| tree | 24b796961b1c9b36120d7b787ceba52027043378 |
| parent | af9ac0d548a331fad3a8226dc627ebb66b92b0fa |
| signature |
4 files changed, 70 insertions(+), 1 deletions(-)
doc/langref.html.in+44-1| ... | ... | @@ -8649,7 +8649,50 @@ C ABIs: |
| 8649 | 8649 | itanium |
| 8650 | 8650 | cygnus |
| 8651 | 8651 | coreclr |
| 8652 | simulator</code></pre> | |
| 8652 | simulator | |
| 8653 | ||
| 8654 | Available libcs: | |
| 8655 | aarch64_be-linux-gnu | |
| 8656 | aarch64_be-linux-musl | |
| 8657 | aarch64-linux-gnu | |
| 8658 | aarch64-linux-musleabi | |
| 8659 | armeb-linux-gnueabi | |
| 8660 | armeb-linux-gnueabihf | |
| 8661 | armeb-linux-musleabi | |
| 8662 | armeb-linux-musleabihf | |
| 8663 | arm-linux-gnueabi | |
| 8664 | arm-linux-gnueabihf | |
| 8665 | arm-linux-musleabi | |
| 8666 | arm-linux-musleabihf | |
| 8667 | i386-linux-gnu | |
| 8668 | i386-linux-musl | |
| 8669 | mips64el-linux-gnuabi64 | |
| 8670 | mips64el-linux-gnuabin32 | |
| 8671 | mips64el-linux-musl | |
| 8672 | mips64-linux-gnuabi64 | |
| 8673 | mips64-linux-gnuabin32 | |
| 8674 | mips64-linux-musl | |
| 8675 | mipsel-linux-gnu | |
| 8676 | mipsel-linux-musl | |
| 8677 | mips-linux-gnu | |
| 8678 | mips-linux-musl | |
| 8679 | nios2-linux-gnu | |
| 8680 | powerpc64le-linux-gnu | |
| 8681 | powerpc64le-linux-musl | |
| 8682 | powerpc64-linux-gnu | |
| 8683 | powerpc64-linux-musl | |
| 8684 | powerpc-linux-gnu | |
| 8685 | powerpc-linux-musl | |
| 8686 | riscv32-linux-musl | |
| 8687 | riscv64-linux-gnu | |
| 8688 | riscv64-linux-musl | |
| 8689 | s390x-linux-gnu | |
| 8690 | s390x-linux-musl | |
| 8691 | sparc-linux-gnu | |
| 8692 | sparcv9-linux-gnu | |
| 8693 | x86_64-linux-gnu | |
| 8694 | x86_64-linux-gnux32 | |
| 8695 | x86_64-linux-musl</code></pre> | |
| 8653 | 8696 | <p> |
| 8654 | 8697 | The Zig Standard Library ({#syntax#}@import("std"){#endsyntax#}) has architecture, environment, and operating system |
| 8655 | 8698 | abstractions, and thus takes additional work to support more platforms. |
src/main.cpp+9| ... | ... | @@ -191,6 +191,15 @@ static int print_target_list(FILE *f) { |
| 191 | 191 | fprintf(f, " %s%s\n", target_abi_name(abi), native_str); |
| 192 | 192 | } |
| 193 | 193 | |
| 194 | fprintf(f, "\nAvailable libcs:\n"); | |
| 195 | size_t libc_count = target_libc_count(); | |
| 196 | for (size_t i = 0; i < libc_count; i += 1) { | |
| 197 | ZigTarget libc_target; | |
| 198 | target_libc_enum(i, &libc_target); | |
| 199 | fprintf(f, " %s-%s-%s\n", target_arch_name(libc_target.arch), | |
| 200 | target_os_name(libc_target.os), target_abi_name(libc_target.abi)); | |
| 201 | } | |
| 202 | ||
| 194 | 203 | return EXIT_SUCCESS; |
| 195 | 204 | } |
| 196 | 205 |
src/target.cpp+14| ... | ... | @@ -1498,3 +1498,17 @@ bool target_is_libc_lib_name(const ZigTarget *target, const char *name) { |
| 1498 | 1498 | |
| 1499 | 1499 | return false; |
| 1500 | 1500 | } |
| 1501 | ||
| 1502 | size_t target_libc_count(void) { | |
| 1503 | return array_length(libcs_available); | |
| 1504 | } | |
| 1505 | ||
| 1506 | void target_libc_enum(size_t index, ZigTarget *out_target) { | |
| 1507 | assert(index < array_length(libcs_available)); | |
| 1508 | out_target->arch = libcs_available[index].arch; | |
| 1509 | out_target->os = libcs_available[index].os; | |
| 1510 | out_target->abi = libcs_available[index].abi; | |
| 1511 | out_target->sub_arch = ZigLLVM_NoSubArch; | |
| 1512 | out_target->vendor = ZigLLVM_UnknownVendor; | |
| 1513 | out_target->is_native = false; | |
| 1514 | } |
src/target.hpp+3| ... | ... | @@ -169,4 +169,7 @@ bool target_is_musl(const ZigTarget *target); |
| 169 | 169 | |
| 170 | 170 | uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch); |
| 171 | 171 | |
| 172 | size_t target_libc_count(void); | |
| 173 | void target_libc_enum(size_t index, ZigTarget *out_target); | |
| 174 | ||
| 172 | 175 | #endif |