00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "aout/aout64.h"
00027 #include "aout/stab_gnu.h"
00028 #include "aout/ar.h"
00029
00030
00031 #ifndef SEGMENT_SIZE
00032 #define SEGMENT_SIZE TARGET_PAGE_SIZE
00033 #endif
00034
00035 extern reloc_howto_type * NAME(aout,reloc_type_lookup)
00036 PARAMS ((bfd *, bfd_reloc_code_real_type));
00037
00038
00039
00040 #ifndef MY_callback
00041
00042 static const bfd_target *MY(callback) PARAMS ((bfd *));
00043
00044 static const bfd_target *
00045 MY(callback) (abfd)
00046 bfd *abfd;
00047 {
00048 struct internal_exec *execp = exec_hdr (abfd);
00049 unsigned int arch_align_power;
00050 unsigned long arch_align;
00051
00052
00053 obj_textsec (abfd)->size = N_TXTSIZE(*execp);
00054
00055
00056 obj_textsec (abfd)->vma = N_TXTADDR(*execp);
00057 obj_datasec (abfd)->vma = N_DATADDR(*execp);
00058 obj_bsssec (abfd)->vma = N_BSSADDR(*execp);
00059
00060
00061
00062
00063 if (aout_backend_info (abfd)->entry_is_text_address
00064 && execp->a_entry > obj_textsec (abfd)->vma)
00065 {
00066 bfd_vma adjust;
00067
00068 adjust = execp->a_entry - obj_textsec (abfd)->vma;
00069
00070 adjust &= ~(TARGET_PAGE_SIZE - 1);
00071 obj_textsec (abfd)->vma += adjust;
00072 obj_datasec (abfd)->vma += adjust;
00073 obj_bsssec (abfd)->vma += adjust;
00074 }
00075
00076
00077 obj_textsec (abfd)->lma = obj_textsec (abfd)->vma;
00078 obj_datasec (abfd)->lma = obj_datasec (abfd)->vma;
00079 obj_bsssec (abfd)->lma = obj_bsssec (abfd)->vma;
00080
00081
00082 obj_textsec (abfd)->filepos = N_TXTOFF (*execp);
00083 obj_datasec (abfd)->filepos = N_DATOFF (*execp);
00084
00085
00086 obj_textsec (abfd)->rel_filepos = N_TRELOFF(*execp);
00087 obj_datasec (abfd)->rel_filepos = N_DRELOFF(*execp);
00088
00089
00090 obj_sym_filepos (abfd) = N_SYMOFF (*execp);
00091 obj_str_filepos (abfd) = N_STROFF (*execp);
00092
00093
00094 #ifdef SET_ARCH_MACH
00095 SET_ARCH_MACH (abfd, *execp);
00096 #else
00097 bfd_default_set_arch_mach (abfd, DEFAULT_ARCH, 0);
00098 #endif
00099
00100
00101
00102
00103
00104 obj_textsec (abfd)->reloc_count =
00105 execp->a_trsize / obj_reloc_entry_size (abfd);
00106 obj_datasec (abfd)->reloc_count =
00107 execp->a_drsize / obj_reloc_entry_size (abfd);
00108
00109
00110
00111
00112
00113
00114
00115 arch_align_power = bfd_get_arch_info (abfd)->section_align_power;
00116 arch_align = 1 << arch_align_power;
00117 if ((BFD_ALIGN (obj_textsec (abfd)->size, arch_align)
00118 == obj_textsec (abfd)->size)
00119 && (BFD_ALIGN (obj_datasec (abfd)->size, arch_align)
00120 == obj_datasec (abfd)->size)
00121 && (BFD_ALIGN (obj_bsssec (abfd)->size, arch_align)
00122 == obj_bsssec (abfd)->size))
00123 {
00124 obj_textsec (abfd)->alignment_power = arch_align_power;
00125 obj_datasec (abfd)->alignment_power = arch_align_power;
00126 obj_bsssec (abfd)->alignment_power = arch_align_power;
00127 }
00128
00129
00130
00131
00132 return abfd->xvec;
00133 }
00134 #endif
00135
00136 #ifndef MY_object_p
00137
00138
00139 static const bfd_target *MY(object_p) PARAMS ((bfd *));
00140
00141 static const bfd_target *
00142 MY(object_p) (abfd)
00143 bfd *abfd;
00144 {
00145 struct external_exec exec_bytes;
00146 struct internal_exec exec;
00147 const bfd_target *target;
00148 bfd_size_type amt = EXEC_BYTES_SIZE;
00149
00150 if (bfd_bread ((PTR) &exec_bytes, amt, abfd) != amt)
00151 {
00152 if (bfd_get_error () != bfd_error_system_call)
00153 bfd_set_error (bfd_error_wrong_format);
00154 return 0;
00155 }
00156
00157 #ifdef SWAP_MAGIC
00158 exec.a_info = SWAP_MAGIC (exec_bytes.e_info);
00159 #else
00160 exec.a_info = GET_MAGIC (abfd, exec_bytes.e_info);
00161 #endif
00162
00163 if (N_BADMAG (exec)) return 0;
00164 #ifdef MACHTYPE_OK
00165 if (!(MACHTYPE_OK (N_MACHTYPE (exec)))) return 0;
00166 #endif
00167
00168 NAME(aout,swap_exec_header_in) (abfd, &exec_bytes, &exec);
00169
00170 #ifdef SWAP_MAGIC
00171
00172 exec.a_info = SWAP_MAGIC (exec_bytes.e_info);
00173 #endif
00174
00175 target = NAME(aout,some_aout_object_p) (abfd, &exec, MY(callback));
00176
00177 #ifdef ENTRY_CAN_BE_ZERO
00178
00179
00180
00181
00182
00183
00184 if (exec.a_trsize + exec.a_drsize == 0
00185 && bfd_get_format(abfd) == bfd_object && abfd->my_archive == NULL)
00186 {
00187 struct stat buf;
00188 #ifndef S_IXUSR
00189 #define S_IXUSR 0100
00190 #endif
00191 if (stat(abfd->filename, &buf) == 0 && (buf.st_mode & S_IXUSR))
00192 abfd->flags |= EXEC_P;
00193 }
00194 #endif
00195
00196 return target;
00197 }
00198 #define MY_object_p MY(object_p)
00199 #endif
00200
00201 #ifndef MY_mkobject
00202
00203 static bfd_boolean MY(mkobject) PARAMS ((bfd *));
00204
00205 static bfd_boolean
00206 MY(mkobject) (abfd)
00207 bfd *abfd;
00208 {
00209 return NAME (aout, mkobject (abfd));
00210 }
00211
00212 #define MY_mkobject MY(mkobject)
00213 #endif
00214
00215 #ifndef MY_bfd_copy_private_section_data
00216
00217
00218
00219
00220
00221
00222
00223 static bfd_boolean MY_bfd_copy_private_section_data
00224 PARAMS ((bfd *, asection *, bfd *, asection *));
00225
00226 static bfd_boolean
00227 MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
00228 bfd *ibfd;
00229 asection *isec ATTRIBUTE_UNUSED;
00230 bfd *obfd;
00231 asection *osec ATTRIBUTE_UNUSED;
00232 {
00233 if (bfd_get_flavour (ibfd) == bfd_target_aout_flavour
00234 && bfd_get_flavour (obfd) == bfd_target_aout_flavour)
00235 obj_aout_subformat (obfd) = obj_aout_subformat (ibfd);
00236 return TRUE;
00237 }
00238
00239 #endif
00240
00241
00242
00243
00244
00245 #ifndef MY_write_object_contents
00246 static bfd_boolean MY(write_object_contents) PARAMS ((bfd *));
00247
00248 static bfd_boolean
00249 MY(write_object_contents) (abfd)
00250 bfd *abfd;
00251 {
00252 struct external_exec exec_bytes;
00253 struct internal_exec *execp = exec_hdr (abfd);
00254
00255 obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
00256
00257 WRITE_HEADERS(abfd, execp);
00258
00259 return TRUE;
00260 }
00261 #define MY_write_object_contents MY(write_object_contents)
00262 #endif
00263
00264 #ifndef MY_set_sizes
00265
00266 static bfd_boolean MY(set_sizes) PARAMS ((bfd *));
00267
00268 static bfd_boolean
00269 MY(set_sizes) (abfd)
00270 bfd *abfd;
00271 {
00272 adata(abfd).page_size = TARGET_PAGE_SIZE;
00273 adata(abfd).segment_size = SEGMENT_SIZE;
00274
00275 #ifdef ZMAGIC_DISK_BLOCK_SIZE
00276 adata(abfd).zmagic_disk_block_size = ZMAGIC_DISK_BLOCK_SIZE;
00277 #else
00278 adata(abfd).zmagic_disk_block_size = TARGET_PAGE_SIZE;
00279 #endif
00280
00281 adata(abfd).exec_bytes_size = EXEC_BYTES_SIZE;
00282 return TRUE;
00283 }
00284 #define MY_set_sizes MY(set_sizes)
00285 #endif
00286
00287 #ifndef MY_exec_hdr_flags
00288 #define MY_exec_hdr_flags 0
00289 #endif
00290
00291 #ifndef MY_backend_data
00292
00293 #ifndef MY_zmagic_contiguous
00294 #define MY_zmagic_contiguous 0
00295 #endif
00296 #ifndef MY_text_includes_header
00297 #define MY_text_includes_header 0
00298 #endif
00299 #ifndef MY_entry_is_text_address
00300 #define MY_entry_is_text_address 0
00301 #endif
00302 #ifndef MY_exec_header_not_counted
00303 #define MY_exec_header_not_counted 0
00304 #endif
00305 #ifndef MY_add_dynamic_symbols
00306 #define MY_add_dynamic_symbols 0
00307 #endif
00308 #ifndef MY_add_one_symbol
00309 #define MY_add_one_symbol 0
00310 #endif
00311 #ifndef MY_link_dynamic_object
00312 #define MY_link_dynamic_object 0
00313 #endif
00314 #ifndef MY_write_dynamic_symbol
00315 #define MY_write_dynamic_symbol 0
00316 #endif
00317 #ifndef MY_check_dynamic_reloc
00318 #define MY_check_dynamic_reloc 0
00319 #endif
00320 #ifndef MY_finish_dynamic_link
00321 #define MY_finish_dynamic_link 0
00322 #endif
00323
00324 static const struct aout_backend_data MY(backend_data) = {
00325 MY_zmagic_contiguous,
00326 MY_text_includes_header,
00327 MY_entry_is_text_address,
00328 MY_exec_hdr_flags,
00329 0,
00330 MY_set_sizes,
00331 MY_exec_header_not_counted,
00332 MY_add_dynamic_symbols,
00333 MY_add_one_symbol,
00334 MY_link_dynamic_object,
00335 MY_write_dynamic_symbol,
00336 MY_check_dynamic_reloc,
00337 MY_finish_dynamic_link
00338 };
00339 #define MY_backend_data &MY(backend_data)
00340 #endif
00341
00342 #ifndef MY_final_link_callback
00343
00344
00345
00346 static void MY_final_link_callback
00347 PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *));
00348
00349 static void
00350 MY_final_link_callback (abfd, ptreloff, pdreloff, psymoff)
00351 bfd *abfd;
00352 file_ptr *ptreloff;
00353 file_ptr *pdreloff;
00354 file_ptr *psymoff;
00355 {
00356 struct internal_exec *execp = exec_hdr (abfd);
00357
00358 *ptreloff = N_TRELOFF (*execp);
00359 *pdreloff = N_DRELOFF (*execp);
00360 *psymoff = N_SYMOFF (*execp);
00361 }
00362
00363 #endif
00364
00365 #ifndef MY_bfd_final_link
00366
00367
00368
00369
00370 static bfd_boolean MY_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *));
00371
00372 static bfd_boolean
00373 MY_bfd_final_link (abfd, info)
00374 bfd *abfd;
00375 struct bfd_link_info *info;
00376 {
00377 return NAME(aout,final_link) (abfd, info, MY_final_link_callback);
00378 }
00379
00380 #endif
00381
00382
00383 #ifndef MY_openr_next_archived_file
00384 #define MY_openr_next_archived_file bfd_generic_openr_next_archived_file
00385 #endif
00386 #ifndef MY_get_elt_at_index
00387 #define MY_get_elt_at_index _bfd_generic_get_elt_at_index
00388 #endif
00389 #ifndef MY_generic_stat_arch_elt
00390 #define MY_generic_stat_arch_elt bfd_generic_stat_arch_elt
00391 #endif
00392 #ifndef MY_slurp_armap
00393 #define MY_slurp_armap bfd_slurp_bsd_armap
00394 #endif
00395 #ifndef MY_slurp_extended_name_table
00396 #define MY_slurp_extended_name_table _bfd_slurp_extended_name_table
00397 #endif
00398 #ifndef MY_construct_extended_name_table
00399 #define MY_construct_extended_name_table \
00400 _bfd_archive_bsd_construct_extended_name_table
00401 #endif
00402 #ifndef MY_write_armap
00403 #define MY_write_armap bsd_write_armap
00404 #endif
00405 #ifndef MY_read_ar_hdr
00406 #define MY_read_ar_hdr _bfd_generic_read_ar_hdr
00407 #endif
00408 #ifndef MY_truncate_arname
00409 #define MY_truncate_arname bfd_bsd_truncate_arname
00410 #endif
00411 #ifndef MY_update_armap_timestamp
00412 #define MY_update_armap_timestamp _bfd_archive_bsd_update_armap_timestamp
00413 #endif
00414
00415
00416 #ifndef MY_core_file_failing_command
00417 #define MY_core_file_failing_command _bfd_nocore_core_file_failing_command
00418 #endif
00419 #ifndef MY_core_file_failing_signal
00420 #define MY_core_file_failing_signal _bfd_nocore_core_file_failing_signal
00421 #endif
00422 #ifndef MY_core_file_matches_executable_p
00423 #define MY_core_file_matches_executable_p \
00424 _bfd_nocore_core_file_matches_executable_p
00425 #endif
00426 #ifndef MY_core_file_p
00427 #define MY_core_file_p _bfd_dummy_target
00428 #endif
00429
00430 #ifndef MY_bfd_debug_info_start
00431 #define MY_bfd_debug_info_start bfd_void
00432 #endif
00433 #ifndef MY_bfd_debug_info_end
00434 #define MY_bfd_debug_info_end bfd_void
00435 #endif
00436 #ifndef MY_bfd_debug_info_accumulate
00437 #define MY_bfd_debug_info_accumulate \
00438 (void (*) PARAMS ((bfd*, struct bfd_section *))) bfd_void
00439 #endif
00440
00441 #ifndef MY_core_file_failing_command
00442 #define MY_core_file_failing_command NAME(aout,core_file_failing_command)
00443 #endif
00444 #ifndef MY_core_file_failing_signal
00445 #define MY_core_file_failing_signal NAME(aout,core_file_failing_signal)
00446 #endif
00447 #ifndef MY_core_file_matches_executable_p
00448 #define MY_core_file_matches_executable_p NAME(aout,core_file_matches_executable_p)
00449 #endif
00450 #ifndef MY_set_section_contents
00451 #define MY_set_section_contents NAME(aout,set_section_contents)
00452 #endif
00453 #ifndef MY_get_section_contents
00454 #define MY_get_section_contents NAME(aout,get_section_contents)
00455 #endif
00456 #ifndef MY_get_section_contents_in_window
00457 #define MY_get_section_contents_in_window _bfd_generic_get_section_contents_in_window
00458 #endif
00459 #ifndef MY_new_section_hook
00460 #define MY_new_section_hook NAME(aout,new_section_hook)
00461 #endif
00462 #ifndef MY_get_symtab_upper_bound
00463 #define MY_get_symtab_upper_bound NAME(aout,get_symtab_upper_bound)
00464 #endif
00465 #ifndef MY_canonicalize_symtab
00466 #define MY_canonicalize_symtab NAME(aout,canonicalize_symtab)
00467 #endif
00468 #ifndef MY_get_reloc_upper_bound
00469 #define MY_get_reloc_upper_bound NAME(aout,get_reloc_upper_bound)
00470 #endif
00471 #ifndef MY_canonicalize_reloc
00472 #define MY_canonicalize_reloc NAME(aout,canonicalize_reloc)
00473 #endif
00474 #ifndef MY_make_empty_symbol
00475 #define MY_make_empty_symbol NAME(aout,make_empty_symbol)
00476 #endif
00477 #ifndef MY_print_symbol
00478 #define MY_print_symbol NAME(aout,print_symbol)
00479 #endif
00480 #ifndef MY_get_symbol_info
00481 #define MY_get_symbol_info NAME(aout,get_symbol_info)
00482 #endif
00483 #ifndef MY_get_lineno
00484 #define MY_get_lineno NAME(aout,get_lineno)
00485 #endif
00486 #ifndef MY_set_arch_mach
00487 #define MY_set_arch_mach NAME(aout,set_arch_mach)
00488 #endif
00489 #ifndef MY_find_nearest_line
00490 #define MY_find_nearest_line NAME(aout,find_nearest_line)
00491 #endif
00492 #ifndef MY_sizeof_headers
00493 #define MY_sizeof_headers NAME(aout,sizeof_headers)
00494 #endif
00495 #ifndef MY_bfd_get_relocated_section_contents
00496 #define MY_bfd_get_relocated_section_contents \
00497 bfd_generic_get_relocated_section_contents
00498 #endif
00499 #ifndef MY_bfd_relax_section
00500 #define MY_bfd_relax_section bfd_generic_relax_section
00501 #endif
00502 #ifndef MY_bfd_gc_sections
00503 #define MY_bfd_gc_sections bfd_generic_gc_sections
00504 #endif
00505 #ifndef MY_bfd_merge_sections
00506 #define MY_bfd_merge_sections bfd_generic_merge_sections
00507 #endif
00508 #ifndef MY_bfd_is_group_section
00509 #define MY_bfd_is_group_section bfd_generic_is_group_section
00510 #endif
00511 #ifndef MY_bfd_discard_group
00512 #define MY_bfd_discard_group bfd_generic_discard_group
00513 #endif
00514 #ifndef MY_section_already_linked
00515 #define MY_section_already_linked \
00516 _bfd_generic_section_already_linked
00517 #endif
00518 #ifndef MY_bfd_reloc_type_lookup
00519 #define MY_bfd_reloc_type_lookup NAME(aout,reloc_type_lookup)
00520 #endif
00521 #ifndef MY_bfd_make_debug_symbol
00522 #define MY_bfd_make_debug_symbol 0
00523 #endif
00524 #ifndef MY_read_minisymbols
00525 #define MY_read_minisymbols NAME(aout,read_minisymbols)
00526 #endif
00527 #ifndef MY_minisymbol_to_symbol
00528 #define MY_minisymbol_to_symbol NAME(aout,minisymbol_to_symbol)
00529 #endif
00530 #ifndef MY_bfd_link_hash_table_create
00531 #define MY_bfd_link_hash_table_create NAME(aout,link_hash_table_create)
00532 #endif
00533 #ifndef MY_bfd_link_hash_table_free
00534 #define MY_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
00535 #endif
00536 #ifndef MY_bfd_link_add_symbols
00537 #define MY_bfd_link_add_symbols NAME(aout,link_add_symbols)
00538 #endif
00539 #ifndef MY_bfd_link_just_syms
00540 #define MY_bfd_link_just_syms _bfd_generic_link_just_syms
00541 #endif
00542 #ifndef MY_bfd_link_split_section
00543 #define MY_bfd_link_split_section _bfd_generic_link_split_section
00544 #endif
00545
00546 #ifndef MY_bfd_copy_private_bfd_data
00547 #define MY_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data
00548 #endif
00549
00550 #ifndef MY_bfd_merge_private_bfd_data
00551 #define MY_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data
00552 #endif
00553
00554 #ifndef MY_bfd_copy_private_symbol_data
00555 #define MY_bfd_copy_private_symbol_data _bfd_generic_bfd_copy_private_symbol_data
00556 #endif
00557
00558 #ifndef MY_bfd_copy_private_header_data
00559 #define MY_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data
00560 #endif
00561
00562 #ifndef MY_bfd_print_private_bfd_data
00563 #define MY_bfd_print_private_bfd_data _bfd_generic_bfd_print_private_bfd_data
00564 #endif
00565
00566 #ifndef MY_bfd_set_private_flags
00567 #define MY_bfd_set_private_flags _bfd_generic_bfd_set_private_flags
00568 #endif
00569
00570 #ifndef MY_bfd_is_local_label_name
00571 #define MY_bfd_is_local_label_name bfd_generic_is_local_label_name
00572 #endif
00573
00574 #ifndef MY_bfd_is_target_special_symbol
00575 #define MY_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
00576 #endif
00577
00578 #ifndef MY_bfd_free_cached_info
00579 #define MY_bfd_free_cached_info NAME(aout,bfd_free_cached_info)
00580 #endif
00581
00582 #ifndef MY_close_and_cleanup
00583 #define MY_close_and_cleanup MY_bfd_free_cached_info
00584 #endif
00585
00586 #ifndef MY_get_dynamic_symtab_upper_bound
00587 #define MY_get_dynamic_symtab_upper_bound \
00588 _bfd_nodynamic_get_dynamic_symtab_upper_bound
00589 #endif
00590 #ifndef MY_canonicalize_dynamic_symtab
00591 #define MY_canonicalize_dynamic_symtab \
00592 _bfd_nodynamic_canonicalize_dynamic_symtab
00593 #endif
00594 #ifndef MY_get_synthetic_symtab
00595 #define MY_get_synthetic_symtab \
00596 _bfd_nodynamic_get_synthetic_symtab
00597 #endif
00598 #ifndef MY_get_dynamic_reloc_upper_bound
00599 #define MY_get_dynamic_reloc_upper_bound \
00600 _bfd_nodynamic_get_dynamic_reloc_upper_bound
00601 #endif
00602 #ifndef MY_canonicalize_dynamic_reloc
00603 #define MY_canonicalize_dynamic_reloc \
00604 _bfd_nodynamic_canonicalize_dynamic_reloc
00605 #endif
00606
00607
00608 #ifndef MY_symbol_leading_char
00609 #define MY_symbol_leading_char '_'
00610 #endif
00611
00612
00613 #ifndef AR_PAD_CHAR
00614 #define AR_PAD_CHAR ' '
00615 #endif
00616
00617 #ifndef MY_BFD_TARGET
00618 const bfd_target MY(vec) =
00619 {
00620 TARGETNAME,
00621 bfd_target_aout_flavour,
00622 #ifdef TARGET_IS_BIG_ENDIAN_P
00623 BFD_ENDIAN_BIG,
00624 BFD_ENDIAN_BIG,
00625 #else
00626 BFD_ENDIAN_LITTLE,
00627 BFD_ENDIAN_LITTLE,
00628 #endif
00629 (HAS_RELOC | EXEC_P |
00630 HAS_LINENO | HAS_DEBUG |
00631 HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED),
00632 (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA),
00633 MY_symbol_leading_char,
00634 AR_PAD_CHAR,
00635 15,
00636 #ifdef TARGET_IS_BIG_ENDIAN_P
00637 bfd_getb64, bfd_getb_signed_64, bfd_putb64,
00638 bfd_getb32, bfd_getb_signed_32, bfd_putb32,
00639 bfd_getb16, bfd_getb_signed_16, bfd_putb16,
00640 bfd_getb64, bfd_getb_signed_64, bfd_putb64,
00641 bfd_getb32, bfd_getb_signed_32, bfd_putb32,
00642 bfd_getb16, bfd_getb_signed_16, bfd_putb16,
00643 #else
00644 bfd_getl64, bfd_getl_signed_64, bfd_putl64,
00645 bfd_getl32, bfd_getl_signed_32, bfd_putl32,
00646 bfd_getl16, bfd_getl_signed_16, bfd_putl16,
00647 bfd_getl64, bfd_getl_signed_64, bfd_putl64,
00648 bfd_getl32, bfd_getl_signed_32, bfd_putl32,
00649 bfd_getl16, bfd_getl_signed_16, bfd_putl16,
00650 #endif
00651 {_bfd_dummy_target, MY_object_p,
00652 bfd_generic_archive_p, MY_core_file_p},
00653 {bfd_false, MY_mkobject,
00654 _bfd_generic_mkarchive, bfd_false},
00655 {bfd_false, MY_write_object_contents,
00656 _bfd_write_archive_contents, bfd_false},
00657
00658 BFD_JUMP_TABLE_GENERIC (MY),
00659 BFD_JUMP_TABLE_COPY (MY),
00660 BFD_JUMP_TABLE_CORE (MY),
00661 BFD_JUMP_TABLE_ARCHIVE (MY),
00662 BFD_JUMP_TABLE_SYMBOLS (MY),
00663 BFD_JUMP_TABLE_RELOCS (MY),
00664 BFD_JUMP_TABLE_WRITE (MY),
00665 BFD_JUMP_TABLE_LINK (MY),
00666 BFD_JUMP_TABLE_DYNAMIC (MY),
00667
00668
00669 NULL,
00670
00671 (PTR) MY_backend_data
00672 };
00673 #endif