kit

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

commit 0d51543814386c2d99901b968fff1d4b3daf654c
parent 5660104434d3541184d794eff0f8b1a0af859bb1
Author: Ryan Sepassi <rsepassi@gmail.com>
Date:   Fri, 12 Jun 2026 09:46:45 -0700

chore(config): assert every release gate in config_assert.c

Bring the build-config static assertions up to date with the current flag set:
add the RV32 backend to the backend-bool list and the at-least-one-backend
count; add the CAS/PKG/COMPRESS subsystem bools; add the build-*/install and
xxd/cmp/hash/compress/disas/mc tool bools; and add the matching dependency
_Static_asserts (build-* need link+ar, compress needs compression, disas/mc need
disasm) so a misconfigured release build fails at compile time.

Diffstat:
Msrc/core/config_assert.c | 35+++++++++++++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)

diff --git a/src/core/config_assert.c b/src/core/config_assert.c @@ -4,8 +4,8 @@ #include "kit/config.h" _Static_assert(KIT_ARCH_AA64_ENABLED + KIT_ARCH_X64_ENABLED + - KIT_ARCH_RV64_ENABLED + KIT_ARCH_WASM_ENABLED + - KIT_ARCH_C_TARGET_ENABLED >= + KIT_ARCH_RV32_ENABLED + KIT_ARCH_RV64_ENABLED + + KIT_ARCH_WASM_ENABLED + KIT_ARCH_C_TARGET_ENABLED >= 1, "at least one backend architecture must be enabled"); @@ -19,6 +19,7 @@ _Static_assert(KIT_OBJ_ELF_ENABLED + KIT_OBJ_MACHO_ENABLED + KIT_ASSERT_BOOL(KIT_ARCH_AA64_ENABLED); KIT_ASSERT_BOOL(KIT_ARCH_X64_ENABLED); +KIT_ASSERT_BOOL(KIT_ARCH_RV32_ENABLED); KIT_ASSERT_BOOL(KIT_ARCH_RV64_ENABLED); KIT_ASSERT_BOOL(KIT_ARCH_WASM_ENABLED); KIT_ASSERT_BOOL(KIT_ARCH_C_TARGET_ENABLED); @@ -40,11 +41,18 @@ KIT_ASSERT_BOOL(KIT_LINK_ENABLED); KIT_ASSERT_BOOL(KIT_JIT_ENABLED); KIT_ASSERT_BOOL(KIT_DBG_ENABLED); KIT_ASSERT_BOOL(KIT_EMU_ENABLED); +KIT_ASSERT_BOOL(KIT_CAS_ENABLED); +KIT_ASSERT_BOOL(KIT_PKG_ENABLED); +KIT_ASSERT_BOOL(KIT_COMPRESS_ENABLED); KIT_ASSERT_BOOL(KIT_INTERP_ENABLED); KIT_ASSERT_BOOL(KIT_INTERP_THREADED); KIT_ASSERT_BOOL(KIT_TOOL_CC_ENABLED); KIT_ASSERT_BOOL(KIT_TOOL_CHECK_ENABLED); +KIT_ASSERT_BOOL(KIT_TOOL_BUILD_EXE_ENABLED); +KIT_ASSERT_BOOL(KIT_TOOL_BUILD_LIB_ENABLED); +KIT_ASSERT_BOOL(KIT_TOOL_BUILD_OBJ_ENABLED); +KIT_ASSERT_BOOL(KIT_TOOL_INSTALL_ENABLED); KIT_ASSERT_BOOL(KIT_TOOL_CPP_ENABLED); KIT_ASSERT_BOOL(KIT_TOOL_AS_ENABLED); KIT_ASSERT_BOOL(KIT_TOOL_LD_ENABLED); @@ -63,6 +71,12 @@ KIT_ASSERT_BOOL(KIT_TOOL_SYMBOLIZE_ENABLED); KIT_ASSERT_BOOL(KIT_TOOL_STRINGS_ENABLED); KIT_ASSERT_BOOL(KIT_TOOL_CAS_ENABLED); KIT_ASSERT_BOOL(KIT_TOOL_PKG_ENABLED); +KIT_ASSERT_BOOL(KIT_TOOL_XXD_ENABLED); +KIT_ASSERT_BOOL(KIT_TOOL_CMP_ENABLED); +KIT_ASSERT_BOOL(KIT_TOOL_HASH_ENABLED); +KIT_ASSERT_BOOL(KIT_TOOL_COMPRESS_ENABLED); +KIT_ASSERT_BOOL(KIT_TOOL_DISAS_ENABLED); +KIT_ASSERT_BOOL(KIT_TOOL_MC_ENABLED); #undef KIT_ASSERT_BOOL @@ -90,6 +104,17 @@ _Static_assert(!KIT_TOOL_CC_ENABLED || "KIT_TOOL_CC_ENABLED requires C, link, and ar support"); _Static_assert(!KIT_TOOL_CHECK_ENABLED || KIT_LANG_C_ENABLED, "KIT_TOOL_CHECK_ENABLED requires C support"); +/* The build-* verbs share build.c, which drives kit_build_link and the + * archive engine unconditionally; every BUILD_* subset needs link + ar. */ +_Static_assert(!KIT_TOOL_BUILD_EXE_ENABLED || + (KIT_LINK_ENABLED && KIT_AR_ENABLED), + "KIT_TOOL_BUILD_EXE_ENABLED requires link and ar support"); +_Static_assert(!KIT_TOOL_BUILD_LIB_ENABLED || + (KIT_LINK_ENABLED && KIT_AR_ENABLED), + "KIT_TOOL_BUILD_LIB_ENABLED requires link and ar support"); +_Static_assert(!KIT_TOOL_BUILD_OBJ_ENABLED || + (KIT_LINK_ENABLED && KIT_AR_ENABLED), + "KIT_TOOL_BUILD_OBJ_ENABLED requires link and ar support"); _Static_assert(!KIT_TOOL_CPP_ENABLED || KIT_LANG_CPP_ENABLED, "KIT_TOOL_CPP_ENABLED requires C preprocessor support"); _Static_assert(!KIT_TOOL_LD_ENABLED || KIT_LINK_ENABLED, @@ -122,3 +147,9 @@ _Static_assert(!KIT_TOOL_CAS_ENABLED || KIT_CAS_ENABLED, "KIT_TOOL_CAS_ENABLED requires CAS support"); _Static_assert(!KIT_TOOL_PKG_ENABLED || KIT_PKG_ENABLED, "KIT_TOOL_PKG_ENABLED requires PKG support"); +_Static_assert(!KIT_TOOL_COMPRESS_ENABLED || KIT_COMPRESS_ENABLED, + "KIT_TOOL_COMPRESS_ENABLED requires compression support"); +_Static_assert(!KIT_TOOL_DISAS_ENABLED || KIT_DISASM_ENABLED, + "KIT_TOOL_DISAS_ENABLED requires disasm support"); +_Static_assert(!KIT_TOOL_MC_ENABLED || KIT_DISASM_ENABLED, + "KIT_TOOL_MC_ENABLED requires disasm support");