fix(elb): all linker fixes — gcc compat, OpenSSL, runtime import conflict #40

Merged
will.anderson merged 1 commits from fix/elb-gcc-bracket-depth into dev 2026-05-07 14:16:18 +00:00
Owner

Three fixes that were hidden because dev/stage CIs didn't run the full build pipeline:

  1. -fbracket-depth=1024 is clang-only — detect cc type at link time
  2. Missing -lssl -lcrypto — el_runtime.c uses OpenSSL for AEAD
  3. el-install.el imported runtime modules explicitly — caused http.c + el_runtime.c double-definition on link; removed the imports (runtime functions are builtins, no import needed)

Also adds epm + el-install build steps to ci-dev.yaml and ci-stage.yaml so these are caught on every PR, not just sdk-release.

Three fixes that were hidden because dev/stage CIs didn't run the full build pipeline: 1. -fbracket-depth=1024 is clang-only — detect cc type at link time 2. Missing -lssl -lcrypto — el_runtime.c uses OpenSSL for AEAD 3. el-install.el imported runtime modules explicitly — caused http.c + el_runtime.c double-definition on link; removed the imports (runtime functions are builtins, no import needed) Also adds epm + el-install build steps to ci-dev.yaml and ci-stage.yaml so these are caught on every PR, not just sdk-release.
will.anderson added 1 commit 2026-05-07 08:21:18 +00:00
fix elb linker: remove runtime imports from el-install, add --clean, catch in dev/stage CI
El SDK CI - dev / build-and-test (pull_request) Successful in 3m35s
027ad82db2
el-install.el explicitly imported runtime/*.el modules (string, env, fs, exec,
json, http), which elb compiled to .c files in the shared dist/bin out_dir.
Linking those alongside el_runtime.c caused multiple definition errors for
every runtime function (http_get, http_patch, etc.). The runtime .el files are
thin wrappers over seed primitives already compiled into el_runtime.c — no
import needed.

Fixes:
- Remove all explicit runtime imports from el-install.el (root cause)
- Add --clean to every elb invocation in sdk-release.yaml so each build
  starts with a clean out_dir (defense-in-depth against stale .c files)
- Add elb build + epm/el-install build steps to ci-dev.yaml and ci-stage.yaml
  so linker errors are caught on every PR, not just stage->main
will.anderson merged commit 8ef3eb6bec into dev 2026-05-07 14:16:18 +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/el#40