X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=bfd%2Flibbfd-in.h;h=fb5f2107839ed8d576783ca6f6d5774e54367a6f;hb=892339eeebd377e5f6bc58e0f7cbdfc57b718cfe;hp=cefe9146fe935fd6bd22e386dabb07d75f81daa9;hpb=50ede03d760c23490792fc84fe98969fe5dfbacd;p=binutils-gdb.git diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h index cefe9146fe9..fb5f2107839 100644 --- a/bfd/libbfd-in.h +++ b/bfd/libbfd-in.h @@ -1,6 +1,7 @@ /* libbfd.h -- Declarations used by bfd library *implementation*. (This include file is not for users of the library.) - Copyright 1990, 91, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. + Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000 + Free Software Foundation, Inc. Written by Cygnus Support. ** NOTE: libbfd.h is a GENERATED file. Don't change it; instead, @@ -24,9 +25,13 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Align an address upward to a boundary, expressed as a number of bytes. - E.g. align to an 8-byte boundary with argument of 8. */ -#define BFD_ALIGN(this, boundary) \ - ((( (this) + ((boundary) -1)) & (~((boundary)-1)))) + E.g. align to an 8-byte boundary with argument of 8. Take care never + to wrap around if the address is within boundary-1 of the end of the + address space. */ +#define BFD_ALIGN(this, boundary) \ + ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this)) \ + ? (((bfd_vma) (this) + ((boundary) - 1)) & (~((boundary)-1))) \ + : ~ (bfd_vma) 0) /* If you want to read and write large blocks, you might want to do it in quanta of this amount */ @@ -54,9 +59,9 @@ struct artdata { file_ptr first_file_filepos; /* Speed up searching the armap */ struct ar_cache *cache; - bfd *archive_head; /* Only interesting in output routines */ + bfd *archive_head; /* Only interesting in output routines */ carsym *symdefs; /* the symdef entries */ - symindex symdef_count; /* how many there are */ + symindex symdef_count; /* how many there are */ char *extended_names; /* clever intel extension */ /* when more compilers are standard C, this can be a time_t */ long armap_timestamp; /* Timestamp value written into armap. @@ -74,9 +79,9 @@ struct artdata { /* Goes in bfd's arelt_data slot */ struct areltdata { - char * arch_header; /* it's actually a string */ - unsigned int parsed_size; /* octets of filesize not including ar_hdr */ - char *filename; /* null-terminated */ + char * arch_header; /* it's actually a string */ + unsigned int parsed_size; /* octets of filesize not including ar_hdr */ + char *filename; /* null-terminated */ }; #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size) @@ -87,14 +92,11 @@ extern PTR bfd_zmalloc PARAMS ((size_t)); extern bfd_error_handler_type _bfd_error_handler; -/* These routines allocate and free things on the BFD's obstack. */ +/* These routines allocate and free things on the BFD's objalloc. */ -PTR bfd_alloc PARAMS ((bfd *abfd, size_t size)); -PTR bfd_zalloc PARAMS ((bfd *abfd, size_t size)); -void bfd_alloc_grow PARAMS ((bfd *abfd, PTR thing, size_t size)); -PTR bfd_alloc_finish PARAMS ((bfd *abfd)); - -#define bfd_release(x,y) (void) obstack_free(&(x->memory),y) +extern PTR bfd_alloc PARAMS ((bfd *, size_t)); +extern PTR bfd_zalloc PARAMS ((bfd *, size_t)); +extern void bfd_release PARAMS ((bfd *, PTR)); bfd * _bfd_create_empty_archive_element_shell PARAMS ((bfd *obfd)); bfd * _bfd_look_for_bfd_in_cache PARAMS ((bfd *arch_bfd, file_ptr index)); @@ -126,11 +128,11 @@ void bfd_void PARAMS ((bfd *ignore)); bfd *_bfd_new_bfd_contained_in PARAMS ((bfd *)); const bfd_target *_bfd_dummy_target PARAMS ((bfd *abfd)); -void bfd_dont_truncate_arname PARAMS ((bfd *abfd, CONST char *filename, +void bfd_dont_truncate_arname PARAMS ((bfd *abfd, const char *filename, char *hdr)); -void bfd_bsd_truncate_arname PARAMS ((bfd *abfd, CONST char *filename, +void bfd_bsd_truncate_arname PARAMS ((bfd *abfd, const char *filename, char *hdr)); -void bfd_gnu_truncate_arname PARAMS ((bfd *abfd, CONST char *filename, +void bfd_gnu_truncate_arname PARAMS ((bfd *abfd, const char *filename, char *hdr)); boolean bsd_write_armap PARAMS ((bfd *arch, unsigned int elength, @@ -316,6 +318,10 @@ extern boolean _bfd_generic_set_section_contents ((boolean (*) \ PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *))) \ bfd_false) +#define _bfd_nolink_bfd_gc_sections \ + ((boolean (*) \ + PARAMS ((bfd *, struct bfd_link_info *))) \ + bfd_false) #define _bfd_nolink_bfd_link_hash_table_create \ ((struct bfd_link_hash_table *(*) PARAMS ((bfd *))) bfd_nullvoidptr) #define _bfd_nolink_bfd_link_add_symbols \ @@ -351,6 +357,17 @@ extern boolean _bfd_stab_section_find_nearest_line PARAMS ((bfd *, asymbol **, asection *, bfd_vma, boolean *, const char **, const char **, unsigned int *, PTR *)); +/* Find the neaderst line using DWARF 1 debugging information. */ +extern boolean _bfd_dwarf1_find_nearest_line + PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, + const char **, unsigned int *)); + +/* Find the nearest line using DWARF 2 debugging information. */ +extern boolean _bfd_dwarf2_find_nearest_line + PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, + const char **, unsigned int *, unsigned int, + PTR *)); + /* A routine to create entries for a bfd_link_hash_table. */ extern struct bfd_hash_entry *_bfd_link_hash_newfunc PARAMS ((struct bfd_hash_entry *entry, @@ -432,12 +449,18 @@ extern boolean _bfd_link_section_stabs /* Write out the .stab section when linking stabs in sections. */ extern boolean _bfd_write_section_stabs - PARAMS ((bfd *, asection *, PTR *, bfd_byte *)); + PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_byte *)); /* Write out the .stabstr string table when linking stabs in sections. */ extern boolean _bfd_write_stab_strings PARAMS ((bfd *, PTR *)); +/* Find an offset within a .stab section when linking stabs in + sections. */ + +extern bfd_vma _bfd_stab_section_offset + PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_vma)); + /* Create a string table. */ extern struct bfd_strtab_hash *_bfd_stringtab_init PARAMS ((void)); @@ -457,6 +480,9 @@ extern bfd_size_type _bfd_stringtab_add /* Write out a string table. */ extern boolean _bfd_stringtab_emit PARAMS ((bfd *, struct bfd_strtab_hash *)); + +/* Check that endianness of input and output file match. */ +extern boolean _bfd_generic_verify_endian_match PARAMS ((bfd *, bfd *)); /* Macros to tell if bfds are read or write enabled. @@ -478,6 +504,17 @@ void bfd_assert PARAMS ((const char*,int)); #define BFD_FAIL() \ { bfd_assert(__FILE__,__LINE__); } +extern void _bfd_abort PARAMS ((const char *, int, const char *)) + ATTRIBUTE_NORETURN; + +/* if gcc >= 2.6, we can give a function name, too */ +#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6) +#define __PRETTY_FUNCTION__ ((char *) NULL) +#endif + +#undef abort +#define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__) + FILE * bfd_cache_lookup_worker PARAMS ((bfd *)); extern bfd *bfd_last_cache;