Download research/ob1b/verify-binary.sh from i64systems/remat: direct link, hf CLI and curl.
- Browser
- Download file 3.74 kB
-
https://huggingface.co/i64systems/remat/resolve/main/research/ob1b/verify-binary.sh
- Command line
-
hf download hf://i64systems/remat/research/ob1b/verify-binary.sh
-
curl -L -o verify-binary.sh https://huggingface.co/i64systems/remat/resolve/main/research/ob1b/verify-binary.sh
3.74 kB
| # OB-1b: prove what actually separates the ob1b engine from the landed | |
| # ob1 engine. | |
| # | |
| # build-ob1b.sh reported phase A (pristine source recompiled in the ob1b tree) | |
| # as DIFFERING from the landed libllama.so by whole-file sha256. That is expected | |
| # and benign: the linker writes the library's own search path into the file, and | |
| # the ob1b tree lives at a different path. This script settles it properly by | |
| # comparing the EXECUTABLE CODE rather than the whole file. | |
| # | |
| # landed = /root/rs053/llama.cpp branch ob1, head c087083, as landed | |
| # phase A = ob1b tree, src/ob1-lease.cpp PRISTINE -> .text must equal landed | |
| # phase B = ob1b tree, src/ob1-lease.cpp PATCHED -> .text must differ, and | |
| # differ only in the one comparison the guard line compiles to | |
| set -e | |
| SRC=/root/rs053/llama.cpp | |
| DST=/root/ob1b/llama.cpp | |
| LEASE=$DST/src/ob1-lease.cpp | |
| OUT=/root/ob1b/verify | |
| mkdir -p $OUT | |
| echo "=== OB1B BINARY VERIFICATION ===" | |
| echo "utc_start $(date -u +%Y-%m-%dT%H:%M:%SZ)" | |
| echo "--- runpath, the one string that must differ ---" | |
| readelf -d $SRC/build/bin/libllama.so.0 | grep -i runpath | |
| readelf -d $DST/build/bin/libllama.so.0 | grep -i runpath | |
| echo "--- rebuild phase A (pristine source) and keep it ---" | |
| git -C $DST checkout -- src/ob1-lease.cpp | |
| grep -n "OB1_K=%d out of range" $LEASE | |
| touch $LEASE | |
| nice -n 10 make -C $DST/build llama-perplexity -j4 > $OUT/makeA.log 2>&1 | |
| cp $DST/build/bin/libllama.so.0 $OUT/phaseA.so | |
| sha256sum $OUT/phaseA.so | |
| echo "--- rebuild phase B (patched source) and keep it ---" | |
| python3 - "$LEASE" <<'PYEOF' | |
| import sys | |
| p = sys.argv[1] | |
| old = 'if (g_K <= 0 || g_K > g_E) ob1_fatal("OB1_K=%d out of range 1..%d", g_K, g_E);' | |
| new = 'if (g_K < 0 || g_K > g_E) ob1_fatal("OB1_K=%d out of range 0..%d", g_K, g_E);' | |
| s = open(p).read() | |
| assert s.count(old) == 1, "expected exactly one guard line" | |
| open(p, "w").write(s.replace(old, new)) | |
| print("guard edit applied") | |
| PYEOF | |
| grep -n "OB1_K=%d out of range" $LEASE | |
| nice -n 10 make -C $DST/build llama-perplexity -j4 > $OUT/makeB.log 2>&1 | |
| cp $DST/build/bin/libllama.so.0 $OUT/phaseB.so | |
| sha256sum $OUT/phaseB.so | |
| echo "--- extract .text from all three ---" | |
| for n in landed phaseA phaseB; do | |
| case $n in | |
| landed) f=$SRC/build/bin/libllama.so.0 ;; | |
| phaseA) f=$OUT/phaseA.so ;; | |
| phaseB) f=$OUT/phaseB.so ;; | |
| esac | |
| objcopy -O binary --only-section=.text "$f" $OUT/$n.text | |
| printf "%-8s .text %12d bytes %s\n" "$n" "$(stat -c %s $OUT/$n.text)" "$(sha256sum $OUT/$n.text | cut -d' ' -f1)" | |
| done | |
| echo "--- verdicts ---" | |
| TL=$(sha256sum $OUT/landed.text | cut -d" " -f1) | |
| TA=$(sha256sum $OUT/phaseA.text | cut -d" " -f1) | |
| TB=$(sha256sum $OUT/phaseB.text | cut -d" " -f1) | |
| if [ "$TL" = "$TA" ]; then | |
| echo "A) landed .text == phaseA .text : MATCH -- the ob1b tree reproduces the landed" | |
| echo " engine's executable code exactly; the whole-file digest differs only in" | |
| echo " metadata (the RUNPATH above)." | |
| else | |
| echo "A) landed .text != phaseA .text : DIFFER" | |
| cmp -l $OUT/landed.text $OUT/phaseA.text | wc -l | sed "s/^/ differing bytes: /" | |
| fi | |
| if [ "$TB" = "$TA" ]; then | |
| echo "B) phaseA .text == phaseB .text : MATCH -- the guard edit did NOT reach the code, STOP" | |
| else | |
| echo "B) phaseA .text != phaseB .text : DIFFER, as the guard edit requires" | |
| echo " differing bytes between pristine and patched .text:" | |
| cmp -l $OUT/phaseA.text $OUT/phaseB.text | wc -l | sed "s/^/ /" | |
| echo " first differing byte offsets:" | |
| cmp -l $OUT/phaseA.text $OUT/phaseB.text | head -8 | |
| fi | |
| echo "--- the running binary is phase B (patched); confirm ---" | |
| sha256sum $DST/build/bin/libllama.so.0 $DST/build/bin/llama-perplexity | |
| grep -n "OB1_K=%d out of range" $LEASE | |
| echo "utc_end $(date -u +%Y-%m-%dT%H:%M:%SZ)" | |
| echo "=== END VERIFICATION ===" | |