Skip to content

C++ component build failure: file_ops_component not copying source files #21

@avrabe

Description

@avrabe

Problem

C++ components fail to build with clang error:

clang: error: no such file or directory: 'bazel-out/.../calculator_c_component_cppwork/calculator_c.c'
clang: error: no input files

Root Cause

The cpp_component rule uses setup_cpp_workspace_action() which calls the file operations component to copy source files to a _cppwork directory. However, the file operations component is not successfully copying the source files to the expected location.

Build Process Flow

  1. cpp_component rule processes //examples/cpp_component/calculator:calculator_c_component
  2. Calls setup_cpp_workspace_action() to prepare workspace
  3. Should copy src/calculator_c.c to calculator_c_component_cppwork/calculator_c.c
  4. File copy fails or doesn't happen
  5. clang tries to compile missing source file and fails

Evidence

  • Source file exists: examples/cpp_component/calculator/src/calculator_c.c
  • BUILD file correctly references source: srcs = ["src/calculator_c.c"]
  • Expected location missing: calculator_c_component_cppwork/calculator_c.c

Impact

  • All C++ component builds fail
  • Blocks CI with exclusions like -//examples/cpp_component/...
  • Affects C++ test targets that depend on C++ components

Files Involved

  • cpp/defs.bzl - cpp_component rule implementation
  • tools/bazel_helpers/file_ops_actions.bzl - setup_cpp_workspace_action()
  • tools/file_operations_component/* - File operations WebAssembly component

Investigation Needed

  1. Check if file_ops_component tool is working correctly
  2. Verify setup_cpp_workspace_action() parameter passing
  3. Test file operations component in isolation
  4. Check if WebAssembly component execution is failing silently

Workaround

Temporarily exclude C++ components from CI with -//examples/cpp_component/... until root cause is fixed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions