Uh oh!
There was an error while loading. Please reload this page.
patches: msys variant of the tebako spawn hook (fix the target_file shadowing) - #103
Merged
Conversation
…hadowing) process_c_clock_guard_msys (lines 3.2/3.3/3.4) shadows the base process_c_tebako_spawn under PatchSelection's msys rule (a base patch is dropped when an _msys sibling targets the same file), so windows runtimes have never carried the spawn hook — including the argv bridge merged in #102. Add the msys variant (identical content; the POSIX half compiles out under _WIN32) so the bridge actually lands on msys. 3.1/4.0 have no clock_guard patch and keep the base, verified via PatchSelection for 3.1.7/3.2.11/3.3.12/3.4.10/4.0.6 + scenario composition proofs (tools/apply --platform msys --pass 2).
Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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.
Summary
Fixes the reason the windows argv bridge (merged in #102) had no effect on the packed-mn acceptance: the spawn patch never reached msys builds at all.
Root cause (proven, not hypothesized)
PatchSelection#filter_platform(tools/lib/tfs/patch_selection.rb:135-138) implements the msys shadow rule: a base patch is dropped when an_msys-suffixed sibling targets the same file (by+++ b/header). Lines 3.2/3.3/3.4 carryprocess_c_clock_guard_msys.patch(target:process.c), which shadows the baseprocess_c_tebako_spawn.patch(target:process.c).Local proof with the repo's own tooling:
So windows runtimes have never contained the spawn hook — not even the pre-#102 no-op stub. The packed-mn#251 windows acceptance on runtime 0.16.13 failed with the byte-identical jing error (
Unable to access jarfile A:/__tfs__/...jing-20091111.jar) because there was nothing in the binary to rewrite the token.Fix
Add
process_c_tebako_spawn_msys.patch(byte-identical to the base — the POSIX half is#ifndef _WIN32and compiles out; the win32 argv bridge compiles in) plus the manifest entry on the three affected lines (3.2, 3.3, 3.4). Lines 3.1 and 4.0 have noclock_guard_msys, so the base patch already lands there — verified, no change.Validation
msys pass2vslinux-gnu:process_c_tebako_spawn_msys; POSIX unchangedtools/lintOK on 3.1.7 / 3.2.11 / 3.3.12 / 3.4.10 / 4.0.6 (lint checks each patch independently — necessary, not sufficient)tools/apply <v> --platform msys --pass 2succeeds for 3.2.11 / 3.3.12 / 3.4.10, and the composed msysprocess.ccontains the bridge (tfs_spawn_prepare,tebako_path_is_embedded,tebako_fs_exec_materializeat the bridge sites), composing cleanly withclock_guard_msys.Follow-ups