# Legacy Java affinity build output root

`java/hft-bench/build_native.sh` now honors an absolute `LIBHFT_BUILD_ROOT`,
using the same `bench/java/hft-bench/target/native` suffix as Maven and Make.
The original `-O2 -fPIC -shared` build and JNI sources are unchanged. Unset,
the existing `libs/` output remains available. A relative root is rejected
before compilation or directory creation. The exact original script,
including its historical diagnostic discussion, is retained privately at
`internal/bench/java/hft-bench/build_native-original-20261003.sh`.

Source **fa4a6f9ac4b054f48d4de32b277c11c8b1bb0c2f** is retained on
`s/codex-fullbench-java-affinity-wrapper-source-20261003`. A fresh complete
**748-file** stripped archive on HP passes one relative-output refusal and
two real JVM/JNI load checks. The wrapper is invoked from outside its source
directory with a build root containing spaces. Both JVMs query a leased CPU
and exercise the native invalid-core refusal. The library lands outside the
archive; all source bytes/modes remain unchanged, with no source-tree output.
The disposable materialization is removed.

The foreground work uses a high-priority shared CPU lease after host/process
preflight. Exact source archive/maps, tool versions, controller, commands and
library hash are sealed in
`~/archive/libhft/java-affinity-wrapper-20261003-fa4a6f9ac4b0` and
[repository evidence](evidence/java-affinity-wrapper-20261003/SHA256SUMS).
This is functional output-path and ABI verification. The separately qualified
Make/Maven build retains its 80 passing tests without skips. No engine,
physical benchmark, timing, Stage 5, report or public release grade is added.
