/* BFD back-end for mmo objects (MMIX-specific object-format).
- Copyright 2001, 2002, 2003, 2004
+ Copyright 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
Written by Hans-Peter Nilsson (hp@bitrange.com).
Infrastructure and other bits originally copied from srec.c and
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
/*
SECTION
particular input or caller; put such things into the bfd or elsewhere.
Look ma, no static per-invocation data! */
-static unsigned
+static
char valid_mmo_symbol_character_set[/* A-Z a-z (we assume consecutive
codes; sorry EBCDIC:ers!). */
+ 'Z' - 'A' + 1 + 'z' - 'a' + 1
static asection *
mmo_get_spec_section (bfd *abfd, int spec_data_number)
{
- bfd_byte *secname;
+ char *secname;
asection *sec;
bfd_byte buf[4];
unsigned int secname_length;
if (bfd_bread (secname + i * 4, 4, abfd) != 4)
goto format_error_free;
- if (secname[i * 4] == LOP)
+ if (secname[i * 4] == (char) LOP)
{
/* A bit of overkill, but we handle char 0x98 in a section name,
and recognize misparsing. */
rsec
= bfd_make_section_old_way (abfd,
MMIX_REG_CONTENTS_SECTION_NAME);
+ rsec->flags |= SEC_LINKER_CREATED;
rsec->vma = z * 8;
loc = mmo_get_loc (rsec, z * 8, (255 - z) * 8);
bfd_put_64 (abfd, first_octa, loc);
{
c->section
= bfd_make_section_old_way (abfd, MMIX_REG_SECTION_NAME);
+ c->section->flags |= SEC_LINKER_CREATED;
}
else
{
mmo_write_tetra_raw (abfd, LOP_SPEC_SECTION);
mmo_write_tetra (abfd, (strlen (sec->name) + 3) / 4);
- mmo_write_chunk (abfd, sec->name, strlen (sec->name));
+ mmo_write_chunk (abfd, (bfd_byte *) sec->name, strlen (sec->name));
mmo_flush_chunk (abfd);
/* FIXME: We can get debug sections (.debug_line & Co.) with a section
flag still having SEC_RELOC set. Investigate. This might be true
/* FIXME: We can do better on this one, if we have a dwarf2 .debug_line
section or if MMO line numbers are implemented. */
#define mmo_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define mmo_find_inliner_info _bfd_nosymbols_find_inliner_info
#define mmo_make_empty_symbol _bfd_generic_make_empty_symbol
#define mmo_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
#define mmo_read_minisymbols _bfd_generic_read_minisymbols