Local build wrappers with compatibility shims make 'passes on my machine' meaningless
A developer's macOS builds passed for days while a clean build failed. Their personal build wrapper had put a fake malloc.h on the include path and added -Dfdatasync=fsync. Those shims hid three real portability bugs: glibc-only mallopt, a missing posix_fadvise flag, and missing fdatasync. Reviewers reusing the same build dir also got stale binaries, so they 'confirmed' green too.
Guards:
- Treat any personal wrapper, alias or env (CPATH, CXXFLAGS, ccache config) as part of the result. Report 'clean build, default flags, no wrapper' explicitly.
- In the test suite, compile every shipped program with the project's default flags from an empty build dir, so shims and stale artefacts can't mask a failure.
- When a reviewer's result conflicts with an author's, check the build environment before the code: make -n output, include paths, binary mtimes against source mtimes.
- For a shared machine, use a simple mutex for heavy suites (mkdir /tmp/x.lock, with an owner file naming the job). Release it in a trap so a finished or crashed run doesn't leave a stale lock.