-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Goal:
Produce shared objects from gcc-generated object files that can be loaded at runtime (Ruby dlopen path).
Scope:
- Define and implement the minimum linker requirements for a loadable
.sofrom gcc.oinputs. - Prioritize runtime-load correctness over broad feature coverage.
- Cover the basic runtime path:
dlopensucceeds- expected symbol is resolvable (
dlsym/equivalent) - callable function returns expected value
Implementation plan (incremental):
- Start from a minimal
-fPICfixture (single exported function, no complex deps). - Enumerate relocations emitted by gcc for that fixture and support required subset.
- Keep unsupported relocations as explicit linker errors (no silent output corruption).
- Add E2E test(s) in Ruby-side runtime loading path (Fiddle or equivalent wrapper).
Acceptance criteria:
- A self-linked
.sofrom the minimal fixture is loadable and callable from Ruby runtime. - Tests assert load + symbol resolution + function result.
- Failure mode for unsupported relocations is explicit and deterministic.
Out of scope (for this issue):
- Full relocation-family support across all gcc outputs.
- Property-based testing expansion (tracked separately).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels