X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Faout-tic30.c;h=222d1f0e30d74c57bcc081cfc9170d4610d0fd8a;hb=1484644d3597a98be824220ca290de84408eeb3f;hp=0feb99decb16f45c3a0a6253ea6bc52836e972f0;hpb=4ab527b0538fcb65673a93dc775c39a2e7ccb6d7;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/aout-tic30.c b/bfd/aout-tic30.c index 0feb99decb..222d1f0e30 100644 --- a/bfd/aout-tic30.c +++ b/bfd/aout-tic30.c @@ -1,13 +1,12 @@ /* BFD back-end for TMS320C30 a.out binaries. - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 - Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au) This file is part of BFD, the Binary File Descriptor library. This program 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 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -22,10 +21,10 @@ #define TARGET_IS_BIG_ENDIAN_P #define N_HEADER_IN_TEXT(x) 1 -#define TEXT_START_ADDR 1024 -#define TARGET_PAGE_SIZE 128 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#define DEFAULT_ARCH bfd_arch_tic30 +#define TEXT_START_ADDR 1024 +#define TARGET_PAGE_SIZE 128 +#define SEGMENT_SIZE TARGET_PAGE_SIZE +#define DEFAULT_ARCH bfd_arch_tic30 #define ARCH_SIZE 32 /* Do not "beautify" the CONCAT* macro args. Traditional C will not @@ -35,8 +34,8 @@ #define TARGETNAME "a.out-tic30" #define NAME(x,y) CONCAT3 (tic30_aout,_32_,y) -#include "bfd.h" #include "sysdep.h" +#include "bfd.h" #include "libaout.h" #include "aout/aout64.h" #include "aout/stab_gnu.h" @@ -44,11 +43,11 @@ #define MY_reloc_howto(BFD, REL, IN, EX, PC) tic30_aout_reloc_howto (BFD, REL, & IN, & EX, & PC) -#define MY_final_link_relocate tic30_aout_final_link_relocate -#define MY_object_p tic30_aout_object_p -#define MY_mkobject NAME (aout,mkobject) +#define MY_final_link_relocate tic30_aout_final_link_relocate +#define MY_object_p tic30_aout_object_p +#define MY_mkobject NAME (aout,mkobject) #define MY_write_object_contents tic30_aout_write_object_contents -#define MY_set_sizes tic30_aout_set_sizes +#define MY_set_sizes tic30_aout_set_sizes #ifndef MY_exec_hdr_flags #define MY_exec_hdr_flags 1 @@ -188,7 +187,7 @@ tic30_aout_fix_16 (bfd *abfd, bfd_vma relocation; /* Make sure that the symbol's section is defined. */ - if (symbol->section == &bfd_und_section && (symbol->flags & BSF_WEAK) == 0) + if (bfd_is_und_section (symbol->section) && (symbol->flags & BSF_WEAK) == 0) return output_bfd ? bfd_reloc_ok : bfd_reloc_undefined; /* Get the size of the input section and turn it into the TMS320C30 32-bit address format. */ @@ -213,7 +212,7 @@ tic30_aout_fix_32 (bfd *abfd, bfd_vma relocation; /* Make sure that the symbol's section is defined. */ - if (symbol->section == &bfd_und_section && (symbol->flags & BSF_WEAK) == 0) + if (bfd_is_und_section (symbol->section) && (symbol->flags & BSF_WEAK) == 0) return output_bfd ? bfd_reloc_ok : bfd_reloc_undefined; /* Get the size of the input section and turn it into the TMS320C30 32-bit address format. */ @@ -270,6 +269,23 @@ tic30_aout_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, } } +static reloc_howto_type * +tic30_aout_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, + const char *r_name) +{ + unsigned int i; + + for (i = 0; + i < (sizeof (tic30_aout_howto_table) + / sizeof (tic30_aout_howto_table[0])); + i++) + if (tic30_aout_howto_table[i].name != NULL + && strcasecmp (tic30_aout_howto_table[i].name, r_name) == 0) + return &tic30_aout_howto_table[i]; + + return NULL; +} + static reloc_howto_type * tic30_aout_reloc_howto (bfd *abfd, struct reloc_std_external *relocs, @@ -279,7 +295,7 @@ tic30_aout_reloc_howto (bfd *abfd, { unsigned int r_length; unsigned int r_pcrel_done; - int index; + int howto_index; *r_pcrel = 0; if (bfd_header_big_endian (abfd)) @@ -296,8 +312,8 @@ tic30_aout_reloc_howto (bfd *abfd, r_pcrel_done = (0 != (relocs->r_type[0] & RELOC_STD_BITS_PCREL_LITTLE)); r_length = ((relocs->r_type[0] & RELOC_STD_BITS_LENGTH_LITTLE) >> RELOC_STD_BITS_LENGTH_SH_LITTLE); } - index = r_length + 4 * r_pcrel_done; - return tic30_aout_howto_table + index; + howto_index = r_length + 4 * r_pcrel_done; + return tic30_aout_howto_table + howto_index; } /* These macros will get 24-bit values from the bfd definition. @@ -308,14 +324,14 @@ tic30_aout_reloc_howto (bfd *abfd, (bfd_get_8 (BFD, ADDR + 2) ) #define bfd_putb_24(BFD,DATA,ADDR) \ - bfd_put_8 (BFD, (bfd_byte) ((DATA >> 16) & 0xFF), ADDR ); \ + bfd_put_8 (BFD, (bfd_byte) ((DATA >> 16) & 0xFF), ADDR ); \ bfd_put_8 (BFD, (bfd_byte) ((DATA >> 8) & 0xFF), ADDR + 1); \ - bfd_put_8 (BFD, (bfd_byte) ( DATA & 0xFF), ADDR + 2) + bfd_put_8 (BFD, (bfd_byte) ( DATA & 0xFF), ADDR + 2) /* Set parameters about this a.out file that are machine-dependent. This routine is called from some_aout_object_p just before it returns. */ -static const bfd_target * +static bfd_cleanup tic30_aout_callback (bfd *abfd) { struct internal_exec *execp = exec_hdr (abfd); @@ -323,32 +339,32 @@ tic30_aout_callback (bfd *abfd) unsigned long arch_align; /* Calculate the file positions of the parts of a newly read aout header. */ - obj_textsec (abfd)->size = N_TXTSIZE (*execp); + obj_textsec (abfd)->size = N_TXTSIZE (execp); /* The virtual memory addresses of the sections. */ - obj_textsec (abfd)->vma = N_TXTADDR (*execp); - obj_datasec (abfd)->vma = N_DATADDR (*execp); - obj_bsssec (abfd)->vma = N_BSSADDR (*execp); + obj_textsec (abfd)->vma = N_TXTADDR (execp); + obj_datasec (abfd)->vma = N_DATADDR (execp); + obj_bsssec (abfd)->vma = N_BSSADDR (execp); obj_textsec (abfd)->lma = obj_textsec (abfd)->vma; obj_datasec (abfd)->lma = obj_datasec (abfd)->vma; obj_bsssec (abfd)->lma = obj_bsssec (abfd)->vma; /* The file offsets of the sections. */ - obj_textsec (abfd)->filepos = N_TXTOFF (*execp); - obj_datasec (abfd)->filepos = N_DATOFF (*execp); + obj_textsec (abfd)->filepos = N_TXTOFF (execp); + obj_datasec (abfd)->filepos = N_DATOFF (execp); /* The file offsets of the relocation info. */ - obj_textsec (abfd)->rel_filepos = N_TRELOFF (*execp); - obj_datasec (abfd)->rel_filepos = N_DRELOFF (*execp); + obj_textsec (abfd)->rel_filepos = N_TRELOFF (execp); + obj_datasec (abfd)->rel_filepos = N_DRELOFF (execp); /* The file offsets of the string table and symbol table. */ - obj_sym_filepos (abfd) = N_SYMOFF (*execp); - obj_str_filepos (abfd) = N_STROFF (*execp); + obj_sym_filepos (abfd) = N_SYMOFF (execp); + obj_str_filepos (abfd) = N_STROFF (execp); /* Determine the architecture and machine type of the object file. */ #ifdef SET_ARCH_MACH - SET_ARCH_MACH (abfd, *execp); + SET_ARCH_MACH (abfd, execp); #else bfd_default_set_arch_mach (abfd, DEFAULT_ARCH, 0L); #endif @@ -372,7 +388,7 @@ tic30_aout_callback (bfd *abfd) obj_datasec (abfd)->alignment_power = arch_align_power; obj_bsssec (abfd)->alignment_power = arch_align_power; } - return abfd->xvec; + return _bfd_no_cleanup; } static bfd_reloc_status_type @@ -531,13 +547,13 @@ tic30_aout_final_link_relocate (reloc_howto_type *howto, /* Finish up the reading of an a.out file header. */ -static const bfd_target * +static bfd_cleanup tic30_aout_object_p (bfd *abfd) { struct external_exec exec_bytes; /* Raw exec header from file. */ struct internal_exec exec; /* Cleaned-up exec header. */ - const bfd_target *target; - bfd_size_type amt = EXEC_BYTES_SIZE; + bfd_cleanup cleanup; + size_t amt = EXEC_BYTES_SIZE; if (bfd_bread (& exec_bytes, amt, abfd) != amt) { @@ -552,10 +568,10 @@ tic30_aout_object_p (bfd *abfd) exec.a_info = H_GET_32 (abfd, exec_bytes.e_info); #endif /* SWAP_MAGIC */ - if (N_BADMAG (exec)) + if (N_BADMAG (&exec)) return 0; #ifdef MACHTYPE_OK - if (!(MACHTYPE_OK (N_MACHTYPE (exec)))) + if (!(MACHTYPE_OK (N_MACHTYPE (&exec)))) return 0; #endif @@ -566,7 +582,7 @@ tic30_aout_object_p (bfd *abfd) exec.a_info = SWAP_MAGIC (exec_bytes.e_info); #endif - target = NAME (aout, some_aout_object_p) (abfd, &exec, tic30_aout_callback); + cleanup = NAME (aout, some_aout_object_p) (abfd, &exec, tic30_aout_callback); #ifdef ENTRY_CAN_BE_ZERO /* The NEWSOS3 entry-point is/was 0, which (amongst other lossage) @@ -587,7 +603,7 @@ tic30_aout_object_p (bfd *abfd) } #endif - return target; + return cleanup; } /* Copy private section data. This actually does nothing with the @@ -620,11 +636,8 @@ tic30_aout_write_object_contents (bfd *abfd) obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; { - bfd_size_type text_size; /* Dummy vars. */ - file_ptr text_end; - if (adata (abfd).magic == undecided_magic) - NAME (aout, adjust_sizes_and_vmas) (abfd, &text_size, &text_end); + NAME (aout, adjust_sizes_and_vmas) (abfd); execp->a_syms = bfd_get_symcount (abfd) * EXTERNAL_NLIST_SIZE; execp->a_entry = bfd_get_start_address (abfd); @@ -648,19 +661,19 @@ tic30_aout_write_object_contents (bfd *abfd) if (bfd_get_outsymbols (abfd) != (asymbol **) NULL && bfd_get_symcount (abfd) != 0) { - if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (*execp)), SEEK_SET) != 0) + if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (execp)), SEEK_SET) != 0) return FALSE; if (!NAME (aout, write_syms) (abfd)) return FALSE; } - if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (*execp)), SEEK_SET) != 0) + if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (execp)), SEEK_SET) != 0) return FALSE; if (!NAME (aout, squirt_out_relocs) (abfd, obj_textsec (abfd))) return FALSE; - if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*execp)), SEEK_SET) != 0) + if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (execp)), SEEK_SET) != 0) return FALSE; if (!NAME (aout, squirt_out_relocs) (abfd, obj_datasec (abfd))) return FALSE; @@ -683,7 +696,7 @@ MY_final_link_callback (bfd *abfd, *ptreloff = obj_datasec (abfd)->filepos + execp->a_data; *pdreloff = *ptreloff + execp->a_trsize; - *psymoff = *pdreloff + execp->a_drsize;; + *psymoff = *pdreloff + execp->a_drsize; } #endif @@ -697,53 +710,87 @@ static bfd_boolean MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) { struct internal_exec *execp = exec_hdr (abfd); + asection *objsym_section; file_ptr pos; bfd_vma vma = 0; - int pad; /* Set the executable header size to 0, as we don't want one for an - output. */ + output. FIXME: Really? tic30_aout_object_p doesn't accept such + an executable! */ adata (abfd).exec_bytes_size = 0; + pos = adata (abfd).exec_bytes_size; + /* ??? Why are we looking at create_object_symbols_section? */ + objsym_section = info->create_object_symbols_section; + if (objsym_section != NULL) + vma = objsym_section->vma; + /* Text. */ - vma = info->create_object_symbols_section->vma; - pos += vma; - obj_textsec (abfd)->filepos = pos; - obj_textsec (abfd)->vma = vma; - obj_textsec (abfd)->user_set_vma = 1; - pos += obj_textsec (abfd)->size; - vma += obj_textsec (abfd)->size; + if (obj_textsec (abfd) != NULL) + { + pos += vma; + obj_textsec (abfd)->filepos = pos; + obj_textsec (abfd)->vma = vma; + obj_textsec (abfd)->user_set_vma = 1; + execp->a_text = obj_textsec (abfd)->size; + pos += obj_textsec (abfd)->size; + vma += obj_textsec (abfd)->size; + } /* Data. */ - if (abfd->flags & D_PAGED) + if (obj_datasec (abfd) != NULL) { - if (info->create_object_symbols_section->next->vma > 0) - obj_datasec (abfd)->vma = info->create_object_symbols_section->next->vma; + if (abfd->flags & D_PAGED) + { + if (objsym_section != NULL + && objsym_section->next != NULL + && objsym_section->next->vma != 0) + obj_datasec (abfd)->vma = objsym_section->next->vma; + else + obj_datasec (abfd)->vma = BFD_ALIGN (vma, adata (abfd).segment_size); + } else - obj_datasec (abfd)->vma = BFD_ALIGN (vma, adata (abfd).segment_size); - } - else - obj_datasec (abfd)->vma = BFD_ALIGN (vma, 4); + obj_datasec (abfd)->vma = BFD_ALIGN (vma, 4); + + if (obj_datasec (abfd)->vma < vma) + obj_datasec (abfd)->vma = BFD_ALIGN (vma, 4); - if (obj_datasec (abfd)->vma < vma) - obj_datasec (abfd)->vma = BFD_ALIGN (vma, 4); + pos += obj_datasec (abfd)->vma - vma; + obj_datasec (abfd)->filepos = pos; + obj_datasec (abfd)->user_set_vma = 1; - obj_datasec (abfd)->user_set_vma = 1; - vma = obj_datasec (abfd)->vma; - obj_datasec (abfd)->filepos = vma + adata (abfd).exec_bytes_size; - execp->a_text = vma - obj_textsec (abfd)->vma; - obj_textsec (abfd)->size = execp->a_text; + vma = obj_datasec (abfd)->vma; + if (obj_textsec (abfd) != NULL) + { + execp->a_text = vma - obj_textsec (abfd)->vma; + obj_textsec (abfd)->size = execp->a_text; + } + execp->a_data = obj_datasec (abfd)->size; + vma += obj_datasec (abfd)->size; + } /* Since BSS follows data immediately, see if it needs alignment. */ - vma += obj_datasec (abfd)->size; - pad = align_power (vma, obj_bsssec (abfd)->alignment_power) - vma; - obj_datasec (abfd)->size += pad; - pos += obj_datasec (abfd)->size; - execp->a_data = obj_datasec (abfd)->size; + if (obj_bsssec (abfd) != NULL) + { + int pad; - /* BSS. */ - obj_bsssec (abfd)->vma = vma; - obj_bsssec (abfd)->user_set_vma = 1; + pad = align_power (vma, obj_bsssec (abfd)->alignment_power) - vma; + if (obj_datasec (abfd) != NULL) + { + obj_datasec (abfd)->size += pad; + execp->a_data += pad; + } + else if (obj_textsec (abfd) != NULL) + { + obj_textsec (abfd)->size += pad; + execp->a_text += pad; + } + + /* BSS. */ + vma += pad; + obj_bsssec (abfd)->vma = vma; + obj_bsssec (abfd)->user_set_vma = 1; + } /* We are fully resized, so don't readjust in final_link. */ adata (abfd).magic = z_magic; @@ -815,21 +862,24 @@ tic30_aout_set_arch_mach (bfd *abfd, _bfd_archive_bsd_construct_extended_name_table #endif #ifndef MY_write_armap -#define MY_write_armap bsd_write_armap +#define MY_write_armap _bfd_bsd_write_armap #endif #ifndef MY_read_ar_hdr #define MY_read_ar_hdr _bfd_generic_read_ar_hdr #endif +#ifndef MY_write_ar_hdr +#define MY_write_ar_hdr _bfd_generic_write_ar_hdr +#endif #ifndef MY_truncate_arname #define MY_truncate_arname bfd_bsd_truncate_arname #endif #ifndef MY_update_armap_timestamp -#define MY_update_armap_timestamp _bfd_archive_bsd_update_armap_timestamp +#define MY_update_armap_timestamp _bfd_archive_bsd_update_armap_timestamp #endif /* No core file defined here -- configure in trad-core.c separately. */ #ifndef MY_core_file_failing_command -#define MY_core_file_failing_command _bfd_nocore_core_file_failing_command +#define MY_core_file_failing_command _bfd_nocore_core_file_failing_command #endif #ifndef MY_core_file_failing_signal #define MY_core_file_failing_signal _bfd_nocore_core_file_failing_signal @@ -838,19 +888,21 @@ tic30_aout_set_arch_mach (bfd *abfd, #define MY_core_file_matches_executable_p \ _bfd_nocore_core_file_matches_executable_p #endif +#ifndef MY_core_file_pid +#define MY_core_file_pid _bfd_nocore_core_file_pid +#endif #ifndef MY_core_file_p #define MY_core_file_p _bfd_dummy_target #endif #ifndef MY_bfd_debug_info_start -#define MY_bfd_debug_info_start bfd_void +#define MY_bfd_debug_info_start _bfd_void_bfd #endif #ifndef MY_bfd_debug_info_end -#define MY_bfd_debug_info_end bfd_void +#define MY_bfd_debug_info_end _bfd_void_bfd #endif #ifndef MY_bfd_debug_info_accumulate -#define MY_bfd_debug_info_accumulate \ - (void (*) (bfd*, struct bfd_section *)) bfd_void +#define MY_bfd_debug_info_accumulate _bfd_void_bfd_asection #endif #ifndef MY_core_file_failing_command @@ -886,6 +938,9 @@ tic30_aout_set_arch_mach (bfd *abfd, #ifndef MY_canonicalize_reloc #define MY_canonicalize_reloc NAME (aout, canonicalize_reloc) #endif +#ifndef MY_set_reloc +#define MY_set_reloc _bfd_generic_set_reloc +#endif #ifndef MY_make_empty_symbol #define MY_make_empty_symbol NAME (aout, make_empty_symbol) #endif @@ -895,6 +950,10 @@ tic30_aout_set_arch_mach (bfd *abfd, #ifndef MY_get_symbol_info #define MY_get_symbol_info NAME (aout, get_symbol_info) #endif +#ifndef MY_get_symbol_version_string +#define MY_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string +#endif #ifndef MY_get_lineno #define MY_get_lineno NAME (aout, get_lineno) #endif @@ -904,6 +963,9 @@ tic30_aout_set_arch_mach (bfd *abfd, #ifndef MY_find_nearest_line #define MY_find_nearest_line NAME (aout, find_nearest_line) #endif +#ifndef MY_find_line +#define MY_find_line _bfd_nosymbols_find_line +#endif #ifndef MY_find_inliner_info #define MY_find_inliner_info _bfd_nosymbols_find_inliner_info #endif @@ -920,12 +982,18 @@ tic30_aout_set_arch_mach (bfd *abfd, #ifndef MY_bfd_gc_sections #define MY_bfd_gc_sections bfd_generic_gc_sections #endif +#ifndef MY_bfd_lookup_section_flags +#define MY_bfd_lookup_section_flags bfd_generic_lookup_section_flags +#endif #ifndef MY_bfd_merge_sections #define MY_bfd_merge_sections bfd_generic_merge_sections #endif #ifndef MY_bfd_is_group_section #define MY_bfd_is_group_section bfd_generic_is_group_section #endif +#ifndef MY_bfd_group_name +#define MY_bfd_group_name bfd_generic_group_name +#endif #ifndef MY_bfd_discard_group #define MY_bfd_discard_group bfd_generic_discard_group #endif @@ -933,9 +1001,21 @@ tic30_aout_set_arch_mach (bfd *abfd, #define MY_section_already_linked \ _bfd_generic_section_already_linked #endif +#ifndef MY_bfd_define_common_symbol +#define MY_bfd_define_common_symbol bfd_generic_define_common_symbol +#endif +#ifndef MY_bfd_link_hide_symbol +#define MY_bfd_link_hide_symbol _bfd_generic_link_hide_symbol +#endif +#ifndef MY_bfd_define_start_stop +#define MY_bfd_define_start_stop bfd_generic_define_start_stop +#endif #ifndef MY_bfd_reloc_type_lookup #define MY_bfd_reloc_type_lookup tic30_aout_reloc_type_lookup #endif +#ifndef MY_bfd_reloc_name_lookup +#define MY_bfd_reloc_name_lookup tic30_aout_reloc_name_lookup +#endif #ifndef MY_bfd_make_debug_symbol #define MY_bfd_make_debug_symbol 0 #endif @@ -948,19 +1028,24 @@ tic30_aout_set_arch_mach (bfd *abfd, #ifndef MY_bfd_link_hash_table_create #define MY_bfd_link_hash_table_create NAME (aout, link_hash_table_create) #endif -#ifndef MY_bfd_link_hash_table_free -#define MY_bfd_link_hash_table_free _bfd_generic_link_hash_table_free -#endif #ifndef MY_bfd_link_add_symbols #define MY_bfd_link_add_symbols NAME (aout, link_add_symbols) #endif #ifndef MY_bfd_link_just_syms #define MY_bfd_link_just_syms _bfd_generic_link_just_syms #endif +#ifndef MY_bfd_copy_link_hash_symbol_type +#define MY_bfd_copy_link_hash_symbol_type \ + _bfd_generic_copy_link_hash_symbol_type +#endif #ifndef MY_bfd_link_split_section #define MY_bfd_link_split_section _bfd_generic_link_split_section #endif +#ifndef MY_bfd_link_check_relocs +#define MY_bfd_link_check_relocs _bfd_generic_link_check_relocs +#endif + #ifndef MY_bfd_copy_private_bfd_data #define MY_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data #endif @@ -990,8 +1075,7 @@ tic30_aout_set_arch_mach (bfd *abfd, #endif #ifndef MY_bfd_is_target_special_symbol -#define MY_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define MY_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #endif #ifndef MY_bfd_free_cached_info @@ -1046,18 +1130,31 @@ const bfd_target tic30_aout_vec = MY_symbol_leading_char, AR_PAD_CHAR, /* AR_pad_char. */ 15, /* AR_max_namelen. */ + 0, /* match priority. */ bfd_getb64, bfd_getb_signed_64, bfd_putb64, bfd_getb32, bfd_getb_signed_32, bfd_putb32, bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ bfd_getb64, bfd_getb_signed_64, bfd_putb64, bfd_getb32, bfd_getb_signed_32, bfd_putb32, bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Headers. */ - {_bfd_dummy_target, MY_object_p, /* bfd_check_format. */ - bfd_generic_archive_p, MY_core_file_p}, - {bfd_false, MY_mkobject, /* bfd_set_format. */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, MY_write_object_contents, /* bfd_write_contents. */ - _bfd_write_archive_contents, bfd_false}, + { /* bfd_check_format. */ + _bfd_dummy_target, + MY_object_p, + bfd_generic_archive_p, + MY_core_file_p + }, + { /* bfd_set_format. */ + _bfd_bool_bfd_false_error, + MY_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents. */ + _bfd_bool_bfd_false_error, + MY_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (MY), BFD_JUMP_TABLE_COPY (MY),