-/* Forward declarations */
-
-static bfd_boolean som_mkobject
- PARAMS ((bfd *));
-static const bfd_target * som_object_setup
- PARAMS ((bfd *, struct header *, struct som_exec_auxhdr *, unsigned long));
-static bfd_boolean setup_sections
- PARAMS ((bfd *, struct header *, unsigned long));
-static const bfd_target * som_object_p
- PARAMS ((bfd *));
-static bfd_boolean som_write_object_contents
- PARAMS ((bfd *));
-static bfd_boolean som_slurp_string_table
- PARAMS ((bfd *));
-static unsigned int som_slurp_symbol_table
- PARAMS ((bfd *));
-static long som_get_symtab_upper_bound
- PARAMS ((bfd *));
-static long som_canonicalize_reloc
- PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
-static long som_get_reloc_upper_bound
- PARAMS ((bfd *, sec_ptr));
-static unsigned int som_set_reloc_info
- PARAMS ((unsigned char *, unsigned int, arelent *, asection *,
- asymbol **, bfd_boolean));
-static bfd_boolean som_slurp_reloc_table
- PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
-static long som_get_symtab
- PARAMS ((bfd *, asymbol **));
-static asymbol * som_make_empty_symbol
- PARAMS ((bfd *));
-static void som_print_symbol
- PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
-static bfd_boolean som_new_section_hook
- PARAMS ((bfd *, asection *));
-static bfd_boolean som_bfd_copy_private_symbol_data
- PARAMS ((bfd *, asymbol *, bfd *, asymbol *));
-static bfd_boolean som_bfd_copy_private_section_data
- PARAMS ((bfd *, asection *, bfd *, asection *));
-static bfd_boolean som_bfd_copy_private_bfd_data
- PARAMS ((bfd *, bfd *));
-#define som_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data
-#define som_bfd_set_private_flags _bfd_generic_bfd_set_private_flags
-static bfd_boolean som_bfd_is_local_label_name
- PARAMS ((bfd *, const char *));
-static bfd_boolean som_set_section_contents
- PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
-static bfd_boolean som_get_section_contents
- PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
-static bfd_boolean som_set_arch_mach
- PARAMS ((bfd *, enum bfd_architecture, unsigned long));
-static bfd_boolean som_find_nearest_line
- PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
- const char **, unsigned int *));
-static void som_get_symbol_info
- PARAMS ((bfd *, asymbol *, symbol_info *));
-static asection * bfd_section_from_som_symbol
- PARAMS ((bfd *, struct symbol_dictionary_record *));
-static int log2
- PARAMS ((unsigned int));
-static bfd_reloc_status_type hppa_som_reloc
- PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static void som_initialize_reloc_queue
- PARAMS ((struct reloc_queue *));
-static void som_reloc_queue_insert
- PARAMS ((unsigned char *, unsigned int, struct reloc_queue *));
-static void som_reloc_queue_fix
- PARAMS ((struct reloc_queue *, unsigned int));
-static int som_reloc_queue_find
- PARAMS ((unsigned char *, unsigned int, struct reloc_queue *));
-static unsigned char * try_prev_fixup
- PARAMS ((bfd *, int *, unsigned char *, unsigned int, struct reloc_queue *));
-
-static unsigned char * som_reloc_skip
- PARAMS ((bfd *, unsigned int, unsigned char *, unsigned int *,
- struct reloc_queue *));
-static unsigned char * som_reloc_addend
- PARAMS ((bfd *, bfd_vma, unsigned char *, unsigned int *,
- struct reloc_queue *));
-static unsigned char * som_reloc_call
- PARAMS ((bfd *, unsigned char *, unsigned int *, arelent *, int,
- struct reloc_queue *));
-static unsigned long som_count_spaces
- PARAMS ((bfd *));
-static unsigned long som_count_subspaces
- PARAMS ((bfd *));
-static int compare_syms
- PARAMS ((const void *, const void *));
-static int compare_subspaces
- PARAMS ((const void *, const void *));
-static unsigned long som_compute_checksum
- PARAMS ((bfd *));
-static bfd_boolean som_prep_headers
- PARAMS ((bfd *));
-static int som_sizeof_headers
- PARAMS ((bfd *, bfd_boolean));
-static bfd_boolean som_finish_writing
- PARAMS ((bfd *));
-static bfd_boolean som_build_and_write_symbol_table
- PARAMS ((bfd *));
-static void som_prep_for_fixups
- PARAMS ((bfd *, asymbol **, unsigned long));
-static bfd_boolean som_write_fixups
- PARAMS ((bfd *, unsigned long, unsigned int *));
-static bfd_boolean som_write_space_strings
- PARAMS ((bfd *, unsigned long, unsigned int *));
-static bfd_boolean som_write_symbol_strings
- PARAMS ((bfd *, unsigned long, asymbol **, unsigned int, unsigned *,
- COMPUNIT *));
-static bfd_boolean som_begin_writing
- PARAMS ((bfd *));
-static reloc_howto_type * som_bfd_reloc_type_lookup
- PARAMS ((bfd *, bfd_reloc_code_real_type));
-static char som_section_type
- PARAMS ((const char *));
-static int som_decode_symclass
- PARAMS ((asymbol *));
-static bfd_boolean som_bfd_count_ar_symbols
- PARAMS ((bfd *, struct lst_header *, symindex *));
-
-static bfd_boolean som_bfd_fill_in_ar_symbols
- PARAMS ((bfd *, struct lst_header *, carsym **syms));
-static bfd_boolean som_slurp_armap
- PARAMS ((bfd *));
-static bfd_boolean som_write_armap
- PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
-static void som_bfd_derive_misc_symbol_info
- PARAMS ((bfd *, asymbol *, struct som_misc_symbol_info *));
-static bfd_boolean som_bfd_prep_for_ar_write
- PARAMS ((bfd *, unsigned int *, unsigned int *));
-static unsigned int som_bfd_ar_symbol_hash
- PARAMS ((asymbol *));
-static bfd_boolean som_bfd_ar_write_symbol_stuff
- PARAMS ((bfd *, unsigned int, unsigned int, struct lst_header,
- unsigned int));
-static bfd_boolean som_is_space
- PARAMS ((asection *));
-static bfd_boolean som_is_subspace
- PARAMS ((asection *));
-static bfd_boolean som_is_container
- PARAMS ((asection *, asection *));
-static bfd_boolean som_bfd_free_cached_info
- PARAMS ((bfd *));
-static bfd_boolean som_bfd_link_split_section
- PARAMS ((bfd *, asection *));
-