c71e5d1cf8
Two small correctness fixes surfaced by community reports on non-Linux hosts: #236 — expert_load's buffered pread paths (slab + qs scales) used perror("pread expert") on a short read. Since pread returned a short count (not -1), errno stays 0 and perror prints "Success" — a confusing message right before exit(1) in the score/bench path. New pread_full() helper loops over short reads and EINTR and reports actual/expected bytes and offset, so a truncated shard reads as such instead of "Success". #219 — Linux pulls -pthread in via -fopenmp; the *BSDs do not, so pthread_* fail to link there. Added -pthread to the generic (Linux/*BSD x86-64) and aarch64 CFLAGS/LDFLAGS. No-op on Linux, required on FreeBSD (complements #206). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>