summaryrefslogtreecommitdiff
path: root/android-changes-for-ndk-developers.md
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2020-01-24 14:36:10 -0800
committerElliott Hughes <enh@google.com>2020-01-24 15:39:01 -0800
commit6663f5525dafc31de1891d7e0fa6da88c4c7dc4b (patch)
tree20be89b877823e6c2c3521037aa4a21f6bcb0345 /android-changes-for-ndk-developers.md
parent5b9cc3144239511ec9062a3ff47dc20202848388 (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.md16
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.