fix(ci): link soul.c only — fixes capability #error breaking every build #26
Reference in New Issue
Block a user
Delete Branch "fix/ci-soul-build-single-file"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Every CI run fails at the
ccstep with:The workflow was compiling
dist/soul.cplus every otherdist/*.cfile. El inlines all imported modules into the entrypoint (soul.c), sosoul.cis self-contained. The otherdist/*.cfiles are redundant — andchat.chas explicit#errorguards that fire when it's compiled as autilitymodule outside the CGI entrypoint.Fix
Link
dist/soul.conly. Exactly what the local mac build does. Drop:$OTHER_C(all non-soul.c modules)-Wl,--allow-multiple-definition(not needed with a single .c file)Generate ELP master declarations headerstep (only needed for the now-removed multi-module link)Expected result
Green CI on all open PRs (#22, #23, #24) and main.
elb generates a dist/soul.c with all El modules inlined. Linking dist/soul.c alone is sufficient and is exactly what the local mac build does. Including other dist/*.c files causes two failures: 1. dist/chat.c has a capability-violation #error that fires when the file is compiled as a utility module (outside the cgi entrypoint). 2. --allow-multiple-definition masked other issues silently. Drop OTHER_C, drop --allow-multiple-definition, drop the now-unused elp-c-decls.h generation step. The cc command now matches the proven local build exactly.