diff options
author | Phil Blundell <philb@gnu.org> | 2004-04-23 19:12:55 +0000 |
---|---|---|
committer | Phil Blundell <philb@gnu.org> | 2004-04-23 19:12:55 +0000 |
commit | 955af222322a28b6fb3f751a8181127cc715ad89 (patch) | |
tree | 58f7ee5b2b5735ffc2ee2f10fbd3066654e85c8b /bfd/elf32-arm.h | |
parent | 1e9f977e1f87e80e6832cc663bef3d64178e4a4e (diff) | |
download | gdb-955af222322a28b6fb3f751a8181127cc715ad89.zip gdb-955af222322a28b6fb3f751a8181127cc715ad89.tar.gz gdb-955af222322a28b6fb3f751a8181127cc715ad89.tar.bz2 |
2004-04-21 Philip Blundell <pb@nexus.co.uk>
* elf32-arm.h (elf32_arm_check_relocs): Don't output REL32
relocs for locally defined symbols during -shared final link.
(elf32_arm_final_link_relocate): Likewise.
Diffstat (limited to 'bfd/elf32-arm.h')
-rw-r--r-- | bfd/elf32-arm.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h index 39864d4..d6857d4 100644 --- a/bfd/elf32-arm.h +++ b/bfd/elf32-arm.h @@ -1361,6 +1361,8 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd, into the output file to be resolved at run time. */ if (info->shared && (input_section->flags & SEC_ALLOC) + && (r_type != R_ARM_REL32 + || !SYMBOL_CALLS_LOCAL (info, h)) && (h == NULL || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT || h->root.type != bfd_link_hash_undefweak) @@ -3041,7 +3043,8 @@ elf32_arm_check_relocs (abfd, info, sec, relocs) if (info->shared && (sec->flags & SEC_ALLOC) != 0 && ((ELF32_R_TYPE (rel->r_info) != R_ARM_PC24 - && ELF32_R_TYPE (rel->r_info) != R_ARM_PLT32) + && ELF32_R_TYPE (rel->r_info) != R_ARM_PLT32 + && ELF32_R_TYPE (rel->r_info) != R_ARM_REL32) || (h != NULL && (! info->symbolic || (h->elf_link_hash_flags |