diff options
author | Alan Modra <amodra@gmail.com> | 2004-03-16 10:29:12 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2004-03-16 10:29:12 +0000 |
commit | 51992aec7a025a2cb45ee604eaf0fdf7211ea75c (patch) | |
tree | 821df187b567083a546ea04bcbbbd2f22cc24878 /bfd | |
parent | ccba357f634fbfc05dab5129a75eb5b7bc2b0c42 (diff) | |
download | gdb-51992aec7a025a2cb45ee604eaf0fdf7211ea75c.zip gdb-51992aec7a025a2cb45ee604eaf0fdf7211ea75c.tar.gz gdb-51992aec7a025a2cb45ee604eaf0fdf7211ea75c.tar.bz2 |
* elflink.c (elf_link_read_relocs_from_section): Don't use
NUM_SHDR_ENTRIES in end of reloc calc. Move NULL shdr check..
(_bfd_elf_link_read_relocs): ..to here.
* elf32-ppc.c (ppc_elf_relax_section): Formatting.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elf32-ppc.c | 5 | ||||
-rw-r--r-- | bfd/elflink.c | 19 |
3 files changed, 16 insertions, 15 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9513572..ea5189c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,12 @@ 2004-03-16 Alan Modra <amodra@bigpond.net.au> + * elflink.c (elf_link_read_relocs_from_section): Don't use + NUM_SHDR_ENTRIES in end of reloc calc. Move NULL shdr check.. + (_bfd_elf_link_read_relocs): ..to here. + * elf32-ppc.c (ppc_elf_relax_section): Formatting. + +2004-03-16 Alan Modra <amodra@bigpond.net.au> + * configure.in (HOST_64BIT_TYPE, HOST_U_64BIT_TYPE): Don't override values selected in configure.host. Require both to be defined before setting BFD_HOST_64_BIT_DEFINED. Protect assignment to diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 8bd7115..813d149 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -1816,10 +1816,7 @@ ppc_elf_relax_section (bfd *abfd, symaddr = tsec->output_section->vma + tsec->output_offset + toff; roff = irel->r_offset; - - reladdr = (isec->output_section->vma - + isec->output_offset - + roff); + reladdr = isec->output_section->vma + isec->output_offset + roff; /* If the branch is in range, no need to do anything. */ if (symaddr - reladdr + max_branch_offset < 2 * max_branch_offset) diff --git a/bfd/elflink.c b/bfd/elflink.c index 5051364..7d63383 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -1880,10 +1880,6 @@ elf_link_read_relocs_from_section (bfd *abfd, Elf_Internal_Shdr *symtab_hdr; size_t nsyms; - /* If there aren't any relocations, that's OK. */ - if (!shdr) - return TRUE; - /* Position ourselves at the start of the section. */ if (bfd_seek (abfd, shdr->sh_offset, SEEK_SET) != 0) return FALSE; @@ -1909,7 +1905,7 @@ elf_link_read_relocs_from_section (bfd *abfd, } erela = external_relocs; - erelaend = erela + NUM_SHDR_ENTRIES (shdr) * shdr->sh_entsize; + erelaend = erela + shdr->sh_size; irela = internal_relocs; while (erela < erelaend) { @@ -1995,12 +1991,13 @@ _bfd_elf_link_read_relocs (bfd *abfd, external_relocs, internal_relocs)) goto error_return; - if (!elf_link_read_relocs_from_section - (abfd, o, - elf_section_data (o)->rel_hdr2, - ((bfd_byte *) external_relocs) + rel_hdr->sh_size, - internal_relocs + (NUM_SHDR_ENTRIES (rel_hdr) - * bed->s->int_rels_per_ext_rel))) + if (elf_section_data (o)->rel_hdr2 + && (!elf_link_read_relocs_from_section + (abfd, o, + elf_section_data (o)->rel_hdr2, + ((bfd_byte *) external_relocs) + rel_hdr->sh_size, + internal_relocs + (NUM_SHDR_ENTRIES (rel_hdr) + * bed->s->int_rels_per_ext_rel)))) goto error_return; /* Cache the results for next time, if we can. */ |