Debug-info separation (D5, D5a)
Goal
A split-debug linux binary is debuggable via build-id lookup and its shipped artifact excludes the debug symbols.
Implementation Sketch
Derived from compiler_repo/docs/ori_lang/proposals/approved/cache-lifecycle-proposal.md. Implement the work items below in order; each maps to a design bullet in the approved proposal.
Spec References
- Approved proposal:
compiler_repo/docs/ori_lang/proposals/approved/cache-lifecycle-proposal.md - Umbrella invariant T4:
compiler_repo/docs/ori_lang/proposals/approved/toolchain-philosophy-proposal.md
Work Items
- Default Linux debug info to split (
.dwo/.debuglocated by build-id /.gnu_debuglink); add--debug-info=split|embeddedplacement flag, inert under--debug=0 - Locate debug info via platform-native linkage only; the cache manifest is never the debugger’s discovery path
- D5a: materialize the sidecar alongside its deliverable by the same mechanism, with its discovery path resolving against the deliverable’s location