diff options
author | Elliott Hughes <enh@google.com> | 2020-01-24 14:36:10 -0800 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2020-01-24 15:39:01 -0800 |
commit | 6663f5525dafc31de1891d7e0fa6da88c4c7dc4b (patch) | |
tree | 20be89b877823e6c2c3521037aa4a21f6bcb0345 /android-changes-for-ndk-developers.md | |
parent | 5b9cc3144239511ec9062a3ff47dc20202848388 (diff) |
Modernize SHT_RELR support.
Until now we've only supported RELR with our own OS-private-use
constants. Add support for the official numbers (while maintaining
support for the historical numbers).
Add tests to ensure we continue to support both indefinitely.
We can't yet flip the build system over to using the official constants
because the old GNU binutils objcopy we still use in most cases (for the
mini-debug section) only supports the historical constants.
Bug: http://b/147452927
Test: treehugger
Change-Id: If214fce7fade4316115947e90b78ab40864b61f2
Diffstat (limited to 'android-changes-for-ndk-developers.md')
-rw-r--r-- | android-changes-for-ndk-developers.md | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/android-changes-for-ndk-developers.md b/android-changes-for-ndk-developers.md index 84456f988..a0f3c3c50 100644 --- a/android-changes-for-ndk-developers.md +++ b/android-changes-for-ndk-developers.md @@ -456,3 +456,19 @@ Most apps should be unaffected by this change, but apps that hook or try to detect hooking of C library functions might need to fix their code to cope with IFUNC relocations. The affected functions are from `<string.h>`, but may expand to include more functions (and more libraries) in future. + +## Relative relocations (RELR) + +Android added experimental support for RELR relative relocations +in API level 28, but using `SHT_` and `DT_` constants in the space +reserved for OS private use. + +API level 30 added support for ELF files using the official `SHT_` and +`DT_` constants. + +The RELR encoding is unrelated to the earlier "packed relocations" +format available from API level 23. + +There are no plans to remove support for ELF files using the older +OS private use constants for RELR, nor for ELF files using packed +relocations. |