Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"bazel build //example/..." fails with error: "could not build module 'std_config'" #15

Open
SlausB opened this issue Mar 20, 2022 · 2 comments

Comments

@SlausB
Copy link

SlausB commented Mar 20, 2022

Hello!
When I do:

git clone https://github.com/rnburn/rules_cc_module
cd rules_cc_module
./ci/run_docker.sh
bazel build //example/...

build fails with error:

root@2add72a9d097:/src# bazel build //example/...
2022/03/20 07:20:11 Downloading https://releases.bazel.build/5.0.0/release/bazel-5.0.0-linux-x86_64...
Extracting Bazel installation...
Starting local Bazel server and connecting to it...
DEBUG: Rule 'bazel_skylib' indicated that a canonical reproducible form can be obtained by modifying arguments shallow_since = "1611945497 -0500"
DEBUG: Repository bazel_skylib instantiated at:
  /src/WORKSPACE:5:15: in <toplevel>
Repository rule git_repository defined at:
  /root/.cache/bazel/_bazel_root/f8087e59fd95af1ae29e8fcb7ff1a3dc/external/bazel_tools/tools/build_defs/repo/git.bzl:199:33: in <toplevel>
INFO: Analyzed 24 targets (44 packages loaded, 463 targets configured).
INFO: Found 24 targets...
ERROR: /src/example/multi_src_module/BUILD:79:10: Action example/multi_src_module/cc_module_interface-std.o failed: (Exit 1): driver failed: error executing command bazel-out/k8-opt-exec-2B5CBBC6/bin/util/driver/driver --object_out bazel-out/k8-fastbuild/bin/example/multi_src_module/cc_module_interface-std.o --module_map ... (remaining 32 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox
error: unable to open output file '/root/.cache/clang/ModuleCache/1VEKDVQVH77C4/std_config-1LRZ8JTHCNMTQ.pcm': 'No such file or directory'
While building module 'std':
In file included from <module-includes>:2:
/usr/lib/llvm-15/bin/../include/c++/v1/ctype.h:32:10: fatal error: could not build module 'std_config'
#include <__config>
 ~~~~~~~~^
2 errors generated.
Traceback (most recent call last):
  File "/root/.cache/bazel/_bazel_root/f8087e59fd95af1ae29e8fcb7ff1a3dc/sandbox/linux-sandbox/26/execroot/com_github_rnburn_bazel_cpp20_modules/bazel-out/k8-opt-exec-2B5CBBC6/bin/util/driver/driver.runfiles/com_github_rnburn_bazel_cpp20_modules/util/driver/driver.py", line 30, in <module>
    main()
  File "/root/.cache/bazel/_bazel_root/f8087e59fd95af1ae29e8fcb7ff1a3dc/sandbox/linux-sandbox/26/execroot/com_github_rnburn_bazel_cpp20_modules/bazel-out/k8-opt-exec-2B5CBBC6/bin/util/driver/driver.runfiles/com_github_rnburn_bazel_cpp20_modules/util/driver/driver.py", line 24, in main
    invoke_clang(driver_args, compiler, compiler_args)
  File "/root/.cache/bazel/_bazel_root/f8087e59fd95af1ae29e8fcb7ff1a3dc/sandbox/linux-sandbox/26/execroot/com_github_rnburn_bazel_cpp20_modules/bazel-out/k8-opt-exec-2B5CBBC6/bin/util/driver/driver.runfiles/com_github_rnburn_bazel_cpp20_modules/util/driver/clang.py", line 104, in invoke_clang
    make_system_module(driver_args, compiler, interface_args)
  File "/root/.cache/bazel/_bazel_root/f8087e59fd95af1ae29e8fcb7ff1a3dc/sandbox/linux-sandbox/26/execroot/com_github_rnburn_bazel_cpp20_modules/bazel-out/k8-opt-exec-2B5CBBC6/bin/util/driver/driver.runfiles/com_github_rnburn_bazel_cpp20_modules/util/driver/clang.py", line 80, in make_system_module
    subprocess.run(args, check=True)
  File "/usr/lib/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/usr/lib/llvm-15/bin/clang', '-cc1', '-triple', 'x86_64-pc-linux-gnu', '-emit-module', '-disable-free', '-clear-ast-before-backend', '-disable-llvm-verifier', '-discard-value-names', '-main-file-name', 'std.cc', '-mrelocation-model', 'pic', '-pic-level', '2', '-pic-is-pie', '-mframe-pointer=all', '-fmath-errno', '-ffp-contract=on', '-fno-rounding-math', '-mconstructor-aliases', '-funwind-tables=2', '-target-cpu', 'x86-64', '-tune-cpu', 'generic', '-debugger-tuning=gdb', '-fcoverage-compilation-dir=/root/.cache/bazel/_bazel_root/f8087e59fd95af1ae29e8fcb7ff1a3dc/sandbox/linux-sandbox/26/execroot/com_github_rnburn_bazel_cpp20_modules', '-resource-dir', '/usr/lib/llvm-15/lib/clang/15.0.0', '-iquote', '.', '-U', '_FORTIFY_SOURCE', '-internal-isystem', '/usr/lib/llvm-15/bin/../include/c++/v1', '-internal-isystem', '/usr/lib/llvm-15/lib/clang/15.0.0/include', '-internal-isystem', '/usr/local/include', '-internal-isystem', '/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/include', '-internal-externc-isystem', '/usr/include/x86_64-linux-gnu', '-internal-externc-isystem', '/include', '-internal-externc-isystem', '/usr/include', '-Wall', '-Wthread-safety', '-Wself-assign', '-Wunused-but-set-parameter', '-Wno-free-nonheap-object', '-Wno-builtin-macro-redefined', '-std=c++20', '-fdeprecated-macro', '-fdebug-compilation-dir=/root/.cache/bazel/_bazel_root/f8087e59fd95af1ae29e8fcb7ff1a3dc/sandbox/linux-sandbox/26/execroot/com_github_rnburn_bazel_cpp20_modules', '-ferror-limit', '19', '-stack-protector', '1', '-fgnuc-version=4.2.1', '-fmodules', '-fimplicit-module-maps', '-fmodules-cache-path=/root/.cache/clang/ModuleCache', '/usr/lib/llvm-15/lib/clang/15.0.0/include/module.modulemap', '-fmodule-file=_Builtin_stddef_max_align_t=bazel-out/k8-fastbuild/bin/example/multi_src_module/_Builtin_stddef_max_align_t.pcm', '-fmodules-validate-system-headers', '-fcxx-exceptions', '-fexceptions', '-fcolor-diagnostics', '-faddrsig', '-D__GCC_HAVE_DWARF2_CFI_ASM=1', '-o', 'bazel-out/k8-fastbuild/bin/example/multi_src_module/std.pcm', '-x', 'c++', '-fmodule-name=std']' returned non-zero exit status 1.
INFO: Elapsed time: 6.731s, Critical Path: 0.50s
INFO: 78 processes: 47 internal, 31 linux-sandbox.
FAILED: Build did NOT complete successfully

Or as image for better colorized view:
Screenshot from 2022-03-20 11-43-34

What could be the reason? Thanks in advance!

@SlausB
Copy link
Author

SlausB commented Mar 21, 2022

I changed install_bazel.sh from bazelisk to apt-way described in bazel docs:

curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
mv bazel.gpg /etc/apt/trusted.gpg.d/
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list

apt update
apt install -y bazel
apt full-upgrade

and now it works! Dunno what could be the reason, because on host I also use bazelisk and it works fine.
Thanks again for the awesome boilerplate!

@SlausB SlausB closed this as completed Mar 21, 2022
@rnburn
Copy link
Owner

rnburn commented Mar 21, 2022

I looked briefly at this.

It looks like clang is using the module map from /usr/lib/clang/15.0.0/include/module.modulemap (which doesn't include std_config) instead of the module map from /usr/lib/llvm-15/include/c++/v1/module.modulemap (which includes std_config).

Something must have changed in the llvm setup and where the module maps are installed.

@rnburn rnburn reopened this Mar 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants