Opened 8 years ago

Last modified 5 years ago

#10922 new Bugs

Fails to link python-extension project when msvc target is used

Reported by: Pavel Machyniak <machyniak@…> Owned by: Vladimir Prus
Milestone: To Be Determined Component: build
Version: Boost Development Trunk Severity: Showstopper
Keywords: python-extension build msvc Cc:

Description

For python-extension boost.build project, using target msvc, on link stage the command line is generated incorrectly and the build fails.

Generated command line:

link
 /NOLOGO /INCREMENTAL:NO /DLL /NOENTRY /DEBUG /MACHINE:X86 /MANIFEST
 /subsystem:console 
 /out:"bin\msvc-12.0\debug\threading-multi\mytest.pyd" 
 /IMPLIB:"bin\msvc-12.0\debug\threading-multi\mytest.pdb"
 /LIBPATH:"C:\Program Files (x86)\Python34\libs"
 @"bin\msvc-12.0\debug\threading-multi\mytest.pyd.rsp"

Error displayed: LINK : fatal error LNK1207: incompatible PDB format in 'D:\Temp\test\bin\msvc-12.0\debug\threading-multi\mytest.pdb'; delete and rebuild

Note the IMPLIB part referencing the .pdb file instead of the .lib file.

Steps to reproduce:

  • unpack the attachment
  • copy the boost lib to boost directory
  • copy boost.build to boost-build directory
  • run boost-build\bin\b2
  • or boost-build\bin\b2 target=msvc-12

Tested with msvc 10 and 12. Standard shared library/dll project compiles fine.

Attachments (1)

test.zip (977 bytes ) - added by Pavel Machyniak <machyniak@…> 8 years ago.

Download all attachments as: .zip

Change History (2)

by Pavel Machyniak <machyniak@…>, 8 years ago

Attachment: test.zip added

comment:1 by Steven Watanabe, 5 years ago

The reason is that <suppress-import-lib>true disables the import library, but msvc.link.dll assumes that the import library is the second target (which is actually the .pdb).

Note: See TracTickets for help on using tickets.