summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYifan Hong <elsk@google.com>2023-10-25 14:22:03 -0700
committerTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2024-01-31 18:58:53 +0000
commiteddd0e2d9497c11c56af72cb59d8fb558aef35f2 (patch)
treea646a80dfff6751248aaa0000914591f492034c8
parentb6bd878297634142950d4d6400c5f1f34fda5c4c (diff)
downloadbuild-eddd0e2d9497c11c56af72cb59d8fb558aef35f2.tar.gz
kleaf: cache_dir.bzl sets COMMON_OUT_DIR properly.
When building a ddk_module with --config=local: - OUT_DIR is in out/cache/<hash>/$KERNEL_DIR - Module.symvers of the depended module is restored to out/cache/<hash>/<package>/<name>_Module.symvers - However, the generated makefile expects the file in COMMON_OUT_DIR/<package>/<name>_Module.symvers, where COMMON_OUT_DIR is not changed. This is because cache_dir.bzl only modifies the value of OUT_DIR, not COMMON_OUT_DIR. Hence, it makes sense to set COMMON_OUT_DIR to the directory under cache_dir as well. Test: TH Bug: 304499217 Change-Id: Icd9beb73db7105b278def0c95f036cd1ae21a930 Signed-off-by: Yifan Hong <elsk@google.com> (cherry picked from commit e2a45faccec7c5d94b4ff9d2c2d11d5d8d286814)
-rw-r--r--kleaf/impl/cache_dir.bzl18
1 files changed, 8 insertions, 10 deletions
diff --git a/kleaf/impl/cache_dir.bzl b/kleaf/impl/cache_dir.bzl
index d6b41aa5..2ceffddf 100644
--- a/kleaf/impl/cache_dir.bzl
+++ b/kleaf/impl/cache_dir.bzl
@@ -21,9 +21,7 @@ _FLOCK_FD = 0x41F # KLF
def _get_flock_cmd(ctx):
if ctx.attr._debug_cache_dir_conflict[BuildSettingInfo].value == "none":
- pre_cmd = """
- unset KLEAF_CACHED_COMMON_OUT_DIR
- """
+ pre_cmd = ""
post_cmd = ""
return struct(
pre_cmd = pre_cmd,
@@ -43,9 +41,9 @@ def _get_flock_cmd(ctx):
pre_cmd = """
(
- echo "DEBUG: [$(date -In)] {label}: Locking ${{KLEAF_CACHED_COMMON_OUT_DIR}}/kleaf_config_tags.json before using" >&2
+ echo "DEBUG: [$(date -In)] {label}: Locking ${{COMMON_OUT_DIR}}/kleaf_config_tags.json before using" >&2
if ! flock -x {lock_args} {flock_fd}; then
- echo "ERROR: [$(date -In)] {label}: Unable to lock ${{KLEAF_CACHED_COMMON_OUT_DIR}}/kleaf_config_tags.json." >&2
+ echo "ERROR: [$(date -In)] {label}: Unable to lock ${{COMMON_OUT_DIR}}/kleaf_config_tags.json." >&2
echo " Please file a bug! See build/kernel/kleaf/docs/errors.md" >&2
exit 1
fi
@@ -55,8 +53,8 @@ def _get_flock_cmd(ctx):
flock_fd = _FLOCK_FD,
)
post_cmd = """
- ) {flock_fd}<"${{KLEAF_CACHED_COMMON_OUT_DIR}}/kleaf_config_tags.json"
- echo "DEBUG: [$(date -In)] {label}: Unlocked ${{KLEAF_CACHED_COMMON_OUT_DIR}}/kleaf_config_tags.json after using" >&2
+ ) {flock_fd}<"${{COMMON_OUT_DIR}}/kleaf_config_tags.json"
+ echo "DEBUG: [$(date -In)] {label}: Unlocked ${{COMMON_OUT_DIR}}/kleaf_config_tags.json after using" >&2
""".format(
label = ctx.label,
flock_fd = _FLOCK_FD,
@@ -115,15 +113,15 @@ def _get_step(ctx, common_config_tags, symlink_name):
export OUT_DIR_SUFFIX=$(cat ${{KLEAF_CONFIG_TAGS_TMP}} | sha1sum -b | cut -c-8)
- KLEAF_CACHED_COMMON_OUT_DIR={cache_dir}/${{OUT_DIR_SUFFIX}}
- export OUT_DIR=${{KLEAF_CACHED_COMMON_OUT_DIR}}/${{KERNEL_DIR}}
+ export COMMON_OUT_DIR={cache_dir}/${{OUT_DIR_SUFFIX}}
+ export OUT_DIR=${{COMMON_OUT_DIR}}/${{KERNEL_DIR}}
mkdir -p "${{OUT_DIR}}"
# Reconcile differences between expected file and target file, if any,
# to prevent hash collision.
{cache_dir_config_tags} \\
--base "${{KLEAF_CONFIG_TAGS_TMP}}" \\
- --dest "${{KLEAF_CACHED_COMMON_OUT_DIR}}/kleaf_config_tags.json"
+ --dest "${{COMMON_OUT_DIR}}/kleaf_config_tags.json"
rm -f "${{KLEAF_CONFIG_TAGS_TMP}}"
unset KLEAF_CONFIG_TAGS_TMP