On 31/01/2010 22:32, Sébastien Lorquet wrote:

> as is generating garbage and ld and objdump are victims.

  Yep.  The section headers are full of nonsense.  The string table is present
and all the long section names are there, but all the section headers containt
"/1579551", which is way out of range.

  We need to debug what's going on in coff_write_object_contents() in the
assembler.  If you walk through this loop:

  for (current = abfd->sections;
       current != NULL;
       current = current->next)
    {
      struct internal_scnhdr section;
      bfd_boolean is_reloc_section = FALSE;


... checking the contents of 'current' each time, and then seeing what happens
to len and string_size here:

      /* Handle long section names as in PE.  This must be compatible
         with the code in coff_write_symbols and _bfd_coff_final_link.  */
      if (bfd_coff_long_section_names (abfd))
        {
          size_t len;

          len = strlen (current->name);
          if (len > SCNNMLEN)
            {
              [ ... more ... ]
              string_size += len + 1;
              long_section_names = TRUE;
            }
        }

... we should get some idea what's going wrong.

    cheers,
      DaveK


------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to