Opened 8 years ago

Last modified 8 years ago

#4735 new Patches

MinGW version 'mingw-x.y.z' requested but 'g++-mingw-x.y.z' not found and version 'x.y.z' of default 'g++' does not match

Reported by: Jim Bell <jim@…> Owned by: Vladimir Prus
Milestone: Boost 1.46.0 Component: build
Version: Boost Development Trunk Severity: Problem
Keywords: mingw version Cc:

Description

MinGW's version may be prefixed with 'g++-', and failing to match this variation causes many tests to fail.

.../trunk/boost/tools/build/v2/tools\gcc.jam:106: in gcc.init from module gcc
error: toolset gcc initialization:
error: version 'mingw-4.3.3' requested but 'g++-mingw-4.3.3' not found
   and version '4.3.3' of default 'g++' does not match

Attachments (1)

build-v2-build-system-jam.patch (642 bytes) - added by Jim Bell <jim@…> 8 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 8 years ago by Jim Bell <jim@…>

mingw g++ -dumpversion returns '4.3.3', but the version string passed into the rule has the 'mingw-' prefix attached, to it fails to match '4.3.3'.

g++ -dumpmachine returns 'mingw32'

comment:2 Changed 8 years ago by Vladimir Prus

Jim, I don't understand what's going on here. This error message should be only emitted if you have

using gcc : mingw-4.3.3 ;

in user-config.jam, without any command. Is that the case? If so, why are you specifying a version at all?

comment:3 Changed 8 years ago by Jim Bell <jim@…>

It's acting as though that were the case, but my ./tools_bb/user-config.jam has only this un-commented:

using gcc ;

It must be inserting the mingw somewhere, but I couldn't figure out where. Could we patch my test to try to trace it?

comment:4 Changed 8 years ago by Jim Bell <jim@…>

Summary: MinGW versionMinGW version 'mingw-x.u.z' requested but 'g++-mingw-x.y.z' not found and version 'x.y.z' of default 'g++' does not match

Notice, too, the command-line here:


"['bjam', '-sBOOST_BUILD_PATH="F:\\tmp\\boost-MinGW-32\\trunk\\boost\\tools\\build\\v2\\test/.."', '-d0', '--quiet', 'toolset=gcc-mingw-4.3.3', '--test-config="F:\\tmp\\boost-MinGW-32\\trunk\\boost\\tools\\build\\v2\\test\\test-config.jam"', '--ignore-toolset-requirements']" returned 1


It's passing in gcc-mingw-4.3.3 which doesn't exactly match anything on the error message on line 106.

I'm submitting a patch for build-system.jam that filters out the '-mingw' explicitly. You might not like it, but it does get past line 106.

Changed 8 years ago by Jim Bell <jim@…>

comment:5 Changed 8 years ago by Jim Bell <jim@…>

Summary: MinGW version 'mingw-x.u.z' requested but 'g++-mingw-x.y.z' not found and version 'x.y.z' of default 'g++' does not matchMinGW version 'mingw-x.y.z' requested but 'g++-mingw-x.y.z' not found and version 'x.y.z' of default 'g++' does not match

comment:6 Changed 8 years ago by Jim Bell <jim@…>

Type: BugsPatches

I'm more and more convinced that this patch is the real fix.

One mystery solved: the regression test passes the toolset into test_all.py on the command-line, as such:


"C:\Software\Open\Python\python.exe" test_all.py --default-bjam --xml gcc-mingw-4.4.0 1>F:\boost\MinGW-32\trunk\results\boost-build-gcc-mingw-4.4.0\test_log.xml


Called without a toolset, it defaults to just "gcc" and works fine. This solves http://lists.boost.org/Archives/boost/2010/12/173676.php.

comment:7 Changed 8 years ago by Jim Bell <jim@…>

Version: Boost 1.44.0Boost 1.46.0

comment:8 Changed 8 years ago by Jim Bell <jim@…>

Milestone: To Be DeterminedBoost 1.46.0
Version: Boost 1.46.0Boost Development Trunk
Note: See TracTickets for help on using tickets.