android: Include malloc_hook section in code range

A few reached functions from third_party/abseil-cpp are outside of the
`.text` section (while still in the executable segment). Extend the
linker_script_end_of_text by the size of this section. This way the
orderfile_instrumentation.cc does not condider them 'unexpected'.

Reduce the number of unexpected addresses from 100 to 10 to be able to
detect problems earlier.

Allow symbols outside of `.text` in the symbol_extractor. When a new
section is added, it will break the orderfile_generator until it is
properly included in the symbol_extractor, which should be in sync with
the linker script definitions.

Do not extract non-function symbols (ifuncs are extracted as normal
functions). This is hypothetically less error-prone.

I checked arm64 orderfile generation with these changes with
--streamline-for-debugging. We will need to look closely at the bot
after landing this.

Bug: 352317042
Change-Id: I442f42ff6fc35e1fd6a8da5afe47b116b853c3b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5697265
Commit-Queue: Egor Pasko <pasko@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1327155}
3 files changed
tree: 979b64674ac97707340ad76a13b7bde2348193b9
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia_web/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. media/
  31. mojo/
  32. native_client_sdk/
  33. net/
  34. pdf/
  35. ppapi/
  36. printing/
  37. remoting/
  38. rlz/
  39. sandbox/
  40. services/
  41. skia/
  42. sql/
  43. storage/
  44. styleguide/
  45. testing/
  46. third_party/
  47. tools/
  48. ui/
  49. url/
  50. webkit/
  51. .clang-format
  52. .clang-tidy
  53. .clangd
  54. .eslintrc.js
  55. .git-blame-ignore-revs
  56. .gitallowed
  57. .gitattributes
  58. .gitignore
  59. .gitmodules
  60. .gn
  61. .mailmap
  62. .rustfmt.toml
  63. .vpython3
  64. .yapfignore
  65. ATL_OWNERS
  66. AUTHORS
  67. BUILD.gn
  68. CODE_OF_CONDUCT.md
  69. codereview.settings
  70. CPPLINT.cfg
  71. DEPS
  72. DIR_METADATA
  73. LICENSE
  74. LICENSE.chromium_os
  75. OWNERS
  76. PRESUBMIT.py
  77. PRESUBMIT_test.py
  78. PRESUBMIT_test_mocks.py
  79. README.md
  80. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure.

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.