Convert unmaintained files over to ISO-C90 and fix formatting.

This commit is contained in:
Nick Clifton
2005-03-24 20:40:28 +00:00
parent 1acfb01b60
commit ea1562b345
57 changed files with 11273 additions and 13430 deletions

View File

@@ -2,22 +2,22 @@
Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000,
2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
This file is part of GAS, the GNU Assembler.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2,
or (at your option) any later version.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2,
or (at your option) any later version.
GAS is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the GNU General Public License for more details.
GAS is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GAS; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
You should have received a copy of the GNU General Public License
along with GAS; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
#define OBJ_HEADER "obj-aout.h"
@@ -29,20 +29,20 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "obstack.h"
#ifndef BFD_ASSEMBLER
/* in: segT out: N_TYPE bits */
/* in: segT out: N_TYPE bits. */
const short seg_N_TYPE[] =
{
N_ABS,
N_TEXT,
N_DATA,
N_BSS,
N_UNDF, /* unknown */
N_UNDF, /* error */
N_UNDF, /* expression */
N_UNDF, /* debug */
N_UNDF, /* ntv */
N_UNDF, /* ptv */
N_REGISTER, /* register */
N_UNDF, /* Unknown. */
N_UNDF, /* Error. */
N_UNDF, /* Expression. */
N_UNDF, /* Debug. */
N_UNDF, /* Ntv. */
N_UNDF, /* Ptv. */
N_REGISTER, /* Register. */
};
const segT N_TYPE_seg[N_TYPE + 2] =
@@ -60,51 +60,15 @@ const segT N_TYPE_seg[N_TYPE + 2] =
SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF,
SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF,
SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF,
SEG_REGISTER, /* dummy N_REGISTER for regs = 30 */
SEG_REGISTER, /* Dummy N_REGISTER for regs = 30. */
SEG_GOOF,
};
#endif
static void obj_aout_line PARAMS ((int));
static void obj_aout_weak PARAMS ((int));
static void obj_aout_type PARAMS ((int));
const pseudo_typeS aout_pseudo_table[] =
{
{"line", obj_aout_line, 0}, /* source code line number */
{"ln", obj_aout_line, 0}, /* coff line number that we use anyway */
{"weak", obj_aout_weak, 0}, /* mark symbol as weak. */
{"type", obj_aout_type, 0},
/* coff debug pseudos (ignored) */
{"def", s_ignore, 0},
{"dim", s_ignore, 0},
{"endef", s_ignore, 0},
{"ident", s_ignore, 0},
{"line", s_ignore, 0},
{"ln", s_ignore, 0},
{"scl", s_ignore, 0},
{"size", s_ignore, 0},
{"tag", s_ignore, 0},
{"val", s_ignore, 0},
{"version", s_ignore, 0},
{"optim", s_ignore, 0}, /* For sun386i cc (?) */
/* other stuff */
{"ABORT", s_abort, 0},
{NULL, NULL, 0} /* end sentinel */
}; /* aout_pseudo_table */
#ifdef BFD_ASSEMBLER
void
obj_aout_frob_symbol (sym, punt)
symbolS *sym;
int *punt ATTRIBUTE_UNUSED;
obj_aout_frob_symbol (symbolS *sym, int *punt ATTRIBUTE_UNUSED)
{
flagword flags;
asection *sec;
@@ -184,23 +148,18 @@ obj_aout_frob_symbol (sym, punt)
}
}
else
{
symbol_get_bfdsym (sym)->flags |= BSF_DEBUGGING;
}
symbol_get_bfdsym (sym)->flags |= BSF_DEBUGGING;
aout_symbol (symbol_get_bfdsym (sym))->type = type;
/* Double check weak symbols. */
if (S_IS_WEAK (sym))
{
if (S_IS_COMMON (sym))
as_bad (_("Symbol `%s' can not be both weak and common"),
S_GET_NAME (sym));
}
if (S_IS_WEAK (sym) && S_IS_COMMON (sym))
as_bad (_("Symbol `%s' can not be both weak and common"),
S_GET_NAME (sym));
}
void
obj_aout_frob_file_before_fix ()
obj_aout_frob_file_before_fix (void)
{
/* Relocation processing may require knowing the VMAs of the sections.
Since writing to a section will cause the BFD back end to compute the
@@ -208,15 +167,12 @@ obj_aout_frob_file_before_fix ()
bfd_byte b = 0;
bfd_boolean x = TRUE;
if (bfd_section_size (stdoutput, text_section) != 0)
{
x = bfd_set_section_contents (stdoutput, text_section, &b, (file_ptr) 0,
(bfd_size_type) 1);
}
x = bfd_set_section_contents (stdoutput, text_section, &b, (file_ptr) 0,
(bfd_size_type) 1);
else if (bfd_section_size (stdoutput, data_section) != 0)
{
x = bfd_set_section_contents (stdoutput, data_section, &b, (file_ptr) 0,
(bfd_size_type) 1);
}
x = bfd_set_section_contents (stdoutput, data_section, &b, (file_ptr) 0,
(bfd_size_type) 1);
assert (x);
}
@@ -224,16 +180,12 @@ obj_aout_frob_file_before_fix ()
/* Relocation. */
/*
* emit_relocations()
*
* Crawl along a fixS chain. Emit the segment's relocations.
*/
/** Crawl along a fixS chain. Emit the segment's relocations. */
void
obj_emit_relocations (where, fixP, segment_address_in_file)
char **where;
fixS *fixP; /* Fixup chain for this segment. */
relax_addressT segment_address_in_file;
obj_emit_relocations (char **where,
fixS *fixP, /* Fixup chain for this segment. */
relax_addressT segment_address_in_file)
{
for (; fixP; fixP = fixP->fx_next)
if (fixP->fx_done == 0)
@@ -264,14 +216,12 @@ obj_emit_relocations (where, fixP, segment_address_in_file)
}
#ifndef obj_header_append
/* Aout file generation & utilities */
/* Aout file generation & utilities. */
/* An AOUT header on disk is laid out in target byte order. */
void
obj_header_append (where, headers)
char **where;
object_headers *headers;
obj_header_append (char **where, object_headers *headers)
{
char *p;
@@ -302,9 +252,7 @@ obj_header_append (where, headers)
#endif /* ! defined (obj_header_append) */
void
obj_symbol_to_chars (where, symbolP)
char **where;
symbolS *symbolP;
obj_symbol_to_chars (char **where, symbolS *symbolP)
{
char *p = *where;
md_number_to_chars (p, S_GET_OFFSET (symbolP), 4);
@@ -320,9 +268,7 @@ obj_symbol_to_chars (where, symbolP)
}
void
obj_emit_symbols (where, symbol_rootP)
char **where;
symbolS *symbol_rootP;
obj_emit_symbols (char **where, symbolS *symbol_rootP)
{
symbolS *symbolP;
@@ -331,7 +277,7 @@ obj_emit_symbols (where, symbol_rootP)
{
/* Used to save the offset of the name. It is used to point
to the string in memory but must be a file offset. */
register char *temp;
char *temp;
temp = S_GET_NAME (symbolP);
S_SET_OFFSET (symbolP, symbolP->sy_name_offset);
@@ -362,21 +308,19 @@ obj_emit_symbols (where, symbol_rootP)
#endif /* ! BFD_ASSEMBLER */
static void
obj_aout_line (ignore)
int ignore ATTRIBUTE_UNUSED;
obj_aout_line (int ignore ATTRIBUTE_UNUSED)
{
/* Assume delimiter is part of expression.
BSD4.2 as fails with delightful bug, so we
are not being incompatible here. */
new_logical_line ((char *) NULL, (int) (get_absolute_expression ()));
demand_empty_rest_of_line ();
} /* obj_aout_line() */
}
/* Handle .weak. This is a GNU extension. */
static void
obj_aout_weak (ignore)
int ignore ATTRIBUTE_UNUSED;
obj_aout_weak (int ignore ATTRIBUTE_UNUSED)
{
char *name;
int c;
@@ -408,8 +352,7 @@ obj_aout_weak (ignore)
we can't parse it. */
static void
obj_aout_type (ignore)
int ignore ATTRIBUTE_UNUSED;
obj_aout_type (int ignore ATTRIBUTE_UNUSED)
{
char *name;
int c;
@@ -441,8 +384,7 @@ obj_aout_type (ignore)
#ifndef BFD_ASSEMBLER
void
obj_crawl_symbol_chain (headers)
object_headers *headers;
obj_crawl_symbol_chain (object_headers *headers)
{
symbolS *symbolP;
symbolS **symbolPP;
@@ -465,7 +407,7 @@ obj_crawl_symbol_chain (headers)
if (flag_readonly_data_in_text && (S_GET_SEGMENT (symbolP) == SEG_DATA))
{
S_SET_SEGMENT (symbolP, SEG_TEXT);
} /* if pushing data into text */
}
resolve_symbol_value (symbolP);
@@ -525,25 +467,21 @@ obj_crawl_symbol_chain (headers)
/* This warning should never get triggered any more.
Well, maybe if you're doing twisted things with
register names... */
{
as_bad (_("Local symbol %s never defined."), decode_local_label_name (S_GET_NAME (symbolP)));
} /* oops. */
as_bad (_("Local symbol %s never defined."),
decode_local_label_name (S_GET_NAME (symbolP)));
/* Unhook it from the chain */
*symbolPP = symbol_next (symbolP);
} /* if this symbol should be in the output */
} /* for each symbol */
}
}
H_SET_SYMBOL_TABLE_SIZE (headers, symbol_number);
}
/*
* Find strings by crawling along symbol table chain.
*/
/* Find strings by crawling along symbol table chain. */
void
obj_emit_strings (where)
char **where;
obj_emit_strings (char **where)
{
symbolS *symbolP;
@@ -551,11 +489,9 @@ obj_emit_strings (where)
*where += 4;
for (symbolP = symbol_rootP; symbolP; symbolP = symbol_next (symbolP))
{
if (S_GET_NAME (symbolP))
append (where, S_GET_NAME (symbolP),
(unsigned long) (strlen (S_GET_NAME (symbolP)) + 1));
} /* walk symbol chain */
if (S_GET_NAME (symbolP))
append (where, S_GET_NAME (symbolP),
(unsigned long) (strlen (S_GET_NAME (symbolP)) + 1));
}
#ifndef AOUT_VERSION
@@ -563,8 +499,7 @@ obj_emit_strings (where)
#endif
void
obj_pre_write_hook (headers)
object_headers *headers;
obj_pre_write_hook (object_headers *headers)
{
H_SET_DYNAMIC (headers, 0);
H_SET_VERSION (headers, AOUT_VERSION);
@@ -578,126 +513,135 @@ obj_pre_write_hook (headers)
/* Support for an AOUT emulation. */
static void aout_pop_insert PARAMS ((void));
static int obj_aout_s_get_other PARAMS ((symbolS *));
static void obj_aout_s_set_other PARAMS ((symbolS *, int));
static int obj_aout_s_get_desc PARAMS ((symbolS *));
static void obj_aout_s_set_desc PARAMS ((symbolS *, int));
static int obj_aout_s_get_type PARAMS ((symbolS *));
static void obj_aout_s_set_type PARAMS ((symbolS *, int));
static int obj_aout_separate_stab_sections PARAMS ((void));
static int obj_aout_sec_sym_ok_for_reloc PARAMS ((asection *));
static void obj_aout_process_stab PARAMS ((segT, int, const char *, int, int, int));
static void
aout_pop_insert ()
aout_pop_insert (void)
{
pop_insert (aout_pseudo_table);
}
static int
obj_aout_s_get_other (sym)
symbolS *sym;
obj_aout_s_get_other (symbolS *sym)
{
return aout_symbol (symbol_get_bfdsym (sym))->other;
}
static void
obj_aout_s_set_other (sym, o)
symbolS *sym;
int o;
obj_aout_s_set_other (symbolS *sym, int o)
{
aout_symbol (symbol_get_bfdsym (sym))->other = o;
}
static int
obj_aout_sec_sym_ok_for_reloc (sec)
asection *sec ATTRIBUTE_UNUSED;
obj_aout_sec_sym_ok_for_reloc (asection *sec ATTRIBUTE_UNUSED)
{
return obj_sec_sym_ok_for_reloc (sec);
}
static void
obj_aout_process_stab (seg, w, s, t, o, d)
segT seg ATTRIBUTE_UNUSED;
int w;
const char *s;
int t;
int o;
int d;
obj_aout_process_stab (segT seg ATTRIBUTE_UNUSED,
int w,
const char *s,
int t,
int o,
int d)
{
aout_process_stab (w, s, t, o, d);
}
static int
obj_aout_s_get_desc (sym)
symbolS *sym;
obj_aout_s_get_desc (symbolS *sym)
{
return aout_symbol (symbol_get_bfdsym (sym))->desc;
}
static void
obj_aout_s_set_desc (sym, d)
symbolS *sym;
int d;
obj_aout_s_set_desc (symbolS *sym, int d)
{
aout_symbol (symbol_get_bfdsym (sym))->desc = d;
}
static int
obj_aout_s_get_type (sym)
symbolS *sym;
obj_aout_s_get_type (symbolS *sym)
{
return aout_symbol (symbol_get_bfdsym (sym))->type;
}
static void
obj_aout_s_set_type (sym, t)
symbolS *sym;
int t;
obj_aout_s_set_type (symbolS *sym, int t)
{
aout_symbol (symbol_get_bfdsym (sym))->type = t;
}
static int
obj_aout_separate_stab_sections ()
obj_aout_separate_stab_sections (void)
{
return 0;
}
/* When changed, make sure these table entries match the single-format
definitions in obj-aout.h. */
const struct format_ops aout_format_ops =
{
bfd_target_aout_flavour,
1, /* dfl_leading_underscore */
0, /* emit_section_symbols */
0, /* begin */
0, /* app_file */
1, /* dfl_leading_underscore. */
0, /* emit_section_symbols. */
0, /* begin. */
0, /* app_file. */
obj_aout_frob_symbol,
0, /* frob_file */
0, /* frob_file_before_adjust */
0, /* frob_file. */
0, /* frob_file_before_adjust. */
obj_aout_frob_file_before_fix,
0, /* frob_file_after_relocs */
0, /* s_get_size */
0, /* s_set_size */
0, /* s_get_align */
0, /* s_set_align */
0, /* frob_file_after_relocs. */
0, /* s_get_size. */
0, /* s_set_size. */
0, /* s_get_align. */
0, /* s_set_align. */
obj_aout_s_get_other,
obj_aout_s_set_other,
obj_aout_s_get_desc,
obj_aout_s_set_desc,
obj_aout_s_get_type,
obj_aout_s_set_type,
0, /* copy_symbol_attributes */
0, /* generate_asm_lineno */
0, /* copy_symbol_attributes. */
0, /* generate_asm_lineno. */
obj_aout_process_stab,
obj_aout_separate_stab_sections,
0, /* init_stab_section */
0, /* init_stab_section. */
obj_aout_sec_sym_ok_for_reloc,
aout_pop_insert,
0, /* ecoff_set_ext */
0, /* read_begin_hook */
0 /* symbol_new_hook */
0, /* ecoff_set_ext. */
0, /* read_begin_hook. */
0 /* symbol_new_hook. */
};
#endif /* BFD_ASSEMBLER */
const pseudo_typeS aout_pseudo_table[] =
{
{"line", obj_aout_line, 0}, /* Source code line number. */
{"ln", obj_aout_line, 0}, /* COFF line number that we use anyway. */
{"weak", obj_aout_weak, 0}, /* Mark symbol as weak. */
{"type", obj_aout_type, 0},
/* coff debug pseudos (ignored) */
{"def", s_ignore, 0},
{"dim", s_ignore, 0},
{"endef", s_ignore, 0},
{"ident", s_ignore, 0},
{"line", s_ignore, 0},
{"ln", s_ignore, 0},
{"scl", s_ignore, 0},
{"size", s_ignore, 0},
{"tag", s_ignore, 0},
{"val", s_ignore, 0},
{"version", s_ignore, 0},
{"optim", s_ignore, 0}, /* For sun386i cc (?). */
/* other stuff */
{"ABORT", s_abort, 0},
{NULL, NULL, 0}
};