Skip to content

Use released linker inputs and support static PIE - #549

Merged
lukewilliamboswell merged 6 commits into
mainfrom
feat/static-pie-runtime
Nov 11, 2026
Merged

lukewilliamboswell merged 6 commits into
mainfrom
feat/static-pie-runtime

Conversation

@lukewilliamboswell

@lukewilliamboswell lukewilliamboswell commented Nov 11, 2026 •

Copy link
Copy Markdown
Collaborator

Move the six checked-in Linux linker binaries into the independent linker-input release, and make the platform compatible with Roc's upcoming PIE linker policy while retaining the current compiler pin.

Normal builds restore SHA-256-pinned runtime archives through a shared cache and rebuild the Rust host from source. Unix Rust/C host code is PIC, Linux uses the dual-compatible self-relocating startup, and Windows combines the released support provenance with the freshly built host. Bundling verifies runtime inventories and includes provenance and licenses. Published platform bundles remain self-contained.

The migration pins the actual published linker-input artifacts, updates third-party notices, ignores generated target files, and rejects tracked linker binaries. It also makes runtime publication resumable through drafts and excludes runtime releases from docs restoration.

The compatibility matrix runs both the existing nightly and roc-lang/roc#12949 at c080bd1b across all five native targets. Linux checks cover fully static ELF output, PIE relocation and randomized load addresses, and development-backend TCP/resource probes.

Local validation through the published lock passed 139 native run cases with each compiler, plus all 200 Rust tests and cache/provenance/tooling checks. All 53 executables from each suite passed static ELF checks. The new compiler produces static PIE with randomized load addresses across independent launches. This prepares the requested 0.28.0 stable release.

The compatibility workflow and fixed-address startup patch are temporary for 0.28.0. TODOs beside both implementations and the producer README require their removal in the next release, together with a Roc pin containing roc-lang/roc#12949 and freshly published unpatched startup inputs.

@lukewilliamboswell
lukewilliamboswell merged commit 14ad3d5 into main Nov 11, 2026
46 checks passed
@lukewilliamboswell
lukewilliamboswell deleted the feat/static-pie-runtime branch November 11, 2026 06:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant