aboutsummaryrefslogtreecommitdiff
path: root/bfd/libecoff.h
AgeCommit message (Collapse)AuthorFilesLines
1995-10-05 * libecoff.h (struct ecoff_backend_data): Add adjust_headersIan Lance Taylor1-1/+3
field. * ecoff.c (ecoff_sec_to_styp_flags): Check for various Alpha sections, and set styp correctly for them: .got, .hash, .dynamic, .liblist, .rel.dyn, .conflic, .dynstr, .dynsym, .comment. (_bfd_ecoff_styp_to_sec_flags): Check for various Alpha section types. (ecoff_sort_hdrs): New static function. (ecoff_compute_section_file_positions): Return boolean, not void. Sort the sections by VMA before looking through them. Put the first non SEC_ALLOC section on a new page. Put every SEC_ALLOC section on an appropriate boundary within the page. (ecoff_compute_reloc_file_positions): Check return value of ecoff_compute_section_file_positions. (_bfd_ecoff_set_section_contents): Likewise. (_bfd_ecoff_write_object_contents): Check for various Alpha section types when incrementing text_size and data_size. Call adjust_headers backend function if it exists. * coff-alpha.c (alpha_adjust_headers): New static function. (alpha_ecoff_backend_data): Initialize adjust_headers field. * coff-mips.c (mips_ecoff_backend_data): Likewise. PR 8141.
1995-09-12 Extensive minor changes to avoid various gcc warnings. Also:Ian Lance Taylor1-2/+2
* Makefile.in (BFD32_BACKENDS): Remove coff-arm.o. * archures.c (bfd_arch_info_type): Change mach field from long to unsigned long. (bfd_lookup_arch): Change machine parameter from long to unsigned long.
1995-08-31Thu Aug 31 16:00:53 1995 steve chamberlain <sac@slash.cygnus.com>Steve Chamberlain1-1/+6
* Makefile.in: Update dependencies. * aout-target.h (MY_bfd_print_private_bfd_data): New. * bfd-in.h (PE STUFF): Deleted. * bfd.c (tdata->pe_obj_data): New. (bfd_print_private_bfd_data): New. * coff-i386.c, coff-arm.c (coff_*-rtype_to_howto): Get image base from new place. * libcoff.h, libbfd.h, bfd-in2.h: Rebuilt. * coffcode.h (pe_value): Delete (coff_mkobject, coff_mkobject_hook): Conditionally build. (coff_compute_section_file_positions): Look in new place. (add_data_entry, fill_pe_header_info): Deleted. (coff_write_object_contents): Remove PE stuff. (coff_bfd_print_private_bfd_data): New. * coffswap.h: Remove PE stuff. * elfxx-target.h (bfd_elfNN_bfd_print_private_bfd_data): New. * libbfd-in.h (_bfd_generic_bfd_print_private_bfd_data): New. * libcoff-in.h (pe_data_type): New. * libecoff.h (_bfd_ecoff_bfd_print_private_bfd_data): New. * targets.c (_bfd_print_private_bfd_data): New. * peicode.h: New file.
1995-07-05 * ecoff.c (_bfd_ecoff_bfd_is_local_label): New function.Ian Lance Taylor1-7/+37
* libecoff.h (_bfd_ecoff_bfd_is_local_label): Declare. * elf32-mips.c (mips_elf_is_local_label): New static function. (bfd_elf32_bfd_is_local_label): Define. PR 6978.
1994-08-15 * coffcode.h (styp_to_sec_flags): Add name argument. If no flagsIan Lance Taylor1-2/+3
are recognized, chose section flags based on the name. (bfd_coff_backend_data): _bfd_styp_to_sec_flags_hook field: Add name argument. (bfd_coff_styp_to_sec_flags_hook): Add name argument. (coff_compute_section_file_positions): Don't adjust the section position by COFF_PAGE_SIZE unless SEC_ALLOC is set. * libcoff.h: Rebuilt. * coffgen.c (make_a_section_from_file): Pass section name to bfd_coff_styp_to_sec_flags_hook. * ecoff.c (_bfd_ecoff_styp_to_sec_flags): Add unused name argument. * libecoff.h (_bfd_ecoff_styp_to_sec_flags): Add name argument to prototype.
1994-06-20 * ecoff.c, libecoff.h, ecoffswap.h, coff-alpha.c, coff-mips.c,Ian Lance Taylor1-74/+58
elf32-mips.c: Renamed all externally visible ECOFF routines which are local to BFD to start with _bfd_ecoff instead of just ecoff.
1994-06-20 * ecoff.c (ecoff_swap_tir_in): Change input argument to const.Ian Lance Taylor1-1/+2
(ecoff_swap_tir_out): Likewise. (ecoff_swap_rndx_in, ecoff_swap_rndx_out): Likewise. (ecoff_slurp_symbolic_info): Add new arguments to correspond to read_debug_info entry point in ecoff_debug_swap structure. Change all calls. * libecoff.h (ecoff_slurp_symbolic_info): Change declaration. * ecoffswap.h (ecoff_swap_tir_in, ecoff_swap_tir_out): Declare. (ecoff_swap_rndx_in, ecoff_swap_rndx_out): Declare. * coff-alpha.c (alpha_ecoff_backend_data): Initialize new ecoff_debug_swap fields. * coff-mips.c (mips_ecoff_backend_data): Likewise. * elf32-mips.c (mips_elf_read_ecoff_info): Undefine READ. (mips_elf_ecoff_debug_swap): Initialize new ecoff_debug_swap fields. * configure.in (bfd_elf32_bigmips_vec): Use ecoff.o and ecofflink.o. (bfd_elf32_littlemips_vec): Likewise. (ecoff_big_vec, ecoff_little_vec): Likewise. (ecoffalpha_little_vec): Likewise. * Makefile.in (BFD_LIBS): Remove ecoff.o and ecofflink.o. (BFD32_BACKENDS): Add ecoff.o and ecofflink.o.
1994-06-14For PR 4865.Ian Lance Taylor1-0/+4
* libecoff.h (struct ecoff_link_hash_entry): Change type of written from boolean to char. Add new field small. * ecoff.c (ecoff_link_hash_newfunc): Initialize written to 0 rather than false. Initialize small to 0. (ecoff_link_add_externals): If ECOFF type is scSUndefined, set small. If small is set, and hash table type is common, force the symbol into a section named SCOMMON and change the ECOFF type from scCommon to scSCommon. (ecoff_link_write_external): Set written to 1 rather than true. * coff-mips.c (mips_relocate_section): Correct JMPADDR reloc overflow check to consider section VMA of input file.
1994-06-06 * libecoff.h (ecoff_data_type): Add linker field.Ian Lance Taylor1-1/+4
* ecoff.c (ecoff_write_object_contents): Check new tdata linker field, rather than outsymbols being non-NULL, to decide whether to output the symbols and relocs. (ecoff_bfd_final_link): Set new tdata linker field to true.
1994-04-07Comment change.Ian Lance Taylor1-10/+13
1994-04-06 * targets.c (bfd_target): Rearranged fields in target vector.Ian Lance Taylor1-43/+48
Removed _bfd_debug_info_start, _bfd_debug_info_end and _bfd_debug_info_accumulate, which were never used. (BFD_JUMP_TABLE_GENERIC, BFD_JUMP_TABLE_COPY): Defined. (BFD_JUMP_TABLE_CORE, BFD_JUMP_TABLE_ARCHIVE): Defined. (BFD_JUMP_TABLE_SYMBOLS, BFD_JUMP_TABLE_RELOCS): Defined. (BFD_JUMP_TABLE_WRITE, BFD_JUMP_TABLE_LINK): Defined. * All backends: Changed to use the new BFD_JUMP_TABLE_* macros rather than the single JUMP_TABLE macro. Removed many of the weird macro definitions needed to support the monolithic JUMP_TABLE. * bfd-in.h (JUMP_TABLE): Removed. * libbfd-in.h: Define a bunch of macros, and declare a few functions, for use with the new BFD_JUMP_TABLE_* macros. * libbfd.c (_bfd_dummy_new_section_hook): Removed. (bfd_false): Set bfd_error_invalid_operation. (bfd_nullvoidptr): Likewise. (bfd_n1): New function. (_bfd_nocore_core_file_matches_executable_p): Renamed from _bfd_dummy_core_file_matches_executable_p. (_bfd_nocore_core_file_failing_command): Similar rename. Set bfd_error_invalid_operation. (_bfd_nocore_core_file_failing_signal): Likewise. (_bfd_generic_get_section_contents): Renamed from bfd_generic_get_section_contents. Changed all callers. (_bfd_generic_set_section_contents): Similar rename. * ieee.c: #if 0 out ieee_bfd_debug_info_start, ieee_bfd_debug_info_end, ieee_bfd_debug_info_accumulate. They were never called. * bfd-in2.h: Rebuilt. * libbfd.h: Rebuilt.
1994-04-01 * targets.c (bfd_target): Add _bfd_free_cached_info field.Ian Lance Taylor1-7/+1
* bfd.c (bfd_free_cached_info): Define. * bfd-in.h (JUMP_TABLE): Add _bfd_free_cached_info. * bfd-in2.h: Rebuilt. * All backends: Initialize bfd_free_cached_info entry point to bfd_true.
1994-03-30Wed Mar 30 16:25:41 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)Ian Lance Taylor1-7/+6
Changes to let BFD return an error indication from get_symtab_upper_bound, bfd_canonicalize_symtab, bfd_get_reloc_upper_bound, and bfd_canonicalize_reloc. They now return long instead of unsigned int, and use -1 to indicate an error. Along the way, rename get_symtab_upper_bound to bfd_get_symtab_upper_bound. * bfd.c (bfd_get_reloc_upper_bound): Return long, and -1 on errors. (bfd_canonicalize_reloc): Likewise. * syms.c (bfd_get_symtab_upper_bound): Renamed from get_symtab_upper_bound. * targets.c (bfd_target): Renamed _get_symtab_upper_bound to _bfd_get_symtab_upper_bound, and changed it and _bfd_canonicalize_symtab and _get_reloc_upper_bound and _bfd_canonicalize_reloc to all return long. * aoutx.h (NAME(aout,get_symtab)): Return long, and -1 on errors. (NAME(aout,canonicalize_reloc)): Likewise. (NAME(aout,get_reloc_upper_bound)): Likewise. (NAME(aout,get_symtab_upper_bound)): Likewise. * bout.c (b_out_canonicalize_reloc): Likewise. (b_out_get_reloc_upper_bound): Likewise. * coffcode.h (coff_canonicalize_reloc): Likewise. * coffgen.c (coff_get_symtab_upper_bound): Likewise. (coff_get_symtab): Likewise. (coff_get_reloc_upper_bound): Likewise. * ecoff.c (ecoff_get_symtab_upper_bound): Likewise. (ecoff_get_symtab): Likewise. (ecoff_canonicalize_reloc): Likewise. * elfcode.h (elf_get_symtab_upper_bound): Likewise. (elf_get_reloc_upper_bound): Likewise. (elf_canonicalize_reloc): Likewise. (elf_get_symtab): Likewise. * hp300hpux.c (MY(get_symtab)): Likewise. (MY(get_symtab_upper_bound)): Likewise. (MY(canonicalize_reloc)): Likewise. * i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise. * ieee.c (ieee_slurp_external_symbols): Change return type to boolean. Check for errors from get_symbol. (ieee_slurp_symbol_table): Change return type to boolean. Check for errors from ieee_slurp_external_symbols. (ieee_get_symtab_upper_bound): Return long, and -1 on errors. (ieee_get_symtab): Likewise. (ieee_get_reloc_upper_bound): Likewise. (ieee_canonicalize_reloc): Likewise. * mipsbsd.c (MY(canonicalize_reloc)): Likewise. * nlmcode.h (nlm_get_symtab_upper_bound): Likewise. (nlm_get_symtab): Likewise. (nlm_get_reloc_upper_bound): Likewise. (nlm_canonicalize_reloc): Likewise. * oasys.c (oasys_get_symtab_upper_bound): Likewise. (oasys_get_symtab): Likewise. (oasys_get_reloc_upper_bound): Likewise. (oasys_canonicalize_reloc): Likewise. * som.c (som_get_symtab_upper_bound): Likewise. (som_get_symtab): Likewise. (som_get_reloc_upper_bound): Likewise. (som_canonicalize_reloc): Likewise. * srec.c (srec_get_symtab_upper_bound): Likewise. (srec_get_symtab): Likewise. (srec_get_reloc_upper_bound): Define as bfd_0l. (srec_canonicalize_reloc): Likewise. * tekhex.c (tekhex_get_symtab): Return long, and -1 on errors. (tekhex_get_symtab_upper_bound): Likewise. (tekhex_get_reloc_upper_bound): Define as bfd_0l. (tekhex_canonicalize_reloc): Likewise. * libaout.h (NAME(aout,get_symtab_upper_bound)): Change declaration to return long. (NAME(aout,get_symtab)): Likewise. (NAME(aout,canonicalize_reloc)): Likewise. (NAME(aout,get_reloc_upper_bound)): Likewise. * libcoff-in.h (coff_get_symtab_upper_bound): Likewise. (coff_get_symtab): Likewise. (coff_get_reloc_upper_bound): Likewise. * libecoff.h (ecoff_get_symtab_upper_bound): Likewise. (ecoff_get_symtab): Likewise. (ecoff_canonicalize_reloc): Likewise. * libelf.h (bfd_elf32_get_symtab_upper_bound): Likewise. (bfd_elf32_get_symtab): Likewise. (bfd_elf32_get_reloc_upper_bound): Likewise. (bfd_elf32_canonicalize_reloc): Likewise. (bfd_elf64_get_symtab_upper_bound): Likewise. (bfd_elf64_get_symtab): Likewise. (bfd_elf64_get_reloc_upper_bound): Likewise. (bfd_elf64_canonicalize_reloc): Likewise. * libnlm.h (nlmNAME(get_symtab_upper_bound)): Likewise. (nlmNAME(get_symtab)): Likewise. (nlmNAME(get_reloc_upper_bound)): Likewise. (nlmNAME(canonicalize_reloc)): Likewise. * archive.c (compute_and_write_armap): Use error_return and no_memory_return labels rather than freeing information in various places. Change storage, symcount and src_count to long. Check errors from bfd_get_symtab_upper_bound and bfd_canonicalize_symtab. * bout.c (b_out_relax_section): Change reloc_size to long. Check for errors from bfd_get_reloc_upper_bound and bfd_canonicalize_reloc. (b_out_get_relocated_section_contents): Likewise. * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Likewise. * elf32-mips.c: Likewise. * elf32-hppa.c (hppa_elf_stub_finish): Likewise. (hppa_look_for_stubs_in_section): Check for errors from bfd_get_symtab_upper_bound, bfd_canonicalize_symtab, and bfd_canonicalize_reloc. * ecofflink.c (bfd_ecoff_debug_accumulate_other): Check for errors from bfd_get_symtab_upper_bound and bfd_canonicalize_symtab. * linker.c (generic_link_read_symbols): Likewise. (_bfd_generic_final_link): Check for errors from bfd_get_reloc_upper_bound and bfd_canonicalize_reloc. * reloc.c (bfd_generic_get_relocated_section_contents): Likewise. * reloc16.c (bfd_coff_reloc16_relax_section): Likewise. (bfd_coff_reloc16_get_relocated_section_contents): Likewise. * libbfd.c (bfd_0l): New function. * libbfd-in.h (bfd_0l): Declare. * aix386-core.c: Change get_symtab_upper_bound, get_symtab, get_reloc_upper_bound, and canonicalize_reloc to use bfd_0l rather than bfd_0u. * cisco-core.c, hppabsd-core.c, hpux-core.c: Likewise. * irix-core.c, osf-core.c, ptrace-core.c, trad-core.c: Likewise. * bfd-in2.h: Rebuilt. * libbfd.h: Rebuilt. * libcoff.h: Rebuilt. * nlm32-sparc.c (nlm_sparc_read_reloc): Remove unused variables temp and name.
1994-03-25 Changes to support linker relaxing of embedded MIPS PIC code toIan Lance Taylor1-81/+130
use a five instruction sequence for funtion calls which are out of range of the bal instruction. * libecoff.h (struct ecoff_section_tdata): Define. (ecoff_section_data): Define. (ecoff_bfd_relax_section): Don't define. * ecoff.c (ecoff_final_link_debug_accumulate): Don't read or free the debugging information if it has already been read. (ecoff_indirect_link_order): Handle _cooked_size being different from _raw_size. Don't reread the contents or the relocs if they have already been read in. * coff-mips.c (mips_howto_table): Change bitsize of PCREL16 from 18 to 16. (PCREL16_EXPANSION_ADJUSTMENT): Define. (mips_relocate_refhi): Take adjust argument. (mips_relocate_section): Handle reloc offsets stored in section used_by_bfd field. Call mips_relax_pcrel16 to handle details of expanding an out of range PCREL16. Keep trace of adjustments required by expansions. Set s and unset h when converting a reloc from undefined to section. Change handling of PC relative relocs: if against a section, they are correct in the object file, if against an external symbol they are pcrel_offset. (mips_relax_section): New function. (mips_relax_pcrel16): New function. (ecoff_bfd_relax_section): Define. * coff-alpha.c (ecoff_bfd_relax_section): Define. * ecofflink.c (bfd_ecoff_debug_accumulate): Handle adjustments built by mips_relax_section when writing out addresses. * elf32-mips.c (mips_elf_read_ecoff_info): Clear adjust field.
1993-08-03 * ecoff.c: New file for generic ECOFF functions.Ian Lance Taylor1-0/+255
* ecoffswap.h: New file for ECOFF swapping functions which differ only slightly for different targets. * libecoff.h: Added prototypes for ecoff.c functions. (ecoff_backend_data): New structure. (ecoff_tdata): Added backend_data field. Changed external data pointers to be PTR rather than to a particular struct. (ecoff_symbol_struct): Moved in from coff-mips.c. * coff-alpha.c, coff-mips.c: Moved common functions into ecoff.c. Added ECOFF backend structures. Include ecoffswap.h. * coff-msym.c: Removed; superseded by ecoffswap.h. * bfd.c: Include coff/internal.h. * Makefile.in (BFD_LIBS): Removed coff-mips.o and coff-msym.o. Added ecoff.o. (BFD64_BACKENDS): Added coff-alpha.o. (CFILES): Removed coff-msym.c. Added ecoff.c. (bfd.o): Added dependency on $(INCDIR)/coff/sym.h. (coff-mips.o): Added dependency on ecoffswap.h and coff/ecoff.h. (ecoff.o, coff-alpha.o): New targets. (coff-msym.o): Removed target.