Wrap the soong installation rules with /bin/bash
Switching between `m` and `m --soong-only` is currently not a null build
since the command line of the install actions changes. This CL wraps the
install cmds with /bin/bash to match the command line of the install
actions in regular `m` builds.
Switching between `m` and `m --soong-only` is still not a null build
(most likely due to `kernel_version_for_uffd_gc.txt), but with this CL
only a subset of the actions (buildprop and rdeps) need to be rebuilt
between the switch
Bug: 390471378
Test: m out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_odm_image/android_common/odm.img
Test: m
out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_odm_image/android_common/odm.img
--soong-only
(only cmp of kernel_version_for_uffd_gc.txt)
Test: m out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_odm_image/android_common/odm.img
(copies kernel_version_for_uffd_gc.txt, runs gen_build_prop followed by
build_img)
Change-Id: If64af772fc6e3506310ffb9f7a0e9058befb9cfa
diff --git a/android/module_context.go b/android/module_context.go
index f6a676d..1620390 100644
--- a/android/module_context.go
+++ b/android/module_context.go
@@ -668,9 +668,9 @@
extraFiles: extraZip,
})
} else {
- rule := Cp
+ rule := CpWithBash
if executable {
- rule = CpExecutable
+ rule = CpExecutableWithBash
}
extraCmds := ""
@@ -690,6 +690,7 @@
OrderOnly: orderOnlyDeps,
Args: map[string]string{
"extraCmds": extraCmds,
+ "cpFlags": "-f",
},
})
}
@@ -730,7 +731,7 @@
// the mtime of the symlink must be updated when the binary is modified, so use a
// normal dependency here instead of an order-only dependency.
m.Build(pctx, BuildParams{
- Rule: Symlink,
+ Rule: SymlinkWithBash,
Description: "install symlink " + fullInstallPath.Base(),
Output: fullInstallPath,
Input: srcPath,