[Boost-bugs] [Boost C++ Libraries] #12266: Visual Studio 2015 Express for Desktop and 64-bit builds

Subject: [Boost-bugs] [Boost C++ Libraries] #12266: Visual Studio 2015 Express for Desktop and 64-bit builds
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-06-11 21:15:15


#12266: Visual Studio 2015 Express for Desktop and 64-bit builds
----------------------------+------------------------------
 Reporter: carles.cufi@… | Type: Bugs
   Status: new | Milestone: To Be Determined
Component: Building Boost | Version: Boost 1.61.0
 Severity: Problem | Keywords:
----------------------------+------------------------------
 When building Boost statically as a set of 64-bit static libraries, I have
 found that using the "usual" Command Prompt doesn't yield 64-bit objects,
 but rather 32-bit ones.

 The build commands I am issuing are:

 bootstrap.bat
 b2 toolset=msvc-14.0 address-model=64 link=static --with-thread --with-
 system --with-regex --with-date_time --with-chrono

 If I open a "Developer Command Prompt" (equivalent to executing %comspec%
 /k ""C:\Program Files (x86)\Microsoft Visual Studio
 14.0\Common7\Tools\VsDevCmd.bat"") and then build with the commands above,
 the libraries generated are 32-bit.

 If I open a "standard" command prompt (equivalent to %comspec% /k
 ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat""
 x86)
 and then build with the commands above, the libraries generated are
 32-bit.

 Finally, if I open a "Visual Studio 2015 x86 x64 Cross Tools Command
 Prompt" (equivalent to %comspec% /k ""C:\Program Files (x86)\Microsoft
 Visual Studio 14.0\VC\vcvarsall.bat"" x86_amd64) and then build with the
 commands above, the libraries generated are 64-bit.

 This is in my opinion a problem because of two reasons:

 1) This contradicts the documentation in:
 http://www.boost.org/build/doc/html/bbv2/reference/tools.html#bbv2.reference.tools.compiler.msvc
 where it says: "Configure you compiler as usual. If you provide a path to
 the compiler explicitly, provide the path to the 32-bit compiler. If you
 try to specify the path to any of 64-bit compilers, configuration will not
 work."
 The usual configuration on Windows is the standard Developer Command
 Prompt.

 2) The build doesn't fail or complain that it cannot generate 64-bit
 binaries, and instead silently disregards the "address-model=64" option
 and generates 32-bit binaries.

 Please note that with other tools (CMake for example) one can build both
 32 and 64-bit binaries from a "standard" command prompt (i.e. no need to
 invoke vcvarsall.bat x86_amd64).

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/12266>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:20 UTC