Quite often when running a parallel NSS build, I get the following
compiler error message, resulting in a build failure, despite
compiling with the -FS flag:
.../nss/nspr/pr/tests/zerolen.c: fatal error C1041:
Programmdatenbank "...\nss\nspr\out\pr\tests\vc140.pdb" kann nicht
ge<94>ffnet werden; verwenden Sie /FS, wenn mehrere CL.EXE in
dieselbe .PDB-Datei schreiben.
The failing source file is always one of the last test object
files. But the actual problem is not the compiler accessing the
PDB file, but the linker already linking the first test
executables accessing the shared PDB; at least that's my guess.
So instead of using a shared PDB for all test object files, this
uses -Fd$(@:.$(OBJ_SUFFIX)=.pdb) to write a separate PDB for every
test's object file. The linker works fine with the shared OBJ PDB.