diff options
author | Fangrui Song <maskray@google.com> | 2022-06-23 01:04:39 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2022-06-23 01:04:39 -0700 |
commit | 4fb55bf6a9606eb7b626c30a9f4e71d6c2d4fbb2 (patch) | |
tree | f7c1915dd6173ddb8967df5227fd6b2538b48d06 | |
parent | 325600eb1175e6f989f201ae885c8fae82953264 (diff) | |
download | gdb-4fb55bf6a9606eb7b626c30a9f4e71d6c2d4fbb2.zip gdb-4fb55bf6a9606eb7b626c30a9f4e71d6c2d4fbb2.tar.gz gdb-4fb55bf6a9606eb7b626c30a9f4e71d6c2d4fbb2.tar.bz2 |
aarch64: Define elf_backend_extern_protected_data to 0 [PR 18705]
Follow-up to commit 90b7a5df152a64d2bea20beb438e8b81049a5c30
("aarch64: Disallow copy relocations on protected data").
Commit 32f573bcb3aaa1c9defcad79dbb5851fcc02ae2d changed ld to produce
R_AARCH64_GLOB_DAT but that defeated the purpose of protected visibility
as an optimization. Restore the previous behavior (which matches
ld.lld) by defining elf_backend_extern_protected_data to 0.
-rw-r--r-- | bfd/elfnn-aarch64.c | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/protected-data.d | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index 81311fc..ce2632e 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -10116,7 +10116,7 @@ const struct elf_size_info elfNN_aarch64_size_info = #define elf_backend_dtrel_excludes_plt 1 #define elf_backend_got_header_size (GOT_ENTRY_SIZE * 3) #define elf_backend_default_execstack 0 -#define elf_backend_extern_protected_data 1 +#define elf_backend_extern_protected_data 0 #define elf_backend_hash_symbol elf_aarch64_hash_symbol #undef elf_backend_obj_attrs_section diff --git a/ld/testsuite/ld-aarch64/protected-data.d b/ld/testsuite/ld-aarch64/protected-data.d index 5dabf04..ee9b4cf 100644 --- a/ld/testsuite/ld-aarch64/protected-data.d +++ b/ld/testsuite/ld-aarch64/protected-data.d @@ -2,4 +2,4 @@ #ld: -shared #readelf: -r -W #... -.* R_AARCH64_GLOB_DAT .* var.* +.* R_AARCH64_RELATIVE .* |