kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

commit 7e14bdec70dcc26fe4970524bbc3b36707097be5
parent 623643c4f49b8639938e03cdb045fe85d049ec91
Author: Ryan Sepassi <rsepassi@gmail.com>
Date:   Thu, 16 Jul 2026 10:45:03 -0700

target: report shipped shared-link capabilities

Diffstat:
Msrc/api/target.c | 49++++++++++++++++++++++++++++---------------------
1 file changed, 28 insertions(+), 21 deletions(-)

diff --git a/src/api/target.c b/src/api/target.c @@ -563,12 +563,17 @@ bool kit_target_code_model_from_name(const char* val, KitCodeModel* out) { * authority for arbitrary user spellings; these rows describe the supported * release/provisioning profiles (which additionally distinguish libc lanes). */ -#define PROFILE_CAP_HOSTED \ +#define PROFILE_CAP_HOSTED_ELF \ (KIT_TARGET_CAP_COMPILE | KIT_TARGET_CAP_ASSEMBLE | KIT_TARGET_CAP_LINK | \ KIT_TARGET_CAP_SHARED | KIT_TARGET_CAP_EXECUTE | KIT_TARGET_CAP_SELFHOST) -#define PROFILE_CAP_CROSS \ +#define PROFILE_CAP_HOSTED_IMAGE \ + (KIT_TARGET_CAP_COMPILE | KIT_TARGET_CAP_ASSEMBLE | KIT_TARGET_CAP_LINK | \ + KIT_TARGET_CAP_EXECUTE | KIT_TARGET_CAP_SELFHOST) +#define PROFILE_CAP_CROSS_ELF \ (KIT_TARGET_CAP_COMPILE | KIT_TARGET_CAP_ASSEMBLE | KIT_TARGET_CAP_LINK | \ KIT_TARGET_CAP_SHARED) +#define PROFILE_CAP_CROSS_IMAGE \ + (KIT_TARGET_CAP_COMPILE | KIT_TARGET_CAP_ASSEMBLE | KIT_TARGET_CAP_LINK) #define PROFILE_CAP_BARE \ (KIT_TARGET_CAP_COMPILE | KIT_TARGET_CAP_ASSEMBLE | KIT_TARGET_CAP_LINK | \ KIT_TARGET_CAP_EXECUTE) @@ -595,19 +600,19 @@ static const KitTargetProfile target_profiles[] = { PROFILE("linux-glibc-aa64", "aarch64-linux-gnu", KIT_ARCH_ARM_64, KIT_OS_LINUX, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_GLIBC, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_SYSROOT, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_ELF), PROFILE("linux-musl-aa64", "aarch64-linux-musl", KIT_ARCH_ARM_64, KIT_OS_LINUX, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_MUSL, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_SYSROOT, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_ELF), PROFILE("freebsd-aa64", "aarch64-freebsd", KIT_ARCH_ARM_64, KIT_OS_FREEBSD, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_FREEBSD, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_VM, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_ELF), PROFILE("android-aa64", "aarch64-linux-android21", KIT_ARCH_ARM_64, KIT_OS_ANDROID, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_BIONIC, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_SYSROOT, 1, - PROFILE_CAP_CROSS), + PROFILE_CAP_CROSS_ELF), PROFILE("freestanding-aa64", "aarch64-none-elf", KIT_ARCH_ARM_64, KIT_OS_FREESTANDING, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_NONE, KIT_TARGET_SYSROOT_NONE, KIT_TARGET_PROVISION_QEMU, 0, @@ -617,15 +622,15 @@ static const KitTargetProfile target_profiles[] = { PROFILE("linux-glibc-x64", "x86_64-linux-gnu", KIT_ARCH_X86_64, KIT_OS_LINUX, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_GLIBC, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_SYSROOT, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_ELF), PROFILE("linux-musl-x64", "x86_64-linux-musl", KIT_ARCH_X86_64, KIT_OS_LINUX, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_MUSL, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_SYSROOT, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_ELF), PROFILE("freebsd-x64", "x86_64-freebsd", KIT_ARCH_X86_64, KIT_OS_FREEBSD, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_FREEBSD, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_VM, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_ELF), PROFILE("freestanding-x64", "x86_64-none-elf", KIT_ARCH_X86_64, KIT_OS_FREESTANDING, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_NONE, KIT_TARGET_SYSROOT_NONE, KIT_TARGET_PROVISION_QEMU, 0, @@ -635,15 +640,15 @@ static const KitTargetProfile target_profiles[] = { PROFILE("linux-glibc-rv64", "riscv64-linux-gnu", KIT_ARCH_RV64, KIT_OS_LINUX, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_GLIBC, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_SYSROOT, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_ELF), PROFILE("linux-musl-rv64", "riscv64-linux-musl", KIT_ARCH_RV64, KIT_OS_LINUX, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_MUSL, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_SYSROOT, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_ELF), PROFILE("freebsd-rv64", "riscv64-freebsd", KIT_ARCH_RV64, KIT_OS_FREEBSD, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_FREEBSD, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_VM, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_ELF), PROFILE("freestanding-rv64", "riscv64-none-elf", KIT_ARCH_RV64, KIT_OS_FREESTANDING, KIT_OBJ_ELF, 8, KIT_TARGET_LIBC_NONE, KIT_TARGET_SYSROOT_NONE, KIT_TARGET_PROVISION_QEMU, 0, @@ -665,37 +670,37 @@ static const KitTargetProfile target_profiles[] = { PROFILE("windows-aa64", "aarch64-windows", KIT_ARCH_ARM_64, KIT_OS_WINDOWS, KIT_OBJ_COFF, 8, KIT_TARGET_LIBC_UCRT, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_VM, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_IMAGE), #endif #if KIT_OBJ_COFF_ENABLED && KIT_ARCH_X64_ENABLED PROFILE("windows-x64", "x86_64-windows", KIT_ARCH_X86_64, KIT_OS_WINDOWS, KIT_OBJ_COFF, 8, KIT_TARGET_LIBC_UCRT, KIT_TARGET_SYSROOT_EXTERNAL, KIT_TARGET_PROVISION_VM, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_IMAGE), #endif #if KIT_OBJ_MACHO_ENABLED && KIT_ARCH_AA64_ENABLED PROFILE("macos-aa64", "aarch64-apple-darwin", KIT_ARCH_ARM_64, KIT_OS_MACOS, KIT_OBJ_MACHO, 8, KIT_TARGET_LIBC_DARWIN, KIT_TARGET_SYSROOT_NATIVE_SDK, KIT_TARGET_PROVISION_NATIVE, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_IMAGE), PROFILE("ios-aa64", "aarch64-apple-ios", KIT_ARCH_ARM_64, KIT_OS_IOS, KIT_OBJ_MACHO, 8, KIT_TARGET_LIBC_DARWIN, KIT_TARGET_SYSROOT_NATIVE_SDK, KIT_TARGET_PROVISION_SYSROOT, 1, - PROFILE_CAP_CROSS), + PROFILE_CAP_CROSS_IMAGE), PROFILE("ios-simulator-aa64", "aarch64-apple-ios-simulator", KIT_ARCH_ARM_64, KIT_OS_IOS_SIMULATOR, KIT_OBJ_MACHO, 8, KIT_TARGET_LIBC_DARWIN, KIT_TARGET_SYSROOT_NATIVE_SDK, - KIT_TARGET_PROVISION_SYSROOT, 1, PROFILE_CAP_CROSS), + KIT_TARGET_PROVISION_SYSROOT, 1, PROFILE_CAP_CROSS_IMAGE), #endif #if KIT_OBJ_MACHO_ENABLED && KIT_ARCH_X64_ENABLED PROFILE("macos-x64", "x86_64-apple-darwin", KIT_ARCH_X86_64, KIT_OS_MACOS, KIT_OBJ_MACHO, 8, KIT_TARGET_LIBC_DARWIN, KIT_TARGET_SYSROOT_NATIVE_SDK, KIT_TARGET_PROVISION_NATIVE, 1, - PROFILE_CAP_HOSTED), + PROFILE_CAP_HOSTED_IMAGE), PROFILE("ios-simulator-x64", "x86_64-apple-ios-simulator", KIT_ARCH_X86_64, KIT_OS_IOS_SIMULATOR, KIT_OBJ_MACHO, 8, KIT_TARGET_LIBC_DARWIN, KIT_TARGET_SYSROOT_NATIVE_SDK, - KIT_TARGET_PROVISION_SYSROOT, 1, PROFILE_CAP_CROSS), + KIT_TARGET_PROVISION_SYSROOT, 1, PROFILE_CAP_CROSS_IMAGE), #endif #if KIT_OBJ_WASM_ENABLED && KIT_ARCH_WASM_ENABLED PROFILE("wasm32-wasi", "wasm32-wasi", KIT_ARCH_WASM, KIT_OS_WASI, @@ -733,5 +738,7 @@ const KitTargetProfile* kit_target_profile_lookup(const char* name) { #undef PROFILE #undef PROFILE_CAP_BARE -#undef PROFILE_CAP_CROSS -#undef PROFILE_CAP_HOSTED +#undef PROFILE_CAP_CROSS_IMAGE +#undef PROFILE_CAP_CROSS_ELF +#undef PROFILE_CAP_HOSTED_IMAGE +#undef PROFILE_CAP_HOSTED_ELF