# Java native-source capsule shared build closure

The existing native-source copier now carries `bench/common/native-build.mk`
and the owning `tools/libhft_benchmark_layout.py` marker. The shared fragment
resolves in the staged tree, and its marker retains that tree's development
compiler policy. The remaining copier, generated build script, SDK source
selection, measurement code and source-provenance admission rules are unchanged.
All five existing bundle preparation checks pass; their assertions remain,
with the fixture and closure check extended for the two required files.

Source **f1d8dee0765c6591708774e97bb2caa1365db1be** is retained on
`s/codex-fullbench-java-native-capsule-source-20261003`. A complete **750-file**
stripped harness archive on HP executes the actual copier against an explicit
**209-file** development-layout SDK source fixture. That fixture contains actual
tracked source bytes, the open C++ include tree and the existing kernel/native
inputs. It does not supply installed machine payloads or a new engine SDK.

The staged-copy control removes only the common fragment and correctly fails
Make parsing. Restoring its exact bytes permits a fresh GCC 14/C++11/O3 JNI
affinity build outside the source tree. Two JVMs load that actual library via
an explicit path and `java.library.path`, query a leased CPU and check native
invalid-core refusal. The foreground build/probes use HP's high-priority shared
CPU lease after host/process preflight. Both harness and SDK input bytes/modes
remain unchanged, no outputs land in either source tree, and the materialized
sources and staged capsule are removed.

Receipts, source/hash maps, controller, build command and load outputs are sealed
in `~/archive/libhft/java-native-capsule-20261003-f1d8dee0765c` and
[repository evidence](evidence/java-native-capsule-20261003/SHA256SUMS).
The SDK input tarball stays in the private archive; repository/website evidence
retains its source map rather than shipping supplied engine sources.

This closes the framework build dependency in the existing native capsule.
The engine JNI build and standalone SDK-source discovery/producer workflow are
still separate unfinished qualifications. No full-session, physical Stage 5,
timing/report or release admission is added.

After integration, all **750 harness inputs** remain byte/mode identical.
Two of the 209 supplied SDK-source files have concurrent engine-owner changes:
the journal recovery/owed-sequence repair and FIXP JNI responses/ABI signature.
Both are preserved. Neither participates in the qualified affinity build;
every compiled framework/shared-Make/header/probe input remains unchanged.
The original SDK source fixture stays pinned and retained. Fresh engine JNI
and its matching JAR/ABI qualification remain required independently.

A later concurrent microbench publication changes ten original harness inputs
for llfix's upstream receive hook, twelve negative field probes, roster and
prepared-campaign compatibility. These changes are preserved and reviewed in
their owned scope: **740 of 750** original archive inputs remain unchanged.
All qualified framework/Java/copier/shared-Make inputs remain identical, and
the five preparation tests pass again without skips. Both integration maps
remain retained; no new Stage 2 timing or whole-archive release grade is inferred.
