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:
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