Unusual "bug" in Boost Build with gcc usage requirements
Edward Diener via Boost-build <[email protected]> Wed, 31 Jul 2019 14:12:57 -0400
| Newsgroups | gmane.comp.lib.boost.build |
|---|---|
| Message-ID | <[email protected]> |
Given a user-config.jam of: import toolset ; import feature ; using gcc : 8.3 : "C:/Utilities/mingw-w64/i686-8.3.0/bin/g++" ; using gcc : 8.1 : "C:/Utilities/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/g++" ; # using gcc : 8.3 : "C:/Utilities/mingw-w64/i686-8.3.0/bin/g++" : : <address-model>32 ; # using gcc : 8.1 : "C:/Utilities/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/g++" : : <address-model>32 ; feature.subfeature toolset gcc : tsestd : c03 c11 c14 c17 : optional composite propagated ; feature.compose <toolset-gcc:tsestd>c03 : <cxxflags>-std=c++03 ; feature.compose <toolset-gcc:tsestd>c11 : <cxxflags>-std=c++11 ; feature.compose <toolset-gcc:tsestd>c14 : <cxxflags>-std=c++14 ; feature.compose <toolset-gcc:tsestd>c17 : <cxxflags>-std=c++1z ; running: b2 toolset=gcc-8.3 in any library's test directory will run "successfully", ie. no Boost Build error messages. Now comment out the first two 'using gcc' lines and remove the comment from the next two 'using gcc' lines, so that the usage requirement for <address-model>32 is now a part of the toolset definitions. Running the same b2 command from any library's test directory will produce: E:/Programming/VersionControl/modular-boost/tools/build/src/build\feature.jam:787: in expand-composites from module feature error: explicitly-specified values of non-free feature <toolset-gcc:version> conflict error: existing values: 8.1 8.3 error: value from expanding <toolset-gcc:version>8.3 : 8.3 E:/Programming/VersionControl/modular-boost/tools/build/src/build\feature.jam:872: in feature.expand from module feature E:/Programming/VersionControl/modular-boost/tools/build/src/build\targets.jam:1103: in evaluate-requirements from module targets E:/Programming/VersionControl/modular-boost/tools/build/src/build\targets.jam:1121: in common-properties2 from module targets E:/Programming/VersionControl/modular-boost/tools/build/src/build\targets.jam:1017: in targets.common-properties from module targets E:/Programming/VersionControl/modular-boost/tools/build/src/build\targets.jam:1313: in [email protected] from module object(alias-target-class)@6339 E:/Programming/VersionControl/modular-boost/tools/build/src/build\targets.jam:812: in generate-really from module object(main-target)@6615 E:/Programming/VersionControl/modular-boost/tools/build/src/build\targets.jam:784: in [email protected] from module object(main-target)@6615 E:/Programming/VersionControl/modular-boost/tools/build/src/build\targets.jam:273: in [email protected] from module object(project-target)@6233 E:/Programming/VersionControl/modular-boost/tools/build/src\build-system.jam:797: in load from module build-system E:\Programming\VersionControl\modular-boost\tools\build\src/kernel\modules.jam:295: in import from module modules E:\Programming\VersionControl\modular-boost\tools\build\src/kernel/bootstrap.jam:139: in boost-build from module E:\Programming\VersionControl\modular-boost\boost-build.jam:17: in module scope from module This is with the latest Boost Build 'develop' branch. It seems as if the gcc usage requirements does not work with feature composition. I do not know if this is a gcc.jam problem or a more general Boost Build problem, but any help solving this or finding a workaround will be appreciated. I can of course add this as a Github issue for Boost Build, but there seems to be so little Boost Build activity recently at Github that I wanted to bring it up here first. _______________________________________________ Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build