When explicitly building a specific target (e.g. ninja tests) from scratch, the job dependency pointed specifically to 'libbotan-3.so.6'. This target will explicitly build just 'libbotan-3.so.6' but fail to set up the required symlinks; most notably: 'libbotan-3.so'. As a result, the linker command with -L. -lbotan-3 will fail to find the shared object.
Now, the binary targets depend on the logical 'libs' target that includes setting the symlinks as needed.
Note that this only happened when explicitly building 'tests', 'cli', etc. When building "all targets" via just ninja it worked fine. Perhaps modulo a race condition, but I didn't look deeper into that.
coverage: 91.282% (+0.007%) from 91.275%
when pulling d8460ebb9e351d822be5e16038aebe80141cb938 on Rohde-Schwarz:fix/ninja_shared
into 33c953a108d93c6a569a59bfebfafd0efd103db4 on randombit:master.
When explicitly building a specific target (e.g.
ninja tests
) from scratch, the job dependency pointed specifically to 'libbotan-3.so.6'. This target will explicitly build just 'libbotan-3.so.6' but fail to set up the required symlinks; most notably: 'libbotan-3.so'. As a result, the linker command with-L. -lbotan-3
will fail to find the shared object.Now, the binary targets depend on the logical 'libs' target that includes setting the symlinks as needed.
Note that this only happened when explicitly building 'tests', 'cli', etc. When building "all targets" via just
ninja
it worked fine. Perhaps modulo a race condition, but I didn't look deeper into that.