aboutsummaryrefslogtreecommitdiff
path: root/kleaf/common.bzl
AgeCommit message (Collapse)Author
2024-02-15kleaf: Disable --rtlib=compiler-rt for host linker for cc_* rulesYifan Hong
This resolves the error about libgcc_s not being found. -fuse-ld=lld is kept. This does not affect Kbuild. Kbuild continues to use --rtlib=compiler-rt without -B / -L flags. Test: TH Bug: 324206397 Change-Id: I194764ef6f4820ac912426917a0dadd81de16042 Merged-In: I194764ef6f4820ac912426917a0dadd81de16042
2023-12-04kleaf: hard-code objcopy_embed_data.Yifan Hong
objcopy_embed_data from the real @rules_cc does not exist in ACTION_NAMES. Hard-code it for now. Test: TH Bug: 268711514 Bug: 310843869 Change-Id: I3e81bff0e8a7e9041864c13dc79abd5496d3e9bb (cherry picked from commit 6abe7e0a2e3405086c80264617727f3b0ce70488)
2023-04-28kleaf: Use action_config not tool_path.Yifan Hong
... so we can rely on actual File objects, not relative paths. This change allows the deletion of the kleaf/parent symlinks later. This change is in response to https://github.com/bazelbuild/bazel/issues/8438#issuecomment-1523519395 Test: TH Bug: https://github.com/bazelbuild/bazel/issues/8438 Bug: 280012530 Change-Id: Ie9846847167e5a0c2b1cb1dde5a7c82a17cd3862
2023-03-07kleaf: Rename kleaf-common-cflags to kleaf-no-canonical-prefixes.Yifan Hong
This feature is enabled by default on regular cc_* rules to work around https://github.com/bazelbuild/bazel/issues/4605 However, for kernel builds, we do not want to set this flag. Rename the feature to a more specific name so we can disable it more precisely in kernel build. Test: TH Bug: 272164611 Change-Id: I1e32a58c334111b32f4570831ddb87757218b389
2023-03-02kleaf: hermetic cc toolchain for host binaries.Yifan Hong
If --config=hermetic_cc is set, registers hermetic CC toolchain from prebuilts/clang for cc_binary etc., and don't use host CC toolchain. In this CL, only host binaries and libraries can be built. On-device (Android) binaries and libraries are supported in the next CL. Note: targets specified in the `tools` attribute of a genrule automatically applies the transition to compile against the execution platform. We use this trick to force that sub-targets of linux_x86_64_tests_genrule are compiled against the host, not the target platform (which will become Android in the next CL). Test: bazel test --config=hermetic_cc //build/kernel/kleaf/tests/cc_testing:linux_x86_64 (examined with --toolchain_resolution_debug=//build/kernel/kleaf) Include-Buildifier-Warnings: enabled Bug: 228238975 Bug: 239688839 Change-Id: I0c7ca5744393c3f108361f757772e4e5409b8dce