/* BFD back-end for VERSAdos-E objects.
- Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002
+ Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
/*
SUBSECTION
- VERSAdos-E relocateable object file format
+ VERSAdos-E relocatable object file format
DESCRIPTION
- This module supports reading of VERSAdos relocateable
+ This module supports reading of VERSAdos relocatable
object files.
A VERSAdos file looks like contains
- o Indentification Record
+ o Identification Record
o External Symbol Definition Record
- o Object Text Recrod
+ o Object Text Record
o End Record
*/
static bfd_boolean versados_get_section_contents
PARAMS ((bfd *, asection *, void *, file_ptr, bfd_size_type));
static bfd_boolean versados_set_section_contents
- PARAMS ((bfd *, sec_ptr, void *, file_ptr, bfd_size_type));
+ PARAMS ((bfd *, sec_ptr, const void *, file_ptr, bfd_size_type));
static int versados_sizeof_headers PARAMS ((bfd *, bfd_boolean));
static long int versados_get_symtab_upper_bound PARAMS ((bfd *));
-static long int versados_get_symtab PARAMS ((bfd *, asymbol **));
+static long int versados_canonicalize_symtab PARAMS ((bfd *, asymbol **));
static void versados_get_symbol_info
PARAMS ((bfd *, asymbol *, symbol_info *));
static void versados_print_symbol
case ESD_STD_REL_SEC:
case ESD_SHRT_REL_SEC:
{
- sec->_raw_size = get_4 (&ptr);
+ sec->size = get_4 (&ptr);
sec->flags |= SEC_ALLOC;
}
break;
EDATA (abfd, otr->esdid - 1).section->relocation + rn;
n->address = dst_idx;
- n->sym_ptr_ptr = (asymbol **) esdid;
+ n->sym_ptr_ptr = (asymbol **) (size_t) esdid;
n->addend = 0;
n->howto = versados_howto_table + ((j & 1) * 2) + (sizeinwords - 1);
}
else
{
need_contents = 1;
- if (dst_idx < esdid->section->_raw_size)
+ if (dst_idx < esdid->section->size)
if (pass == 2)
{
/* absolute code, comes in 16 bit lumps */
if (!contents && need_contents)
{
- bfd_size_type size = esdid->section->_raw_size;
+ bfd_size_type size = esdid->section->size;
esdid->contents = (unsigned char *) bfd_alloc (abfd, size);
}
}
versados_set_section_contents (abfd, section, location, offset, bytes_to_do)
bfd *abfd ATTRIBUTE_UNUSED;
sec_ptr section ATTRIBUTE_UNUSED;
- PTR location ATTRIBUTE_UNUSED;
+ const PTR location ATTRIBUTE_UNUSED;
file_ptr offset ATTRIBUTE_UNUSED;
bfd_size_type bytes_to_do ATTRIBUTE_UNUSED;
{
/* Return the symbol table. */
static long
-versados_get_symtab (abfd, alocation)
+versados_canonicalize_symtab (abfd, alocation)
bfd *abfd;
asymbol **alocation;
{
/* translate from indexes to symptr ptrs */
for (count = 0; count < section->reloc_count; count++)
{
- int esdid = (int) src[count].sym_ptr_ptr;
+ int esdid = (int) (size_t) src[count].sym_ptr_ptr;
if (esdid == 0)
{
#define versados_bfd_free_cached_info _bfd_generic_bfd_free_cached_info
#define versados_new_section_hook _bfd_generic_new_section_hook
+#define versados_bfd_is_target_special_symbol \
+ ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
#define versados_bfd_is_local_label_name bfd_generic_is_local_label_name
#define versados_get_lineno _bfd_nosymbols_get_lineno
#define versados_find_nearest_line _bfd_nosymbols_find_nearest_line
#define versados_bfd_relax_section bfd_generic_relax_section
#define versados_bfd_gc_sections bfd_generic_gc_sections
#define versados_bfd_merge_sections bfd_generic_merge_sections
+#define versados_bfd_is_group_section bfd_generic_is_group_section
#define versados_bfd_discard_group bfd_generic_discard_group
+#define versados_section_already_linked \
+ _bfd_generic_section_already_linked
#define versados_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
#define versados_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
#define versados_bfd_link_add_symbols _bfd_generic_link_add_symbols