Boost logo

Boost :

Subject: Re: [boost] [log][regression] Error with Boost.Lob build jamfile breaks MinGW regression tester in develop
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2016-07-09 12:21:11

On July 9, 2016 6:55:10 PM Ion Gaztañaga <igaztanaga_at_[hidden]> wrote:

> On 09/07/2016 17:13, Andrey Semashev wrote:
>> It looks like it might be related to the <conditional> requirements in
>> the project. Can you try commenting these lines in log/build/Jamfile.v2
>> individually?
> Good catch. I've commented code and found the error is in the function
> rule check-message-compiler ( properties * )
> I've changed the line 117:
> if <target-os>windows in $(properties)
> to
> if <target-os>windows in $(properties) && !<toolset>gcc in $(properties)
> and the error goes away. It seems that the line 121:
> local has_mc = \
> [ configure.builds (...) : $(properties) : message-compiler ] ;
> is where the problem lies.
> The Boost.log documentation states that "at some point the library will
> require a Message Compiler tool (mc.exe), which is not available in
> MinGW, Cygwin and some versions of MSVC Express Edition". The check
> seems to hurt Boost.Build when using a MINGW environment.
> I don't know if my change makes any sense as windows supports many
> compilers (clang, intel, borland, ) so maybe the "if" condition should
> be more complex. I've applied the change locally and regression tests
> are up again.

There are multiple message compilers on Windows. MinGW ships windmc, IIRC.
It can also work with mc from MSVC if one is found. So disabling it based
on the C++ compiler is not quite correct.

The whole point of this <conditional> stuff is to detect if there's any way
to build .mc files, and I would really prefer if Boost.Build handled that.
I think, unless I'm doing something terribly wrong, Boost.Build should be

For now you can also try building with define=BOOST_LOG_WITHOUT_EVENT_LOG
in b2 command line. This should save you from having to modify the vanilla

Boost list run by bdawes at, gregod at, cpdaniel at, john at