Skip to content

check-target-builds breaks module imports #454

@Lastique

Description

@Lastique

Make sure you completed the following tasks

Environment and version details

  • Operating System+version: Kubuntu 24.04
  • Compiler+version: GCC 13.3
  • Shell: bash
  • B2 Version: B2 5.3.2 (OS=LINUX, jobs=16)

Brief problem description

When a check-target-builds check is added to the library tests' requirements, it breaks module imports in the library's Jamfile.

Steps to reproduce the issue

  1. Unpack the attached reproducer in $BOOST_ROOT/libs. This is a reduced Boost.Atomic project.

my_atomic.tar.gz

  1. cd libs/my_atomic/test and run b2 -j8 release.

Actual behavior summary

Building the tests fails with the following output:

Performing configuration checks

    - default address-model    : 64-bit (cached) [1]
    - default architecture     : x86 (cached) [1]
    - symlinks supported       : yes (cached)
    - cxx11_constexpr          : yes (cached) [2]
    - cxx11_noexcept           : yes (cached) [2]
    - cxx11_nullptr            : yes (cached) [2]
    - cxx11_lambdas            : yes (cached) [2]
    - cxx11_static_assert      : yes (cached) [2]
    - cxx11_defaulted_functions : yes (cached) [2]
    - cxx11_deleted_functions  : yes (cached) [2]
    - cxx11_hdr_ratio          : yes (cached) [2]
    - cxx11_hdr_chrono         : yes (cached) [2]
    - cxx11_hdr_mutex          : yes (cached) [2]
    - cxx11_hdr_condition_variable : yes (cached) [2]
    - cxx11_hdr_thread         : yes (cached) [2]
[errno 2] atomic-arch-config.jam (No such file or directory)
    - has sufficient <type_traits> : yes (cached) [2]
    - cxx11_constexpr          : yes (cached) [3]
    - cxx11_noexcept           : yes (cached) [3]
    - cxx11_nullptr            : yes (cached) [3]
    - cxx11_lambdas            : yes (cached) [3]
    - cxx11_static_assert      : yes (cached) [3]
    - cxx11_defaulted_functions : yes (cached) [3]
    - cxx11_deleted_functions  : yes (cached) [3]
    - cxx11_hdr_ratio          : yes (cached) [3]
    - cxx11_hdr_chrono         : yes (cached) [3]
    - cxx11_hdr_mutex          : yes (cached) [3]
    - cxx11_hdr_condition_variable : yes (cached) [3]
    - cxx11_hdr_thread         : yes (cached) [3]
    - has sufficient <type_traits> : yes (cached) [3]
/home/user/src/boost/libs/my_atomic/build/Jamfile.v2:68: in Jamfile</home/user/src/boost/libs/my_atomic/build>.select-arch-specific-sources
ERROR: rule "atomic-arch-config.deduce-architecture" unknown in module "Jamfile</home/user/src/boost/libs/my_atomic/build>".
(builtin): in modules.call-in
/home/user/src/boost/tools/build/src/util/indirect.jam:105: in indirect.call
/home/user/src/boost/tools/build/src/build/property.jam:144: in property.evaluate-conditionals-in-context
/home/user/src/boost/tools/build/src/build/targets.jam:1108: in evaluate-requirements
/home/user/src/boost/tools/build/src/build/targets.jam:1142: in common-properties2
/home/user/src/boost/tools/build/src/build/targets.jam:1038: in targets.common-properties
/home/user/src/boost/tools/build/src/build/targets.jam:1328: in [email protected]
/home/user/src/boost/tools/build/src/build/targets.jam:822: in generate-really
/home/user/src/boost/tools/build/src/build/targets.jam:804: in [email protected]
/home/user/src/boost/tools/build/src/build/targets.jam:938: in targets.generate-from-reference
/home/user/src/boost/tools/build/src/build/targets.jam:1292: in generate-dependencies
/home/user/src/boost/tools/build/src/build/targets.jam:1365: in [email protected]
/home/user/src/boost/tools/build/src/build/targets.jam:822: in generate-really
/home/user/src/boost/tools/build/src/build/targets.jam:804: in [email protected]
/home/user/src/boost/tools/build/src/build/targets.jam:938: in targets.generate-from-reference
/home/user/src/boost/tools/build/src/build/targets.jam:1292: in generate-dependencies
/home/user/src/boost/tools/build/src/build/targets.jam:1362: in [email protected]
/home/user/src/boost/tools/build/src/build/targets.jam:822: in generate-really
/home/user/src/boost/tools/build/src/build/targets.jam:804: in [email protected]
/home/user/src/boost/tools/build/src/build/targets.jam:271: in [email protected]
/home/user/src/boost/tools/build/src/build-system.jam:832: in module scope

You can clearly see that libs/my_atomic/build/atomic-arch-config.jam exists. Furthermore, if you comment line 28 in libs/my_atomic/test/Jamfile.v2, which contains the check-target-builds check, the compilation succeeds.

Expected behavior summary

check-target-builds should not break module imports.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

Status

🔖 Ready

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions