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

Consider retiring the "Build with Bazel provided LLVM installation" instructions #3

Open
camio opened this issue Nov 22, 2022 · 0 comments

Comments

@camio
Copy link

camio commented Nov 22, 2022

For several reasons:

  1. The instructions as they stand, do not work. The commit hash declared in bazel/llvm.bzl is API incompatible with the crubit source code. See Instructions as written failure below.
  2. If the commit hash is updated to something recent, the build still fails. See Failure with updated commit below.
  3. Removing this option from the installation instructions will simplify them for users and contract the support surface.
  4. The bazel build of LLVM doesn't seem actively maintained. The Failure with updated commit at first glance looks to be a defect in LLVM's bazel build.

Instructions as written failure

dsankel@AP-PW015KJM:~/code/crubit$ bazel build --linkopt=-fuse-ld=/usr/bin/ld.lld //rs_bindings_from_cc:rs_bindings_from_cc_impl
DEBUG: Rule 'llvm-raw' indicated that a canonical reproducible form can be obtained by modifying arguments shallow_since = "1661922120 +0800"
DEBUG: Repository llvm-raw instantiated at:
  /home/dsankel/code/crubit/WORKSPACE:127:36: in <toplevel>
  /home/dsankel/code/crubit/bazel/llvm.bzl:61:23: in llvm_loader_repository_dependencies
Repository rule new_git_repository defined at:
  /home/dsankel/.cache/bazel/_bazel_dsankel/1360c4342c51417fe5124e0a1427d9ea/external/bazel_tools/tools/build_defs/repo/git.bzl:186:37: in <toplevel>
INFO: Analyzed target //rs_bindings_from_cc:rs_bindings_from_cc_impl (121 packages loaded, 9510 targets configured).
INFO: Found 1 target...
ERROR: /home/dsankel/code/crubit/lifetime_annotations/BUILD:26:11: Compiling lifetime_annotations/type_lifetimes.cc failed: (Exit 1): clang-16 failed: error executing command /home/dsankel/code/llvm-project/install/bin/clang-16 -U_FORTIFY_SOURCE -fstack-protector -Wall -Wthread-safety -Wself-assign -Wunused-but-set-parameter -Wno-free-nonheap-object -fcolor-diagnostics ... (remaining 88 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
lifetime_annotations/type_lifetimes.cc:742:40: error: cannot initialize a variable of type 'const clang::TemplateTypeParmDecl *' with an rvalue of type 'const TemplateTypeParmType *'
    const clang::TemplateTypeParmDecl* type_parm = targ->getReplacedParameter();
                                       ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lifetime_annotations/type_lifetimes.cc:779:48: error: cannot initialize a variable of type 'const clang::TemplateTypeParmDecl *' with an rvalue of type 'const TemplateTypeParmType *'
            const clang::TemplateTypeParmDecl* type_parm =
                                               ^
2 errors generated.
Target //rs_bindings_from_cc:rs_bindings_from_cc_impl failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 318.474s, Critical Path: 66.47s
INFO: 2279 processes: 1038 internal, 1241 linux-sandbox.
FAILED: Build did NOT complete successfully

Failure with updated commit

Using commit 163bb6d64e5f1220777c3ec2a8b58c0666a74d91.

dsankel@AP-PW015KJM:~/code/crubit$ bazel build --linkopt=-fuse-ld=/usr/bin/ld.lld //rs_bindings_from_cc:rs_bindings_from_cc_impl
DEBUG: Rule 'llvm-raw' indicated that a canonical reproducible form can be obtained by modifying arguments shallow_since = "1669057075 -0500"
DEBUG: Repository llvm-raw instantiated at:
  /home/dsankel/code/crubit/WORKSPACE:127:36: in <toplevel>
  /home/dsankel/code/crubit/bazel/llvm.bzl:61:23: in llvm_loader_repository_dependencies
Repository rule new_git_repository defined at:
  /home/dsankel/.cache/bazel/_bazel_dsankel/1360c4342c51417fe5124e0a1427d9ea/external/bazel_tools/tools/build_defs/repo/git.bzl:186:37: in <toplevel>
ERROR: /home/dsankel/code/crubit/rs_bindings_from_cc/BUILD:62:10: error loading package '@llvm-project//llvm': cannot load '@bazel_skylib//rules:expand_template.bzl': no such file and referenced by '//rs_bindings_from_cc:rs_bindings_from_cc_impl'
ERROR: Analysis of target '//rs_bindings_from_cc:rs_bindings_from_cc_impl' failed; build aborted: Analysis failed
INFO: Elapsed time: 98.704s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (50 packages loaded, 154 targets configured)
    currently loading: @llvm-project//llvm ... (2 packages)
@hlopko hlopko changed the title Consider retiring the "Build with Basel provided LLVM installation" instructions Consider retiring the "Build with Bazel provided LLVM installation" instructions Nov 23, 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

1 participant