X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Flibbfd.h;h=d7ea8ff3c6f24a04f832d8d4fb3150dff05db8bb;hb=fefb09e572f1a3ac347bf4f1c234ec85158f884b;hp=60f32cbb98ffdf2baf2a9c5bc65290657b16ffab;hpb=50ede03d760c23490792fc84fe98969fe5dfbacd;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 60f32cbb98..d7ea8ff3c6 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -1,6 +1,6 @@ /* 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, 1998 Free Software Foundation, Inc. Written by Cygnus Support. ** NOTE: libbfd.h is a GENERATED file. Don't change it; instead, @@ -24,9 +24,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,14 +91,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)); @@ -316,6 +317,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 ((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 +356,11 @@ extern boolean _bfd_stab_section_find_nearest_line PARAMS ((bfd *, asymbol **, asection *, bfd_vma, boolean *, const char **, const char **, unsigned int *, PTR *)); +/* 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 *)); + /* 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 +442,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)); @@ -623,10 +639,17 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_SPARC_PC_LM22", "BFD_RELOC_SPARC_WDISP16", "BFD_RELOC_SPARC_WDISP19", - "BFD_RELOC_SPARC_GLOB_JMP", "BFD_RELOC_SPARC_7", "BFD_RELOC_SPARC_6", "BFD_RELOC_SPARC_5", + "BFD_RELOC_SPARC_PLT64", + "BFD_RELOC_SPARC_HIX22", + "BFD_RELOC_SPARC_LOX10", + "BFD_RELOC_SPARC_H44", + "BFD_RELOC_SPARC_M44", + "BFD_RELOC_SPARC_L44", + "BFD_RELOC_SPARC_REGISTER", + "BFD_RELOC_SPARC_32LE", "BFD_RELOC_ALPHA_GPDISP_HI16", "BFD_RELOC_ALPHA_GPDISP_LO16", "BFD_RELOC_ALPHA_GPDISP", @@ -651,6 +674,16 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_MIPS_GOT_LO16", "BFD_RELOC_MIPS_CALL_HI16", "BFD_RELOC_MIPS_CALL_LO16", +/* start-sanitize-r5900 */ + "BFD_RELOC_MIPS15_S3", +/* end-sanitize-r5900 */ +/* start-sanitize-sky */ + "BFD_RELOC_MIPS_DVP_11_PCREL", + "BFD_RELOC_MIPS_DVP_27_S4", + "BFD_RELOC_MIPS_DVP_11_S4", + "BFD_RELOC_MIPS_DVP_U15_S3", +/* end-sanitize-sky */ + "BFD_RELOC_386_GOT32", "BFD_RELOC_386_PLT32", "BFD_RELOC_386_COPY", @@ -737,27 +770,26 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_SH_CODE", "BFD_RELOC_SH_DATA", "BFD_RELOC_SH_LABEL", -/* start-sanitize-arc */ + "BFD_RELOC_THUMB_PCREL_BRANCH9", + "BFD_RELOC_THUMB_PCREL_BRANCH12", + "BFD_RELOC_THUMB_PCREL_BRANCH23", "BFD_RELOC_ARC_B22_PCREL", "BFD_RELOC_ARC_B26", -/* end-sanitize-arc */ - "BFD_RELOC_D10V_10_PCREL_R", "BFD_RELOC_D10V_10_PCREL_L", "BFD_RELOC_D10V_18", "BFD_RELOC_D10V_18_PCREL", - -/* start-sanitize-d30v */ "BFD_RELOC_D30V_6", + "BFD_RELOC_D30V_9_PCREL", + "BFD_RELOC_D30V_9_PCREL_R", "BFD_RELOC_D30V_15", "BFD_RELOC_D30V_15_PCREL", + "BFD_RELOC_D30V_15_PCREL_R", "BFD_RELOC_D30V_21", "BFD_RELOC_D30V_21_PCREL", + "BFD_RELOC_D30V_21_PCREL_R", "BFD_RELOC_D30V_32", "BFD_RELOC_D30V_32_PCREL", -/* end-sanitize-d30v */ - -/* start-sanitize-m32r */ "BFD_RELOC_M32R_24", "BFD_RELOC_M32R_10_PCREL", "BFD_RELOC_M32R_18_PCREL", @@ -766,18 +798,30 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_M32R_HI16_SLO", "BFD_RELOC_M32R_LO16", "BFD_RELOC_M32R_SDA16", -/* end-sanitize-m32r */ - -/* start-sanitize-v850 */ "BFD_RELOC_V850_9_PCREL", "BFD_RELOC_V850_22_PCREL", - "BFD_RELOC_V850_SDA_OFFSET", - "BFD_RELOC_V850_ZDA_OFFSET", - "BFD_RELOC_V850_TDA_OFFSET", -/* end-sanitize-v850 */ + "BFD_RELOC_V850_SDA_16_16_OFFSET", + "BFD_RELOC_V850_SDA_15_16_OFFSET", + "BFD_RELOC_V850_ZDA_16_16_OFFSET", + "BFD_RELOC_V850_ZDA_15_16_OFFSET", + "BFD_RELOC_V850_TDA_6_8_OFFSET", + "BFD_RELOC_V850_TDA_7_8_OFFSET", + "BFD_RELOC_V850_TDA_7_7_OFFSET", + "BFD_RELOC_V850_TDA_16_16_OFFSET", +/* start-sanitize-v850e */ + "BFD_RELOC_V850_TDA_4_5_OFFSET", + "BFD_RELOC_V850_TDA_4_4_OFFSET", + "BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET", + "BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET", + "BFD_RELOC_V850_CALLT_6_7_OFFSET", + "BFD_RELOC_V850_CALLT_16_16_OFFSET", +/* end-sanitize-v850e */ "BFD_RELOC_MN10300_32_PCREL", "BFD_RELOC_MN10300_16_PCREL", + "BFD_RELOC_TIC30_LDP", + "BFD_RELOC_VTABLE_INHERIT", + "BFD_RELOC_VTABLE_ENTRY", "@@overflow: BFD_RELOC_UNUSED@@", }; #endif @@ -793,6 +837,10 @@ bfd_generic_relax_section struct bfd_link_info *, boolean *)); +boolean +bfd_generic_gc_sections + PARAMS ((bfd *, struct bfd_link_info *)); + bfd_byte * bfd_generic_get_relocated_section_contents PARAMS ((bfd *abfd,