From 955af222322a28b6fb3f751a8181127cc715ad89 Mon Sep 17 00:00:00 2001 From: Phil Blundell Date: Fri, 23 Apr 2004 19:12:55 +0000 Subject: [PATCH] 2004-04-21 Philip Blundell * 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. --- bfd/ChangeLog | 6 ++++++ bfd/elf32-arm.h | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 5177dc37b78..982b902b03a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2004-04-21 Philip Blundell + + * 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. + 2004-04-22 Jakub Jelinek * elf64-x86-64.c (elf64_x86_64_copy_indirect_symbol): Copy also diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h index 39864d427c4..d6857d4a77a 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 -- 2.30.2