diff options
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf32-arm.h | 22 | ||||
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/emultempl/armelf_oabi.em | 3 |
4 files changed, 29 insertions, 7 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index eb179d9d1b..4d4ed46307 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2004-09-16 Alan Modra <amodra@bigpond.net.au> + + * elf32-arm.h (elf32_arm_gc_sweep_hook): Add #ifndef OLD_ARM_ABI + around uses of R_ARM_TARGET1. + (elf32_arm_check_relocs): Likewise. + 2004-09-13 Paul Brook <paul@codesourcery.com> * bfd-in.h (bfd_elf32_arm_process_before_allocation): Update diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h index ac3ec95be3..93140454d2 100644 --- a/bfd/elf32-arm.h +++ b/bfd/elf32-arm.h @@ -2759,7 +2759,9 @@ elf32_arm_gc_sweep_hook (bfd * abfd ATTRIBUTE_UNUSED, case R_ARM_ABS32: case R_ARM_REL32: +#ifndef OLD_ARM_ABI case R_ARM_TARGET1: +#endif case R_ARM_PC24: case R_ARM_PLT32: r_symndx = ELF32_R_SYM (rel->r_info); @@ -2775,8 +2777,10 @@ elf32_arm_gc_sweep_hook (bfd * abfd ATTRIBUTE_UNUSED, h->plt.refcount -= 1; if (ELF32_R_TYPE (rel->r_info) == R_ARM_ABS32 - || ELF32_R_TYPE (rel->r_info) == R_ARM_REL32 - || ELF32_R_TYPE (rel->r_info) == R_ARM_TARGET1) +#ifndef OLD_ARM_ABI + || ELF32_R_TYPE (rel->r_info) == R_ARM_TARGET1 +#endif + || ELF32_R_TYPE (rel->r_info) == R_ARM_REL32) { eh = (struct elf32_arm_link_hash_entry *) h; @@ -2887,7 +2891,9 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info, case R_ARM_ABS32: case R_ARM_REL32: +#ifndef OLD_ARM_ABI case R_ARM_TARGET1: +#endif case R_ARM_PC24: case R_ARM_PLT32: if (h != NULL) @@ -2930,8 +2936,10 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info, && (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_REL32 - && ELF32_R_TYPE (rel->r_info) != R_ARM_TARGET1) +#ifndef OLD_ARM_ABI + && ELF32_R_TYPE (rel->r_info) != R_ARM_TARGET1 +#endif + && ELF32_R_TYPE (rel->r_info) != R_ARM_REL32) || (h != NULL && (! info->symbolic || (h->elf_link_hash_flags @@ -3016,8 +3024,10 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info, } if (ELF32_R_TYPE (rel->r_info) == R_ARM_ABS32 - || ELF32_R_TYPE (rel->r_info) == R_ARM_REL32 - || ELF32_R_TYPE (rel->r_info) == R_ARM_TARGET1) +#ifndef OLD_ARM_ABI + || ELF32_R_TYPE (rel->r_info) == R_ARM_TARGET1 +#endif + || ELF32_R_TYPE (rel->r_info) == R_ARM_REL32) p->count += 1; } break; diff --git a/ld/ChangeLog b/ld/ChangeLog index c36ee745c3..5114aa7988 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2004-09-16 Alan Modra <amodra@bigpond.net.au> + + * emultempl/armelf_oabi.em (before_allocation): Add extra zero param + to bfd_elf32_arm_process_before_allocation call. + 2004-09-13 Paul Brook <paul@codesourcery.com> * emulparams/armsymbian.sh: Set TARGET1_IS_REL. diff --git a/ld/emultempl/armelf_oabi.em b/ld/emultempl/armelf_oabi.em index 8ff2ad1353..64f908ac16 100644 --- a/ld/emultempl/armelf_oabi.em +++ b/ld/emultempl/armelf_oabi.em @@ -68,7 +68,8 @@ gld${EMULATION_NAME}_before_allocation (void) { LANG_FOR_EACH_INPUT_STATEMENT (is) { - if (!bfd_elf32_arm_process_before_allocation (is->the_bfd, &link_info, 0, 0)) + if (!bfd_elf32_arm_process_before_allocation (is->the_bfd, &link_info, + 0, 0, 0)) { /* xgettext:c-format */ einfo (_("Errors encountered processing file %s"), is->filename); |