On Sat, Oct 27, 2018 at 4:53 PM Steven Watanabe via Boost < boost@lists.boost.org> wrote:
AMDG
Using develop from this morning (tried various combinations of these
On 10/27/2018 11:07 AM, James E. King III via Boost wrote: three
options...):
boost@d48d3305d4b4:/boost/status$ ../b2 toolset=clang variant=release cxxstd=03 ... /boost/tools/build/src/build/feature.jam:491: in validate-value-string from module feature error: "shared:" is not a known value of feature <link> error: legal values: "shared" "static"
This looks like a conditional gone wrong, but I can't reproduce the problem.
Steps to track this down: - run the b2 debugger: b2 -dconsole - set a breakpoint at errors.error: break errors.error - Start the program: run toolset=clang variant=release cxxstd=03 - Find out which target is the source of the error: backtrace print [ object(typed-target)@47912.location ] (substitute the actual object name that appears on the stack)
<snip> /boost/tools/build/src/build/targets.jam:1313: in class@basic-target.generate from module object(typed-target)@47912 /boost/tools/build/src/build/targets.jam:812: in generate-really from module object(main-target)@70272 <snip>
In Christ, Steven Watanabe
I find it both amazing and scary that Boost.Build has an interactive debugger. In any case, if you use the docker container in the pull request in boostorg/boost you would probably be able to reproduce this because it pulls in dependencies of many of the repositories. For example the docker container is using Python 3.6. (might I suggest aliasing "bt" for "backtrace" in the Boost.Build debugger?) ``` (b2db) backtrace #0 in errors.error ( "shared:" is not a known value of feature <link> : legal values: "shared" "static" ) at /boost/tools/build/src/kernel/errors.jam:149 #1 in validate-value-string ( <link> shared: ) at /boost/tools/build/src/build/feature.jam:491 #2 in expand-subfeatures-aux ( <link> : shared: : ) at /boost/tools/build/src/build/feature.jam:365 #3 in expand-subfeatures ( <link>shared: <python.interpreter>python3.6 <deduced-address-model>64 <deduced-architecture>x86 ) at /boost/tools/build/src/build/feature.jam:422 #4 in feature.expand ( <link>shared: <python.interpreter>python3.6 <deduced-address-model>64 <deduced-architecture>x86 ) at /boost/tools/build/src/build/feature.jam:871 #5 in evaluate-requirements ( object(property-set)@260675 : object(property-set)@73308 ) at /boost/tools/build/src/build/targets.jam:1103 #6 in common-properties2 ( object(property-set)@73308 object(property-set)@260675 ) at /boost/tools/build/src/build/targets.jam:1121 #7 in targets.common-properties ( object(property-set)@73308 object(property-set)@47911 ) at /boost/tools/build/src/build/targets.jam:1017 #8 in class@basic-target.generate ( object(property-set)@73308 ) at /boost/tools/build/src/build/targets.jam:1313 #9 in generate-really ( object(property-set)@73308 ) at /boost/tools/build/src/build/targets.jam:812 #10 in class@main-target.generate ( object(property-set)@73156 ) at /boost/tools/build/src/build/targets.jam:784 #11 in class@project-target.generate ( object(property-set)@73156 ) at /boost/tools/build/src/build/targets.jam:273 #12 in class@project-target.generate ( object(property-set)@73156 ) at /boost/tools/build/src/build/targets.jam:273 #13 in load ( build-system : : /boost/tools/build/src /usr/share/boost-build /boost/tools/build/src/kernel /boost/tools/build/src/util /boost/tools/build/src/build /boost/tools/build/src/tools /boost/tools/build/src/contrib /boost/tools/build/src ) at /boost/tools/build/src/build-system.jam:797 #14 in import ( build-system ) at /boost/tools/build/src/kernel/modules.jam:295 #15 in boost-build ( tools/build/src ) at /boost/tools/build/src/kernel/bootstrap.jam:139 #16 in module scope at /boost/boost-build.jam:17 ``` so: ``` (b2db) print [ object(typed-target)@73156.location ] (builtin):1: in errors.error ERROR: rule "object(typed-target)@73156.location" unknown in module "errors". /boost/tools/build/src/build/feature.jam:491: in validate-value-string /boost/tools/build/src/build/feature.jam:365: in expand-subfeatures-aux /boost/tools/build/src/build/feature.jam:422: in expand-subfeatures /boost/tools/build/src/build/feature.jam:871: in feature.expand /boost/tools/build/src/build/targets.jam:1103: in evaluate-requirements /boost/tools/build/src/build/targets.jam:1121: in common-properties2 /boost/tools/build/src/build/targets.jam:1017: in targets.common-properties /boost/tools/build/src/build/targets.jam:1313: in class@basic-target.generate /boost/tools/build/src/build/targets.jam:812: in generate-really /boost/tools/build/src/build/targets.jam:784: in class@main-target.generate /boost/tools/build/src/build/targets.jam:273: in class@project-target.generate /boost/tools/build/src/build/targets.jam:273: in class@project-target.generate /boost/tools/build/src/build-system.jam:797: in load /boost/tools/build/src/kernel/modules.jam:295: in import /boost/tools/build/src/kernel/bootstrap.jam:139: in boost-build /boost/boost-build.jam:17: in module scope <<< many blank lines >>> ``` The user.config.jam placed into the docker container has: ``` # # Copyright (C) 2018 James E. King III # # Use, modification, and distribution are subject to the # Boost Software License, Version 1.0. (See accompanying file # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) # # Help bjam find clang++-6.0 for "clang" # (see: https://github.com/boostorg/build/issues/306) using clang : 6.0 : /usr/bin/clang++-6.0 ; using gcc : 7.3 : /usr/bin/g++-7 ; # For building documentation # This is what setup_boostbook.sh would do using boostbook : /opt/docbook-xsl-1.75.2 : /opt/docbook-dtd-4.2 ; using xsltproc : /usr/bin/xsltproc ; using doxygen : /usr/bin/doxygen ; using fop : /opt/fop-0.94/fop : : /usr/bin/java ; # Python 3.6 dev kit is installed using python : 3.6 ; ``` Complete build output: ``` boost@d48d3305d4b4:/boost/status$ ../b2 toolset=clang variant=release cxxstd=03 ../libs/contract/test/Jamfile.v2:417: Unescaped special character in argument <define>BOOST_CONTRACT_ON_MISSING_CHECK_DECL="{ throw err(); }" ../libs/multiprecision/test/Jamfile.v2:58: Unescaped special character in argument <toolset>msvc:<cxxflags>/fp:precise ../libs/statechart/test/Jamfile.v2:40: Unescaped special character in argument <link>shared: ../libs/statechart/test/Jamfile.v2:105: Unescaped special character in argument <link>shared:$(dll) Performing configuration checks - default address-model : 64-bit (cached) - default architecture : x86 (cached) - symlinks supported : yes (cached) - BOOST_COMP_GNUC >= 4.3.0 : no - has_icu builds : no - lockfree boost::atomic_flag : yes - Boost.Config Feature Check: cxx11_constexpr : no - Boost.Config Feature Check: cxx11_decltype : no - Boost.Config Feature Check: cxx11_hdr_tuple : no - Boost.Config Feature Check: cxx11_template_aliases : no - Boost.Config Feature Check: cxx11_variadic_templates : no - OpenCL : no - C++11 mutex : no - Boost.Config Feature Check: cxx11_auto_declarations : no - Boost.Config Feature Check: cxx11_defaulted_functions : no - Boost.Config Feature Check: cxx11_final : no - Boost.Config Feature Check: cxx11_hdr_mutex : no - Boost.Config Feature Check: cxx11_lambdas : no - Boost.Config Feature Check: cxx11_noexcept : no - Boost.Config Feature Check: cxx11_nullptr : no - Boost.Config Feature Check: cxx11_rvalue_references : no - Boost.Config Feature Check: cxx11_thread_local : no warning: non-free usage requirements <threading>multi ignored warning: in main-target mpi at /home/boost/user-config.jam:23 warning: non-free usage requirements <threading>multi ignored warning: in main-target boost_mpi at ../libs/mpi/build/Jamfile.v2:119 - iconv (libc) : yes - icu : no - icu (lib64) : no - native-atomic-int32-supported : yes - native-syslog-supported : yes - pthread-supports-robust-mutexes : yes - compiler-supports-ssse3 : yes - compiler-supports-avx2 : yes - Boost.Config Feature Check: cxx14_constexpr : no - BOOST_COMP_GNUC >= 4.7.4 : no - Boost.Config Feature Check: cxx14_decltype_auto : no - Boost.Config Feature Check: cxx14_generic_lambdas : no - Boost.Config Feature Check: cxx14_return_type_deduction : no - Boost.Config Feature Check: cxx11_constexpr : no - Boost.Config Feature Check: cxx11_decltype : no - Boost.Config Feature Check: cxx11_hdr_tuple : no - Boost.Config Feature Check: cxx11_template_aliases : no - Boost.Config Feature Check: cxx11_variadic_templates : no - OpenCL : no - has_atomic_lib builds : yes - has_pthread_lib builds : yes - has_rt_lib builds : yes - Clang implicit fallthrough : yes - Boost.Config Feature Check: int128 : yes - Boost.Config Feature Check: cxx11_user_defined_literals : no - Boost.Config Feature Check: cxx11_hdr_thread : no - Boost.Config Feature Check: cxx11_variadic_macros : yes - Boost.Config Feature Check: cxx11_hdr_array : no - libjpeg : yes - zlib : yes - libpng : yes - libtiff : yes - Boost.Config Feature Check: unistd_h : yes - Boost.Config Feature Check: unistd_h : yes - Checking for gmpxx.h : yes - bzip2 : yes - lzma : yes - zstd : yes - GCC libquadmath and __float128 support : no - Boost.Config Feature Check: cxx11_smart_ptr : no - Boost.Config Feature Check: cxx11_unified_initialization_syntax : no - Boost.Config Feature Check: sfinae_expr : yes - Boost.Config Feature Check: cxx11_range_based_for : no - libfftw3 : no - __float128 : no - gcc visibility : yes - long double support : yes - Intel _Quad datatype support : no - has_ntl_rr builds : no - has_mpfr_class builds : no - has_mpreal builds : no - has_e_float builds : no - Boost.Config Feature Check: cxx11_hdr_atomic : no - Boost.Config Feature Check: cxx11_hdr_future : no - Boost.Config Feature Check: cxx11_hdr_chrono : no - Boost.Config Feature Check: cxx11_hdr_random : no - Boost.Config Feature Check: cxx11_allocator : no - 128-bit floatmax_t : no - Boost.Config Feature Check: cxx11_numeric_limits : no - Boost.Config Feature Check: cxx11_explicit_conversion_operators : no - Boost.Config Feature Check: cxx11_function_template_default_args : no - BOOST_MULTI_INDEX_KEY_SUPPORTED defined : no - has_gmp builds : yes - has_mpfr builds : no - has_tommath builds : no - has_mpfi builds : no - has_float128 builds : no - has_intel_quad builds : no - has_mpc builds : no - has_eigen builds : no - has_gmp builds : yes - has_mpfr builds : no error: No best alternative for ../libs/parameter/test/compose_fail_0 next alternative: required properties: (empty) matched next alternative: required properties: (empty) matched error: No best alternative for ../libs/parameter/test/compose_fail_0 next alternative: required properties: (empty) matched next alternative: required properties: (empty) matched error: No best alternative for ../libs/parameter/test/compose_fail_0 next alternative: required properties: (empty) matched next alternative: required properties: (empty) matched error: No best alternative for ../libs/parameter/test/compose_fail_0 next alternative: required properties: (empty) matched next alternative: required properties: (empty) matched - Boost.Config Feature Check: cxx11_hdr_unordered_map : no - Boost.Config Feature Check: cxx11_hdr_unordered_set : no - Boost.Config Feature Check: cxx11_noexcept : no WARNING: Unable to construct ../libs/predef/test/info_as_objcpp of type RUN with these properties: <abi>sysv <address-model>64 <architecture>x86 <asynch-exceptions>off <bc_hdr>lib <bc_no>all_yes <binary-format>elf <context-impl>fcontext <cxxstd-dialect>iso <cxxstd>03 <debug-symbols>off <deduced-address-model>64 <deduced-architecture>x86 <define>BOOST_ALL_NO_LIB=1 <define>NDEBUG <dependency>object(file-target)@88019 <doxygen.doxproc.index>no <doxygen.processor>xsltproc <exception-handling>on <extern-c-nothrow>off <format>html <hardcode-dll-paths>true <host-os>linux <implicit-dependency>object(notfile-target)@76261 <include>.. <include>/boost/libs/predef/include <inlining>full <install-dependencies>off <link>shared <local-visibility>hidden <location-prefix>info_as_objcpp.test <optimization>speed <os>LINUX <pch>on <preserve-test-targets>on <profiling>off <python-debugging>off <python.interpreter>python2.7 <python>2.7 <relevant>define:<relevant>toolset <relevant>link:<relevant>toolset <relevant>python.interpreter:<relevant>python <relevant>python.interpreter:<relevant>target-os <relevant>toolset <rtti>on <runtime-debugging>off <runtime-link>shared <stdlib>native <strip>off <suppress-import-lib>false <symlink-location>project-relative <tag>@Jamfile</boost>%Jamfile</boost>.tag <target-os>linux <test-info>always_show_run_output <testing.execute>on <threadapi>pthread <threading>single <toolset-clang:platform>linux <toolset-clang:version>6.0 <toolset>clang <user-interface>console <variant>release <vectorize>off <visibility>hidden <warnings-as-errors>off <warnings>on <xsl:param>boost.defaults=Boost WARNING: Considered these as possible generators: WARNING: testing.expect-success with source types { RUN_OUTPUT } and requirements { } WARNING: Unable to construct ../libs/predef/test/info_as_objc of type RUN with these properties: <abi>sysv <address-model>64 <architecture>x86 <asynch-exceptions>off <bc_hdr>lib <bc_no>all_yes <binary-format>elf <context-impl>fcontext <cxxstd-dialect>iso <cxxstd>03 <debug-symbols>off <deduced-address-model>64 <deduced-architecture>x86 <define>BOOST_ALL_NO_LIB=1 <define>NDEBUG <dependency>object(file-target)@88019 <doxygen.doxproc.index>no <doxygen.processor>xsltproc <exception-handling>on <extern-c-nothrow>off <format>html <hardcode-dll-paths>true <host-os>linux <implicit-dependency>object(notfile-target)@76261 <include>.. <include>/boost/libs/predef/include <inlining>full <install-dependencies>off <link>shared <local-visibility>hidden <location-prefix>info_as_objc.test <optimization>speed <os>LINUX <pch>on <preserve-test-targets>on <profiling>off <python-debugging>off <python.interpreter>python2.7 <python>2.7 <relevant>define:<relevant>toolset <relevant>link:<relevant>toolset <relevant>python.interpreter:<relevant>python <relevant>python.interpreter:<relevant>target-os <relevant>toolset <rtti>on <runtime-debugging>off <runtime-link>shared <stdlib>native <strip>off <suppress-import-lib>false <symlink-location>project-relative <tag>@Jamfile</boost>%Jamfile</boost>.tag <target-os>linux <test-info>always_show_run_output <testing.execute>on <threadapi>pthread <threading>single <toolset-clang:platform>linux <toolset-clang:version>6.0 <toolset>clang <user-interface>console <variant>release <vectorize>off <visibility>hidden <warnings-as-errors>off <warnings>on <xsl:param>boost.defaults=Boost WARNING: Considered these as possible generators: WARNING: testing.expect-success with source types { RUN_OUTPUT } and requirements { } - BOOST_OS_MACOS : no - BOOST_COMP_CLANG > 0.0.0 : yes - BOOST_OS_LINUX == 0 : no WARNING: Unable to construct ../libs/predef/test/info_as_objcpp of type RUN with these properties: <abi>sysv <address-model>64 <architecture>x86 <asynch-exceptions>off <bc_hdr>lib <bc_no>all_yes <binary-format>elf <context-impl>fcontext <cxxstd-dialect>iso <cxxstd>03 <debug-symbols>off <deduced-address-model>64 <deduced-architecture>x86 <define>BOOST_ALL_NO_LIB=1 <define>NDEBUG <dependency>object(file-target)@88019 <doxygen.doxproc.index>no <doxygen.processor>xsltproc <exception-handling>on <extern-c-nothrow>off <format>html <hardcode-dll-paths>true <host-os>linux <implicit-dependency>object(notfile-target)@76261 <include>.. <include>/boost/libs/predef/include <inlining>full <install-dependencies>off <link>shared <local-visibility>hidden <location-prefix>info_as_objcpp.test <optimization>speed <os>LINUX <pch>on <preserve-test-targets>on <profiling>off <python-debugging>off <python.interpreter>python2.7 <python>2.7 <relevant>define:<relevant>toolset <relevant>link:<relevant>toolset <relevant>python.interpreter:<relevant>python <relevant>python.interpreter:<relevant>target-os <relevant>toolset <rtti>on <runtime-debugging>off <runtime-link>shared <stdlib>native <strip>off <suppress-import-lib>false <symlink-location>project-relative <tag>@Jamfile</boost>%Jamfile</boost>.tag <target-os>linux <test-info>always_show_run_output <testing.execute>on <threadapi>pthread <threading>single <toolset-clang:platform>linux <toolset-clang:version>6.0 <toolset>clang <user-interface>console <variant>release <vectorize>off <visibility>hidden <warnings-as-errors>off <warnings>on <xsl:param>boost.defaults=Boost WARNING: Considered these as possible generators: WARNING: testing.expect-success with source types { RUN_OUTPUT } and requirements { } WARNING: Unable to construct ../libs/predef/test/info_as_objc of type RUN with these properties: <abi>sysv <address-model>64 <architecture>x86 <asynch-exceptions>off <bc_hdr>lib <bc_no>all_yes <binary-format>elf <context-impl>fcontext <cxxstd-dialect>iso <cxxstd>03 <debug-symbols>off <deduced-address-model>64 <deduced-architecture>x86 <define>BOOST_ALL_NO_LIB=1 <define>NDEBUG <dependency>object(file-target)@88019 <doxygen.doxproc.index>no <doxygen.processor>xsltproc <exception-handling>on <extern-c-nothrow>off <format>html <hardcode-dll-paths>true <host-os>linux <implicit-dependency>object(notfile-target)@76261 <include>.. <include>/boost/libs/predef/include <inlining>full <install-dependencies>off <link>shared <local-visibility>hidden <location-prefix>info_as_objc.test <optimization>speed <os>LINUX <pch>on <preserve-test-targets>on <profiling>off <python-debugging>off <python.interpreter>python2.7 <python>2.7 <relevant>define:<relevant>toolset <relevant>link:<relevant>toolset <relevant>python.interpreter:<relevant>python <relevant>python.interpreter:<relevant>target-os <relevant>toolset <rtti>on <runtime-debugging>off <runtime-link>shared <stdlib>native <strip>off <suppress-import-lib>false <symlink-location>project-relative <tag>@Jamfile</boost>%Jamfile</boost>.tag <target-os>linux <test-info>always_show_run_output <testing.execute>on <threadapi>pthread <threading>single <toolset-clang:platform>linux <toolset-clang:version>6.0 <toolset>clang <user-interface>console <variant>release <vectorize>off <visibility>hidden <warnings-as-errors>off <warnings>on <xsl:param>boost.defaults=Boost WARNING: Considered these as possible generators: WARNING: testing.expect-success with source types { RUN_OUTPUT } and requirements { } - zlib : yes (cached) - bzip2 : yes (cached) - lzma : yes (cached) - zstd : yes (cached) - zlib : yes - bzip2 : yes - lzma : yes - zstd : yes - Boost.Config Feature Check: auto_ptr : yes - Boost.Config Feature Check: cxx14_constexpr : no - Boost.Config Feature Check: cxx11_lambdas : no - Boost.Config Feature Check: std_wstreambuf : yes - Boost.Config Feature Check: cxx11_hdr_forward_list : no - Boost.Config Feature Check: hash : yes - Boost.Config Feature Check: slist : yes - Boost.Config Feature Check: cxx14_decltype_auto : no - Boost.Config Feature Check: cxx14_generic_lambdas : no - Boost.Config Feature Check: cxx14_return_type_deduction : no - libbacktrace builds : no - libbacktrace builds : no - addr2line builds : yes - addr2line builds : yes - WinDbg builds : no - WinDbg builds : no - WinDbgCached builds : no - WinDbgCached builds : no /boost/tools/build/src/build/feature.jam:491: in validate-value-string from module feature error: "shared:" is not a known value of feature <link> error: legal values: "shared" "static" /boost/tools/build/src/build/feature.jam:365: in expand-subfeatures-aux from module feature /boost/tools/build/src/build/feature.jam:422: in expand-subfeatures from module feature /boost/tools/build/src/build/feature.jam:871: in feature.expand from module feature /boost/tools/build/src/build/targets.jam:1103: in evaluate-requirements from module targets /boost/tools/build/src/build/targets.jam:1121: in common-properties2 from module targets /boost/tools/build/src/build/targets.jam:1017: in targets.common-properties from module targets /boost/tools/build/src/build/targets.jam:1313: in class@basic-target.generate from module object(typed-target)@48543 /boost/tools/build/src/build/targets.jam:812: in generate-really from module object(main-target)@71025 /boost/tools/build/src/build/targets.jam:784: in class@main-target.generate from module object(main-target)@71025 /boost/tools/build/src/build/targets.jam:273: in class@project-target.generate from module object(project-target)@47938 /boost/tools/build/src/build/targets.jam:273: in class@project-target.generate from module object(project-target)@4593 /boost/tools/build/src/build-system.jam:797: in load from module build-system /boost/tools/build/src/kernel/modules.jam:295: in import from module modules /boost/tools/build/src/kernel/bootstrap.jam:139: in boost-build from module /boost/boost-build.jam:17: in module scope from module ``` Thanks, - Jim