Bugs and caveatsΒΆ

  • Debug symbols/PDB files/precompiled headers.

    It is difficult to handle PDB file generation when distributing build. PDB format is closed and there is no known way to merge two PDB files into a single one. In other words, if two objects are compiled on different servers, BuildPal cannot create a single PDB containing debug info for both objects.

    BuildPal currently avoids the issue by replacing any /Zi compiler switches it detects with /Z7, i.e. debug info gets stored in the object file itself.

    When generating precompiled headers there additional complications, so /Zi is just dropped. You won’t get debug info for PCH itself.

  • Header cache and volatile search path

    Cache assumes that a fixed search path and header name will always resolve to the same file. If you place a new header file in a directory on include path before the pre-existing header file with the same name, it is possible that the pre-existing header will still be used.