Boost logo

Boost-Build :

From: Edward Diener (eldiener_at_[hidden])
Date: 2019-07-30 22:14:14


On 7/30/2019 10:00 AM, Maarten Verhage via Boost-build wrote:
> Dear Boost.Build experts,
>
> I do have Boost 1.69 and was able to build boost from the sources with
> Mingw-w64 gcc 8.1 on Windows 7. That was for boost itself, but now I need to
> build the tests for the Boost library Spirit (the parser). I cannot get this
> to work. To be more precise it's the Github develop version of that library.

What does building Boost in version 1.69 using gcc-8.1 have to do with
running the latest Spirit 'develop branch tests using gcc-8.1 ?

I have successfully run the latest Spirit 'develop' branch tests using
mingw-w64/gcc-8.1 on Windows 10, both in 32-bit and 64-bit mode. All
tests pass.

Here are the things I think you need to do to do this:

1) Get the latest Boost from Github into a directory and then run these
comamnds from that directory:
2) git checkout develop
3) git pull
4) get submodule update --init
5) git submodule foreach --recursive git checkout develop
6) git submodule foreach --recursive git pull
7) ./bootstrap.bat to create the latest b2
8) ./b2 headers
10) cd to the Spirit test directory
11) ../../../b2 toolset=gcc-8.1 etc.

The last step needs an appropriate entry for the gcc-8.1 toolset in your
user-config.jam. My user-config.jam entry for running gcc-8.1 in 32-bit
mode is:

using gcc : 8.1 :
     "E:/programming/bat/cp_gcc81.bat" :
     <cxxflags>-Wno-unused-local-typedefs
     <cxxflags>-ftrack-macro-expansion=0
     <cxxflags>-Wno-unused-variable
     <cxxflags>-D_GLIBCXX_USE_CXX11_ABI=1
 
<root>"C:/Utilities/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32" ;

where "E:/programming/bat/cp_gcc81.bat" is:

@echo off
set
PATH=C:\Utilities\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin;%PATH%
g++ %*

I have always found that a mingw-w64/gcc bin directory must be in the
Windows PATH or else gcc on Windows can not find what it needs. I have a
similarly appropriate gcc entry for 64-bit mode using the 64-bit version
of mingw-w64/gcc. I have a sneeking suspicion that the 64-bit version of
mingw-w64/gcc can do both the 32-bit and 64-bit compiles.

I do hope that you are not telling me that you are trying to run the
Spirit test in Boost 1.69 by using the latest 'develop" Spirit and the
latest 'develop' Boost Build/b2 somehow. I assume you know that you
should never mix up versions of Boost libraries/Boost Build between
different Boost distributions.

I hope this helps, but I can only reflect what succeeds for me.

>
> My Boost.Build version is 2018.02-git.
>
> According to Boost.Build documentation paragraph 3.3 Configuration, the
> option "b2 --debug-configuration" gives info how my boost.build is
> configured.
>
> In the folder <boost-build>\example\hello the output of
> "b2 --debug-configuration" looks fine. So boost build seems to be setup
> properly.
>
> But when I run from the folder <boost-spirit-develop>\test
> "b2 --debug-configuration" the output contains:
> error: Could not find parent for project at '.'.
>
> So in the folder <boost-spirit-develop>\test I rename Jamfile to
> Jamroot.jam. Now with "b2 --debug-configuration" I get: output.txt
> (attachtment of this email)
>
> Also when I try to build the tests I get the same error messages, strarting
> from:
> config.jam: No such file or directory
>
> How do I solve this?


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk