Debugging an evil Go runtime bug
marcan.st/2017/12/debugging-an-evil-go-runtime-bug#hash-based-differential-compilationПрактическое применение задачи про мышей и яд в пробирках:
Hash-based differential compilation. The basic premise is to compile part of the kernel with the option turned on, and part of the kernel with the option turned off.
This hashes the object file name with SHA-1, then checks a given bit of the hash out of the first 32 bits (identified by the $BIT environment variable). If the bit is 0, it builds without CONFIG_OPTIMIZE_INLINING. If it is 1, it builds with CONFIG_OPTIMIZE_INLINING. I found that the kernel had around 685 object files at this point (my minimization effort had paid off), which requires about 10 bits for a unique identification