X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Flibbfd-in.h;h=aece1e15a51e375485553176cec868c9e945c7d2;hb=f631889e7a562d613d69be04a900d567aee4dd73;hp=8719fec4e8596bf49bbb7a8e1308653ad9612865;hpb=062a1b96e049f022c42482d10bbc89a59b28a2c9;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h index 8719fec4e8..aece1e15a5 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 */ @@ -87,12 +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)); - -#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)); @@ -314,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 \ @@ -349,6 +357,16 @@ 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)); + /* 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, @@ -430,12 +448,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)); @@ -455,6 +479,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. @@ -476,6 +503,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;