X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Faout-target.h;h=bf74df7b80c3098f5e320be47a9ae14d8a86c2eb;hb=f1f28025c3ea75d5368ddd3046461648145b89b3;hp=c063d039566776378f14b172e16001b5161370d6;hpb=cd123cb70c845b890eed231a84e6e84c92c2ef92;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/aout-target.h b/bfd/aout-target.h index c063d03956..bf74df7b80 100644 --- a/bfd/aout-target.h +++ b/bfd/aout-target.h @@ -1,7 +1,5 @@ /* Define a target vector and some small routines for a variant of a.out. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2007 - Free Software Foundation, Inc. + Copyright (C) 1990-2020 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -44,12 +42,12 @@ MY (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); /* For some targets, if the entry point is not in the same page as the start of the text, then adjust the VMA so that it is. @@ -73,20 +71,20 @@ MY (callback) (bfd *abfd) 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, 0); #endif @@ -151,11 +149,11 @@ MY (object_p) (bfd *abfd) exec.a_info = GET_MAGIC (abfd, exec_bytes.e_info); #endif - 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 @@ -182,7 +180,7 @@ MY (object_p) (bfd *abfd) #ifndef S_IXUSR #define S_IXUSR 0100 /* Execute by owner. */ #endif - if (stat(abfd->filename, &buf) == 0 && (buf.st_mode & S_IXUSR)) + if (stat (abfd->filename, &buf) == 0 && (buf.st_mode & S_IXUSR)) abfd->flags |= EXEC_P; } #endif /* ENTRY_CAN_BE_ZERO */ @@ -334,9 +332,9 @@ MY_final_link_callback (bfd *abfd, { struct internal_exec *execp = exec_hdr (abfd); - *ptreloff = N_TRELOFF (*execp); - *pdreloff = N_DRELOFF (*execp); - *psymoff = N_SYMOFF (*execp); + *ptreloff = N_TRELOFF (execp); + *pdreloff = N_DRELOFF (execp); + *psymoff = N_SYMOFF (execp); } #endif @@ -375,11 +373,14 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) _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 @@ -398,19 +399,21 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #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 @@ -446,6 +449,9 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #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 @@ -455,6 +461,10 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #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 @@ -464,6 +474,9 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #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 @@ -480,12 +493,18 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #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 @@ -493,6 +512,15 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #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 NAME (aout, reloc_type_lookup) #endif @@ -511,19 +539,24 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #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 @@ -553,7 +586,7 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #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 @@ -561,7 +594,18 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #endif #ifndef MY_close_and_cleanup -#define MY_close_and_cleanup MY_bfd_free_cached_info + +/* Handle closing of a BFD including the resource-releasing parts. */ + +static bfd_boolean +MY_close_and_cleanup (bfd *abfd) +{ + if (!MY_bfd_free_cached_info (abfd)) + return FALSE; + + return _bfd_generic_close_and_cleanup (abfd); +} + #endif #ifndef MY_get_dynamic_symtab_upper_bound @@ -614,6 +658,7 @@ const bfd_target MY (vec) = MY_symbol_leading_char, AR_PAD_CHAR, /* AR_pad_char. */ 15, /* AR_max_namelen. */ + 0, /* match priority. */ #ifdef TARGET_IS_BIG_ENDIAN_P bfd_getb64, bfd_getb_signed_64, bfd_putb64, bfd_getb32, bfd_getb_signed_32, bfd_putb32, @@ -629,12 +674,24 @@ const bfd_target MY (vec) = bfd_getl32, bfd_getl_signed_32, bfd_putl32, bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Headers. */ #endif - {_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),