Repository navigation
Verify platform TLS linkage without weakening package ABI checks - #363
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The consumer preflight rejected stable jq 1.8.2 because its new thread-local sort state adds the amd64 loader dependency. Real installation also found the minimal Ubuntu image's deliberate message-catalog exclusions.
Keep full archive/SHA, payload and ABI verification. Accept only the exact platform TLS import, require its versioned export in installed and qualified loaders, and reject removed dependencies, other additions, lost export versions or changed SONAMEs. Preserve dpkg settings while restoring only exact SHA-bound documentation/message catalogs; executable or ELF-disguised catalogs remain rejected. No public payload schema changes.
A test-only C probe dynamically loads libjq with RTLD_NOW and checks exact sorted output in four independent threads, plus normal/error end-of-stream. Its compiler/headers/executable remain outside product images. Both GNU and uutils publication receipts must include this control.
Validation: isolated QA VM passed Go 1.27.3 format/unit/static-build gates and both complete GNU/uutils consumer flows: real batch installation, strict post-verification, provider/package-set/configuration preservation, documentation/catalog restoration, loader/cache and CLI controls, and RTLD_NOW plus 4×128 runtime sorts. The static binary is ca5202850ec65c6bd58b9fd307405c611bcccb7808f931324e70c9adbe350fe9. Qualifier tests (25) pass. A separate read-only review compared all 34 library pairs and found no dropped versioned exports. Prior failed pipeline/fixture evidence is retained. Unchanged native package suites are reused, not rerun. Normal required PR checks remain mandatory before merge.