diff options
author | Mark Mitchell <mark@codesourcery.com> | 2003-06-24 06:41:36 +0000 |
---|---|---|
committer | Mark Mitchell <mark@codesourcery.com> | 2003-06-24 06:41:36 +0000 |
commit | 88810f8cd12415fc0cbd6cbc2fc42598d7548401 (patch) | |
tree | bfc8ed675bdb7d560b4581dcc14ba7cc76fd1519 /bfd | |
parent | 8ee95d47b63699537bff031267720cdbda179e10 (diff) | |
download | gdb-88810f8cd12415fc0cbd6cbc2fc42598d7548401.zip gdb-88810f8cd12415fc0cbd6cbc2fc42598d7548401.tar.gz gdb-88810f8cd12415fc0cbd6cbc2fc42598d7548401.tar.bz2 |
* elf32-ppc.c (ppc_elf_begin_write_processing): Use bytes to count
APUinfo slots.
(ppc_elf_final_write_processing): Likewise.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf32-ppc.c | 10 |
2 files changed, 11 insertions, 5 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1e81fd7..012f8f6 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2003-06-23 Mark Mitchell <mark@codesourcery.com> + + * elf32-ppc.c (ppc_elf_begin_write_processing): Use bytes to count + APUinfo slots. + (ppc_elf_final_write_processing): Likewise. + 2003-06-23 H.J. Lu <hongjiu.lu@intel.com> * elflink.h (elf_link_input_bfd): Check raw size when using diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index d2cbd83..a60015d 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -5721,9 +5721,9 @@ ppc_elf_begin_write_processing (abfd, link_info) if (strcmp (ptr + 12, APUINFO_LABEL) != 0) goto fail; - /* Get the number of apuinfo entries. */ + /* Get the number of bytes used for apuinfo entries. */ datum = bfd_get_32 (ibfd, ptr + 4); - if ((datum * 4 + 20) != length) + if (datum + 20 != length) goto fail; /* Make sure that we do not run off the end of the section. */ @@ -5731,8 +5731,8 @@ ppc_elf_begin_write_processing (abfd, link_info) goto fail; /* Scan the apuinfo section, building a list of apuinfo numbers. */ - for (i = 0; i < datum; i++) - apuinfo_list_add (bfd_get_32 (ibfd, ptr + 20 + (i * 4))); + for (i = 0; i < datum; i += 4) + apuinfo_list_add (bfd_get_32 (ibfd, ptr + 20 + i)); /* Update the offset. */ offset += length; @@ -5808,7 +5808,7 @@ ppc_elf_final_write_processing (abfd, linker) /* Create the apuinfo header. */ num_entries = apuinfo_list_length (); bfd_put_32 (abfd, sizeof APUINFO_LABEL, buffer); - bfd_put_32 (abfd, num_entries, buffer + 4); + bfd_put_32 (abfd, num_entries * 4, buffer + 4); bfd_put_32 (abfd, 0x2, buffer + 8); strcpy (buffer + 12, APUINFO_LABEL); |