diff --git a/src/tools/msvc.jam b/src/tools/msvc.jam index cda37f382..c66a8e25d 100644 --- a/src/tools/msvc.jam +++ b/src/tools/msvc.jam @@ -1036,9 +1036,12 @@ class msvc-linking-generator : linking-generator if [ $(property-set).get ] = "on" { - # PDB is 'good' target -- the basename is the same of for main target, with - # .pdb as extension - local target = [ class.new file-target $(name) : PDB : $(project) : $(action) ] ; + # We force exact name on PDB. The reason is tagging -- the tag rule may + # reasonably special case some target types, like SHARED_LIB. The tag rule + # will not catch PDB, and it cannot even easily figure if PDB is paired with + # SHARED_LIB or EXE or something else. Because PDB always get the + # same name as the main target, with .pdb as extension, just force it. + local target = [ class.new file-target $(name-main:S=.pdb) exact : PDB : $(project) : $(action) ] ; local registered-target = [ virtual-target.register $(target) ] ; if $(target) != $(registered-target) {