Movatterモバイル変換


[0]ホーム

URL:


This is the mail archive of thebinutils@sources.redhat.commailing list for thebinutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav:[Date Prev] [Date Next][Thread Prev] [Thread Next]
Other format:[Raw text]

E500 APUinfo fix


Section 3.6 of the E500 ABI specifies the contents of the APUInformation Section, and requires that offset 4 contains the number ofbytes of APU information.  However, GAS and binutils incorrectly usethe number of APU information slots -- rather than bytes.Fixed with this patch.OK to apply?--Mark MitchellCodeSourcery, LLCmark@codesourcery.com2003-06-23  Mark Mitchell  <mark@codesourcery.com>* elf32-ppc.c (ppc_elf_begin_write_processing): Use bytes to countAPUinfo slots.(ppc_elf_final_write_processing): Likewise.2003-06-23  Mark Mitchell  <mark@codesourcery.com>* config/tc-ppc.c (ppc_cleanup): Use bytes to count APUinfo slots.Index: bfd/elf32-ppc.c===================================================================RCS file: /cvs/src/src/bfd/elf32-ppc.c,vretrieving revision 1.83diff -c -5 -p -r1.83 elf32-ppc.c*** bfd/elf32-ppc.c31 May 2003 07:55:10 -00001.83--- bfd/elf32-ppc.c24 Jun 2003 03:30:02 -0000*************** ppc_elf_begin_write_processing (abfd, li*** 5719,5740 ****  goto fail;          if (strcmp (ptr + 12, APUINFO_LABEL) != 0)  goto fail;  !       /* Get the number of apuinfo entries.  */        datum = bfd_get_32 (ibfd, ptr + 4);!       if ((datum * 4 + 20) != length)  goto fail;          /* Make sure that we do not run off the end of the section.  */        if (offset + length > output_section_size)  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)));          /* Update the offset.  */        offset += length;      }  --- 5719,5740 ----  goto fail;          if (strcmp (ptr + 12, APUINFO_LABEL) != 0)  goto fail;  !       /* Get the number of bytes used for apuinfo entries.  */        datum = bfd_get_32 (ibfd, ptr + 4);!       if (datum + 20 != length)  goto fail;          /* Make sure that we do not run off the end of the section.  */        if (offset + length > output_section_size)  goto fail;          /* Scan the apuinfo section, building a list of apuinfo numbers.  */!       for (i = 0; i < datum; i += 4)! apuinfo_list_add (bfd_get_32 (ibfd, ptr + 20 + i));          /* Update the offset.  */        offset += length;      }  *************** ppc_elf_final_write_processing (abfd, li*** 5806,5816 ****      }      /* 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, 0x2, buffer + 8);    strcpy (buffer + 12, APUINFO_LABEL);      length = 20;    for (i = 0; i < num_entries; i++)--- 5806,5816 ----      }      /* Create the apuinfo header.  */    num_entries = apuinfo_list_length ();    bfd_put_32 (abfd, sizeof APUINFO_LABEL, buffer);!   bfd_put_32 (abfd, num_entries * 4, buffer + 4);    bfd_put_32 (abfd, 0x2, buffer + 8);    strcpy (buffer + 12, APUINFO_LABEL);      length = 20;    for (i = 0; i < num_entries; i++)Index: gas/config/tc-ppc.c===================================================================RCS file: /cvs/src/src/gas/config/tc-ppc.c,vretrieving revision 1.75diff -c -5 -p -r1.75 tc-ppc.c*** gas/config/tc-ppc.c18 Jun 2003 23:05:44 -00001.75--- gas/config/tc-ppc.c24 Jun 2003 03:30:03 -0000*************** ppc_cleanup ()*** 1340,1350 ****        p = frag_more (4);      md_number_to_chars (p, (valueT) 8, 4);        p = frag_more (4);!     md_number_to_chars (p, (valueT) ppc_apuinfo_num, 4);        p = frag_more (4);      md_number_to_chars (p, (valueT) 2, 4);        p = frag_more (8);--- 1340,1350 ----        p = frag_more (4);      md_number_to_chars (p, (valueT) 8, 4);        p = frag_more (4);!     md_number_to_chars (p, (valueT) ppc_apuinfo_num * 4, 4);        p = frag_more (4);      md_number_to_chars (p, (valueT) 2, 4);        p = frag_more (8);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav:[Date Prev] [Date Next][Thread Prev] [Thread Next]

[8]ページ先頭

©2009-2025 Movatter.jp