16k: core: Add flag to make AOSP page size agnostic

The new boolean flag will be PRODUCT_PAGE_SIZE_AGNOSTIC.

When PRODUCT_PAGE_SIZE_AGNOSTIC is true:

- AOSP will use getpagesize() to retrieve the page size.
- The flag `TARGET_MAX_PAGE_SIZE_SUPPORTED` has to be equals to `65536`.
- AOSP will be able to use 4k/16k page size Linux kernels

When PRODUCT_PAGE_SIZE_AGNOSTIC is false:

- AOSP will only support 4k page size kernels.

Test: source build/envsetup.sh
      lunch aosp_raven_64-userdebug
      get_build_var TARGET_PAGE_SIZE_AGNOSTIC
      get_build_var PRODUCT_MAX_PAGE_SIZE_SUPPORTED
      65536

      source build/envsetup.sh
      lunch aosp_raven_64-userdebug
      build/make/core/config.mk:414: error: TARGET_MAX_PAGE_SIZE_SUPPORTED has to be 65536 to support page size agnostic.
      10:32:55 dumpvars failed with: exit status 1

Bug: 289419664
Change-Id: If8fc243a3e2cad77414a53a29805c7b6d349d4dd
3 files changed
tree: 979d7e29b82808b2ffe36533a697ee3f18688fe6
  1. common/
  2. core/
  3. packaging/
  4. target/
  5. tests/
  6. tools/
  7. .gitignore
  8. banchanHelp.sh
  9. buildspec.mk.default
  10. Changes.md
  11. CleanSpec.mk
  12. Deprecation.md
  13. envsetup.sh
  14. help.sh
  15. METADATA
  16. navbar.md
  17. OWNERS
  18. PREUPLOAD.cfg
  19. rbesetup.sh
  20. README.md
  21. shell_utils.sh
  22. tapasHelp.sh
  23. 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.