Fix expansion of _include_stack in _import-node

During product configuration after a subgraph has been fully imported,
i.e. a makefile and all makefiles it inherits from have been imported,
the makefile representing the root node of this subgraph is meant to be
removed from _include_stack in the _import-node macro via the call to
the wordlist function. Instead, _include_stack is being cleared because
the last argument to the wordlist function is escaped so when it is
expanded before being passed to wordlist instead of expanding to the
value of _include_stack the reference to _include_stack is unescaped.
Fix this by removing the escaping of the variable reference.

This issue has no impact on product configuration but the correct value
of _include_stack helps when debugging product configuration because,
for example, the dumpconfig generated by 'product-config' contains the
value of _include_stack when nodes are imported.

Bug: 345709996
Test: lunch aosp_cf_x86_64_phone-trunk_staging-userdebug && \
  m nothing shows no change to build.ninja files
Test: Run product-config and dumpconfig.csv shows correct include
  stack, e.g. for telephony_product.mk

Change-Id: I5a9b22fffc147ceea3d49e298b1bbad45f71332c
Signed-off-by: Rashid Zaman <rashidz@meta.com>
1 file changed
tree: ed562655cf4df758afd79f0ea9c76cee407f8803
  1. ci/
  2. common/
  3. core/
  4. packaging/
  5. target/
  6. teams/
  7. tests/
  8. tools/
  9. .gitignore
  10. Android.bp
  11. banchanHelp.sh
  12. buildspec.mk.default
  13. Changes.md
  14. CleanSpec.mk
  15. cogsetup.sh
  16. Deprecation.md
  17. envsetup.sh
  18. help.sh
  19. navbar.md
  20. OWNERS
  21. PREUPLOAD.cfg
  22. rbesetup.sh
  23. README.md
  24. shell_utils.sh
  25. tapasHelp.sh
  26. Usage.txt
README.md

Android Make Build System

This is the Makefile-based portion of the Android Build System.

For documentation on how to run a build, see Usage.txt

For a list of behavioral changes useful for Android.mk writers see Changes.md

For an outdated reference on Android.mk files, see build-system.html. Our Android.mk files look similar, but are entirely different from the Android.mk files used by the NDK build system. When searching for documentation elsewhere, ensure that it is for the platform build system -- most are not.

This Makefile-based system is in the process of being replaced with Soong, a new build system written in Go. During the transition, all of these makefiles are read by Kati, and generate a ninja file instead of being executed directly. That's combined with a ninja file read by Soong so that the build graph of the two systems can be combined and run as one.