[cmake-developers] [CMake 0014062]: Setting Compiler and Linker PDB to the same path in Visual Studio is unsupported.

Mantis Bug Tracker mantis at public.kitware.com
Thu Apr 4 17:36:19 EDT 2013


The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=14062 
====================================================================== 
Reported By:                Robert McMillan
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   14062
Category:                   CMake
Reproducibility:            always
Severity:                   major
Priority:                   high
Status:                     new
====================================================================== 
Date Submitted:             2013-04-04 17:36 EDT
Last Modified:              2013-04-04 17:36 EDT
====================================================================== 
Summary:                    Setting Compiler and Linker PDB to the same path in
Visual Studio is unsupported.
Description: 
I just got conformation from Calvin Clark, a Senior Consultant with Microsoft,
that CMake's practice of setting the Compiler and Linker PDB to the same file is
unsupported. It can caused corruption of the PDB during incremental linking, and
it can cause very severe linker/build performance degradation for large
projects. We have been experiencing a 4X increase in link times due to this
issue, and when you multiply that by 100 projects in our app, times 100
developers on our project, it adds up to a very significant loss of
productivity. We are considering making a local build of CMake to fix the issue,
it is very serious.

The feature in 2.8.10 to override the PDB location is not sufficient, because
this will change the location for both the compiler and linker PDB.

Also, users who are experiencing the issue have no idea why their build times
are slow, and that the PDB location is the cause of the problem.

The correct fix would really be to NOT SET THE COMPILER PDB LOCATION AT ALL!

This will result in a vc100.pdb file being created automatically in the
intermediate directory, as Microsoft intended. The compiler PDB is truly an
intermediate file, and is not supposed to be a permanent artifact of the build,
unlike the linker PDB. They are fundamentally different animals.

I can put you in touch with Microsoft if you want direct confirmation of my
findings.

Steps to Reproduce: 
Generate any Visual Studio project using Cmake.

The Compiler and Linker PDB location is the same, this is unsupported and causes
problems.
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2013-04-04 17:36 Robert McMillanNew Issue                                    
======================================================================




More information about the cmake-developers mailing list