Build fails on current master with debug-store=database (regression from 1.75)

Open
#710 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
38/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
cpp
Domain
build-system

Research direction

Reproduce the failure with bootstrap.bat and the supplied b2 command on Windows using MSVC 14.1, then compare the current master with Boost.Build commit 76da80f. Trace how cflags=/FS is propagated when debug-store=database is enabled. Done means the command builds successfully with PDB generation and no C1041 errors.

Written by the indexing model from the issue text.

Description

transition

Operating System: Windows 1809
Compiler: Microsoft (R) C/C++ Optimizing Compiler Version 19.16.27045 for x64 (which is VS2017's compiler shipped with VS2019).

I compile boost as decribed here via:

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.16
.\bootstrap.bat 
.\b2 toolset=msvc-14.1 -j8 architecture=x86 runtime-link=shared variant=debug,release --without-mpi --without-python --without-graph_parallel --stagedir=stage64 debug-symbols=on debug-store=database cflags=/FS pch=off --hash address-model=64 stage

This works perfectly fine with the current release boost-1.75 but is broken on the current master which is this commit in boost.build.

I get lots of error messages like this one:

fatal error C1041: cannot open program database 'D:\lib\boost_f0b58842\bin.v2\libs\wave\build\faa0db243f6e360880aded34dd7ff9cb\libboost_wave-vc141-mt-x64-1_76.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS

It seems the cflags=/FS are no longer passed correctly to the compiler.

Avoiding debug-store=database still works ... but comes without PDBs

.\b2 toolset=msvc-14.1 -j8 architecture=x86 runtime-link=shared variant=debug,release --without-mpi --without-python --without-graph_parallel --stagedir=stage64 debug-symbols=on pch=off --hash address-model=64 stage
Dominant language
C++
Stars
251
Forks
63
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from boostorg/build

All issues in boostorg/build

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.