fix(ci): link soul.c only — fixes capability #error breaking every build #26

Merged
will.anderson merged 1 commits from fix/ci-soul-build-single-file into main 2026-06-18 16:29:11 +00:00
Owner

Problem

Every CI run fails at the cc step with:

dist/chat.c:910: #error "capability violation: 'utility' programs may not call 'llm_call_system'"

The workflow was compiling dist/soul.c plus every other dist/*.c file. El inlines all imported modules into the entrypoint (soul.c), so soul.c is self-contained. The other dist/*.c files are redundant — and chat.c has explicit #error guards that fire when it's compiled as a utility module outside the CGI entrypoint.

Fix

Link dist/soul.c only. 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)
  • The Generate ELP master declarations header step (only needed for the now-removed multi-module link)

Expected result

Green CI on all open PRs (#22, #23, #24) and main.

## Problem Every CI run fails at the `cc` step with: ``` dist/chat.c:910: #error "capability violation: 'utility' programs may not call 'llm_call_system'" ``` The workflow was compiling `dist/soul.c` plus every other `dist/*.c` file. El inlines all imported modules into the entrypoint (`soul.c`), so `soul.c` is self-contained. The other `dist/*.c` files are redundant — and `chat.c` has explicit `#error` guards that fire when it's compiled as a `utility` module outside the CGI entrypoint. ## Fix Link `dist/soul.c` only. 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) - The `Generate ELP master declarations header` step (only needed for the now-removed multi-module link) ## Expected result Green CI on all open PRs (#22, #23, #24) and main.
will.anderson added 1 commit 2026-06-18 16:28:29 +00:00
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.
will.anderson merged commit ca29e7ca35 into main 2026-06-18 16:29:11 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: neuron-technologies/neuron#26