diff options
author | Yifan Hong <elsk@google.com> | 2023-10-25 14:22:03 -0700 |
---|---|---|
committer | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2024-01-31 18:58:53 +0000 |
commit | eddd0e2d9497c11c56af72cb59d8fb558aef35f2 (patch) | |
tree | a646a80dfff6751248aaa0000914591f492034c8 | |
parent | b6bd878297634142950d4d6400c5f1f34fda5c4c (diff) | |
download | build-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.bzl | 18 |
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 |