aboutsummaryrefslogtreecommitdiff
path: root/bfd/bfd-in.h
AgeCommit message (Collapse)AuthorFilesLines
1996-07-19 * configure.in: Set and substitute VERSION, BFD_HOST_64BIT_LONGIan Lance Taylor1-9/+36
(replacing HOST_64BITLONG), BFD_HOST_64_BIT_DEFINED, BFD_HOST_64_BIT, and BFD_HOST_U_64_BIT. Add bfd-in2.h:bfd-in2.h to AC_OUTPUT call. * configure: Rebuild. * bfd-in.h (BFD_ARCH_SIZE): Define as @wordsize@, not @WORDSIZE@. (BFD_HOST_64_BIT): Define conditionally. (BFD_HOST_U_64_BIT): Define when BFD_HOST_64_BIT is defined. (bfd_vma): Typedef as BFD_HOST_U_64_BIT. (symvalue, bfd_size_type): Likewise. * bfd-in2.h: Rebuild. * Makefile.in (do_clean): Remove bfd-tmp.h. (do_distclean): Remove bfd-in3.h. (stmp-bfd.h): Just do copy-if-change bfd-in3.h bfd.h. (bfd-in3.h): New target.
1996-01-09Tue Jan 9 15:22:53 1996 David Mosberger-Tang <davidm@azstarnet.com>Ian Lance Taylor1-3/+14
* coff-alpha.c (alpha_relocate_section): During final link, allow output .lita section to be bigger than 64k by adjusting gp value on a per-input section basis. * libecoff.h (struct ecoff_tdata): Add issued_multiple_gp_warning field. (struct ecoff_section_tdata): Add gp field. Tue Jan 9 12:00:36 1996 Ian Lance Taylor <ian@cygnus.com> Handle Alpha ECOFF changes in OSF/1 3.2. * libecoff.h (struct ecoff_backend_data): Add get_elt_at_filepos field. * coff-alpha.c: Include "aout/ar.h". (alpha_ecoff_get_relocated_section_contents): Don't require an ALPHA_R_IGNORE reloc after an ALPHA_R_GPDISP reloc, since OSF/1 3.2 doesn't generate one. (alpha_relocate_section): Likewise. (alpha_ecoff_slurp_armap): Define. (alpha_ecoff_slurp_extended_name_table): Define. (alpha_ecoff_construct_extended_name_table): Define. (alpha_ecoff_truncate_arname): Define. (alpha_ecoff_write_armap): Define. (alpha_ecoff_generic_stat_arch_elt): Define. (alpha_ecoff_update_armap_timestamp): Define. (ARFZMAG): Define. (alpha_ecoff_read_ar_hdr): New static function. (alpha_ecoff_get_elt_at_filepos): New static function. (alpha_ecoff_openr_next_archived_file): New static function. (alpha_ecoff_get_elt_at_index): New static function. (alpha_ecoff_backend_data): Initialize get_elt_at_filepos field. (ecoffalpha_little_vec): Change BFD_JUMP_TABLE_ARCHIVE from _bfd_ecoff to alpha_ecoff. * ecoff.c (ecoff_link_add_archive_symbols): Use get_elt_at_filepos field from backend structure, rather than always calling _bfd_get_elt_at_filepos. * coff-mips.c (mips_ecoff_backend_data): Initialize get_elt_at_filepos field. * archive.c (_bfd_generic_read_ar_hdr_mag): New function, copied from _bfd_generic_read_ar_hdr with minor changes. (_bfd_generic_read_ar_hdr): Use _bfd_generic_read_ar_hdr_mag. * libbfd-in.h (_bfd_generic_read_ar_hdr_mag): Declare. * libbfd.h: Rebuild. * bfd-in.h (BFD_IN_MEMORY): Define. * libbfd-in.h (struct bfd_in_memory): Define. * libbfd.c (bfd_read): Handle BFD_IN_MEMORY flag. (bfd_get_file_window): Don't try to map a BFD_IN_MEMORY file. (bfd_write, bfd_stat): Abort if BFD_IN_MEMORY is set. (bfd_tell, bfd_flush, bfd_seek): Handle BFD_IN_MEMORY flag. * bfd.c (struct _bfd): Change iostream field from char * to PTR. (bfd_get_size): Handle BFD_IN_MEMORY flag. * cache.c (bfd_cache_close): Ignore BFD_IN_MEMORY files. (bfd_open_file): Cast to PTR, not char *, when setting iostream. (bfd_cache_lookup_worker): Abort if BFD_IN_MEMORY is set. * opncls.c (bfd_fdopenr): Cast to PTR, not char *, when setting iostream. (bfd_openstreamr): Likewise. * aoutx.h (NAME(aout,some_aout_object_p)): Only fstat iostream if BFD_IN_MEMORY is not set. * riscix.c (riscix_some_aout_object_p): Likewise. * bfd-in2.h, libbfd.h: Rebuild. * targets.c (bfd_target): Add _bfd_get_elt_at_index field. (BFD_JUMP_TABLE_ARCHIVE): Add _get_elt_at_index. (bfd_get_elt_at_index): Define. * archive.c (_bfd_generic_get_elt_at_index): Rename from bfd_get_elt_at_index. Change index parameter from int to symindex. * libbfd-in.h (_bfd_generic_get_elt_at_index): Declare. (_bfd_noarchive_get_elt_at_index): Define. (_bfd_archive_bsd_get_elt_at_index): Define. (_bfd_archive_coff_get_elt_at_index): Define. * bfd-in2.h, libbfd.h: Rebuild. * aout-target.h (MY_get_elt_at_index): Define if not defined. * coff-rs6000.c (xcoff_get_elt_at_index): Define. * ieee.c (ieee_get_elt_at_index): Define. * libecoff.h (_bfd_ecoff_get_elt_at_index): Define. * oasys.c (oasys_get_elt_at_index): Define. * som.c (som_get_elt_at_index): Define.
1995-12-07 * xcofflink.c (struct xcoff_loader_info): Add export_definedsIan Lance Taylor1-1/+1
field. (bfd_xcoff_size_dynamic_sections): Add export_defineds parameter. (xcoff_build_ldsyms): If export_defineds is set, set XCOFF_EXPORT for all symbols. * bfd-in.h (bfd_xcoff_size_dynamic_sections): Update declaration. * bfd-in2.h: Rebuild.
1995-12-01 * bfd.c (bfd_record_phdr): New function.Ian Lance Taylor1-1/+5
* bfd-in.h (bfd_record_phdr): Declare. * bfd_in2.h: Rebuild.
1995-11-08 * libbfd.c (bfd_get_file_window): Change writable parameter fromIan Lance Taylor1-1/+1
int to boolean; update all callers. Pass MAP_SHARED if not writable--it's required on Solaris. Cast fprintf argument to avoid warning. * bfd-in.h (bfd_get_file_window): Update declaration. * bfd-in2.h: Rebuild. * aoutx.h: Update calls to bfd_get_file_window.
1995-11-08 * libbfd.c (bfd_get_file_window): Change return type to boolean.Ian Lance Taylor1-3/+4
Cast realloc and malloc return values. If malloc or realloc fail, set bfd_error_no_memory. * bfd-in.h (bfd_get_file_window): Change type to boolean. * bfd-in2.h: Rebuild.
1995-11-06Changes for mmap; details in change log.Ken Raeburn1-0/+22
Added some new interfaces, and a new entry in the target vector. Under the new interfaces, mmap will be used if available, otherwise malloc/seek/read, as before. Old interfaces all still intact. Most configurations (including all used by "--enable-targets=all") simply changed to call the default routine for that entry in the target vector. I might've missed some targets only included in special configurations. Support for a.out symbol and string table reading now goes through new interfaces, and will use mmap when available. Linker hooks (e.g., avoiding reallocation under malloc) not ready yet.
1995-10-27 * xcofflink.c: More improvements, mostly to fix handling ofIan Lance Taylor1-0/+7
constructors and a few other special cases. * coff-rs6000.c (rs6000coff_vec): Set symbol_leading_char back to zero, reverting yesterday's change. * bfd-in.h (bfd_xcoff_link_record_set): Declare. (bfd_xcoff_link_count_reloc): Declare. (bfd_xcoff_record_link_assignment): Declare. * bfd-in2.h: Rebuild.
1995-10-25 * xcofflink.c: Extensive changes to support linking shared objectsIan Lance Taylor1-0/+16
and generating a .loader section. * libcoff-in.h (struct xcoff_tdata): Add import_file_id field. (struct xcoff_section_tdata): Add first_symndx, last_symndx, and ldrel_count fields. * libcoff.h: Rebuild. * coff-rs6000.c (xcoff_howto_table): Correct reloc names. * coffcode.h (styp_to_sec_flags): Don't set any flags if STYP_PAD is set. * bfd-in.h (bfd_xcoff_import_symbol): Declare. (bfd_xcoff_export_symbol): Declare. (bfd_xcoff_size_dynamic_sections): Declare. * bfd-in2.h: Rebuild.
1995-10-16 * bfd-in.h (struct bfd_link_needed_list): Rename fromIan Lance Taylor1-7/+13
bfd_elf_link_needed_list. * bfd-in2.h: Rebuild. * elf.c, elflink.h, libelf.h: Corresponding changes.
1995-09-06 * configure.in: Call AC_CONFIG_HEADER. SubstituteIan Lance Taylor1-29/+31
HOST_64BIT_LONG. Check that various header files exist. Check that fcntl exists. Call BFD_BINARY_FOPEN. Check whether malloc and/or free need to be declared. Don't make a link to sysdep.h. Define TRAD_HEADER for various hosts. * configure: Rebuild. * configure.host: Don't set my_host. Add definitions taken from host header files for various entries. Remove entries which now do nothing. * acconfig.h: New file. * config.h.in: New file, built by autoheader. * sysdep.h: New file. * Makefile.in (do_distclean): Don't remove sysdep.h. (RECONFIG): Remove. (LOCAL_H_DEPS): New variable. ($(BFD_LIBS)): Use $(LOCAL_H_DEPS) rather than libbfd.h and $(RECONFIG). ($(BFD_MACHINES), $(BFD_BACKENDS)): Likewise. ($(OPTIONAL_BACKENDS)): Likewise. (stmp-bfd.h): Just substitute for BFD_HOST_64BIT_LONG, rather than looking through sysdep.h. * bfd-in.h (BFD_HOST_64BIT_LONG): Define; set by Makefile. (BFD_HOST_64_BIT): Define based on BFD_HOST_64BIT_LONG. (fprintf_vma, sprintf_vma): Likewise. (int64_type, uint64_type): Don't define. * bfd-in2.h: Rebuild. * archures.c, bfd.c, srec.c: Include <ctype.h>. * elfcore.h: Check HAVE_SYS_PROCFS_H rather than HAVE_PROCFS. * lynx-core.c: Include stuff from old hosts/lynx.h. * opncls.c (bfd_fdopenr): Check HAVE_FNCTL and defined (F_GETFL), rather than NO_FCNTL. * targets.c (bfd_target_list): Check HOST_HPPAHPUX and ! __STDC__ rather than NATIVE_HPPAHPUX_COMPILER. * trad-core.c: Don't include <errno.h>. Include TRAD_HEADER if it is defined. * hosts/*.h: Remove all header files which merely include, declare, and define things. Leave header files which define information needed by trad-core.c.
1995-08-31Thu Aug 31 16:00:53 1995 steve chamberlain <sac@slash.cygnus.com>Steve Chamberlain1-52/+0
* 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-08-31 * bfd-in.h: Add extern "C" if __cplusplus.Ian Lance Taylor1-20/+37
* bfd-in2.h: Rebuild. PR 7882.
1995-07-04 * elfcode.h (NAME(bfd_elf,record_link_assignment)): Add provideIan Lance Taylor1-2/+2
argument. * bfd-in.h (bfd_elf32_record_link_assignment): Update prototype. (bfd_elf64_record_link_assignment): Likewise. * bfd-in2.h: Rebuild. PR 7164.
1995-07-04 * libelf.h (struct elf_link_hash_table): Add needed field. RemoveIan Lance Taylor1-8/+11
saw_needed field. * elfcode.h (elf_link_add_object_symbols): If elf_dt_needed_name is an empty string, don't make a DT_NEEDED entry in the output file. Record all DT_NEEDED entries found in input dynamic objects. (elf_link_output_extsym): Don't check saw_needed when issuing warnings. * elf.c (_bfd_elf_link_hash_table_init): Initialize needed, not saw_needed. (bfd_elf_get_needed_list): New function. * bfd-in.h (struct bfd_elf_link_needed_list): Define. (bfd_elf_get_needed_list): Define. * bfd-in2.h: Rebuild. PR 7083.
1995-06-15 * bfd-in.h, bfd-in2.h (bfd_boolean): Rename bfd_true, bfd_falseStan Shebs1-3/+4
to bfd_tttrue, bfd_fffalse so as not to conflict with functions. * coffswap.h (coff_swap_scnhdr_out): Remove version that was hacked for MPW C. * mpw-config.in: Set shell vars instead of pasting to makefile for each configuration, edit coffswap.h to make MPW C not choke. (i386-unknown-coff, sh-hitachi-hms): Recognize. * mpw-make.in (BFD_LIBS): Add versados.c.o. * versados.c (versados_scan): Properly cast results from bfd_alloc.
1995-06-10 * targets.c: Add copy_private_symbol_data and link_split_sectionJeff Law1-6/+4
to the target vector. * libbfd-in.h (_bfd_generic_bfd_copy_private_symbol_data): Define. (_bfd_nolink_bfd_link_split_section): Likewise. (bfd_generic_link_split_section): Declare. * syms.c (bfd_copy_private_symbol_data): Define. * linker.c (bf_link_split_section): Likewise. * som.c (som_bfd_copy_private_symbol_data): New function (som_bfd_link_split_section): Likewise. * All other targets updated with default versions of new routines. * Take out my braindamaged bfd_true/bfd_false changes from earlier today. Replace with just: * bfd-in.h: (TRUE_FALSE_ALREADY_DEFINED): Define this if compiling with g++-2.6 or later. * bfd-in2.h: Rebuilt.
1995-06-09 * bfd-in.h (bfd_true, bfd_false): Define these to true and falseJeff Law1-0/+2
if TRUE_FALSE_ALREADY_DEFINED is not defined. * bfd-in2.h: Rebuilt.
1995-06-09 * bfd-in.h: (TRUE_FALSE_ALREADY_DEFINED): Define this ifJeff Law1-18/+93
compiling with g++-2.6 or later. (bfd_set_section_vma): Use bfd_true and bfd_false rather than true and false. (bfd_set_section_alignment): Likewise. (bfd_set_section_userdata): Likewise. (bfd_set_cacheable): Likewise. * bfd-in2.h: Rebuilt.
1994-06-16 * libelf.h (struct elf_obj_tdata): New field dt_needed_name.Ian Lance Taylor1-0/+1
(elf_dt_needed_name): New accessor macro. * elfcode.h (elf_link_add_object_symbols): If elf_dt_needed_name is set, use that instead of the filename for the DT_NEEDED dynamic entry. * elf.c (bfd_elf_set_dt_needed_name): New function. * bfd-in.h (bfd_elf_set_dt_needed_name): Declare. * bfd-in2.h: Rebuilt.
1994-06-15 * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add sinterpptrIan Lance Taylor1-2/+2
argument, and set it to the .interp section. * bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype. (bfd_elf64_size_dynamic_sections): Likewise. * bfd-in2.h: Rebuilt.
1994-06-15 * bfd-in.h (BFD_TRADITIONAL_FORMAT): Define new BFD flag toIan Lance Taylor1-0/+14
request BFD to write object in the traditional format, whatever that means for the particular backend. * bfd-in2.h: Rebuilt.
1994-05-19 Add support for ELF shared libraries. Loosely based on work byIan Lance Taylor1-1/+18
Eric Youngdale <ericy@cais.com>. * libelf.h (struct elf_backend_data): Add new fields for dynamic linking: elf_backend_create_dynamic_sections, elf_backend_adjust_dynamic_symbol, elf_backend_size_dynamic_sections, elf_backend_finish_dynamic_symbol, elf_backend_finish_dynamic_sections. (struct elf_link_hash_entry): Change type of align field to bfd_size_type. Add fields dynindx, dynstr_index, weakdef, elf_link_hash_flags. (struct elf_link_hash_table): Add fields dynobj, dynsymcount, dynstr, bucketcount. (bfd_elf32_swap_reloc_in, bfd_elf32_swap_reloc_out): Declare. (bfd_elf32_swap_reloca_in, bfd_elf32_swap_reloca_out): Declare. (bfd_elf32_swap_dyn_in, bfd_elf32_swap_dyn_out): Declare. (bfd_elf32_add_dynamic_entry): Declare. (bfd_elf64_swap_reloc_in, bfd_elf64_swap_reloc_out): Declare. (bfd_elf64_swap_reloca_in, bfd_elf64_swap_reloca_out): Declare. (bfd_elf64_swap_dyn_in, bfd_elf64_swap_dyn_out): Declare. (bfd_elf64_add_dynamic_entry): Declare. * elfcode.h (Elf_External_Dyn): Define. (elf_swap_reloc_in): Define as macro using NAME. Make externally visible. (elf_swap_reloc_out): Likewise. (elf_swap_reloca_in, elf_swap_reloca_out): Likewise. (elf_swap_dyn_in, elf_swap_dyn_out): Define as macro using NAME and as new externally visible function. (elf_fake_sections): Set section type of dynamic sections based on section names. (elf_write_phdrs): Remove. (assign_file_position_for_section): Add new align argument. Change all callers. (get_program_header_size): New static function. (struct seg_info): Remove. (map_program_segments): Completely rewrite. (assign_file_positions_except_relocs): Completely rewrite. (assign_file_positions_for_relocs): Don't set a file position for sections which already have one. Don't bother to align the file position here. (section_from_elf_index): Handle SHT_HASH and SHT_DYNAMIC section types. (elf_section_from_bfd_section): Likewise. (elf_slurp_symbol_table): If section_from_elf_index fails, just use bfd_abs_section rather than returning an error. (elf_sizeof_headers): Make useful. (elf_link_record_dynamic_symbol): New static function. (elf_link_add_object_symbols): Handle dynamic objects. (elf_link_create_dynamic_sections): New static function. (elf_add_dynamic_entry): Define as macro using NAME and as new externally visible function. (NAME(bfd_elf,record_link_assignment)): New function. (elf_buckets): New static variable. (NAME(bfd_elf,size_dynamic_sections)): New function. (struct elf_final_link_info): Add dynsym_sec and hash_sec fields. (elf_bfd_final_link): Handle dynamic linking. Create a section symbol for all ELF sections, not all BFD sections. Store section symbol index in target_index field, not index field. Traverse over global symbols even if stripping. (elf_link_output_extsym): Output dynamic symbols. Mark symbols defined by dynamic objects as undefined. (elf_link_input_bfd): Ignore dynamic objects. Use target_index field for section relocs, and make sure it is set. (elf_reloc_link_order): Use target_index field for section relocs, and make sure it is set. * elf.c (elf_link_hash_newfunc): Initialize dynindx, dynstr_index, weakdef and elf_link_hash_flags fields. (_bfd_elf_link_hash_table_create): Initialize dynobj, dynsymcount, dynstr and bucketcount fields. * elf32-target.h: Initialize new dynamic linking fields. * elf64-target.h: Likewise. * elf32-i386.c: New functions for dynamic linking support. * elf32-sparc.c: Likewise. * bfd-in.h (bfd_elf32_record_link_assignment): Declare. (bfd_elf64_record_link_assignment): Declare. (bfd_elf32_size_dynamic_sections): Declare. (bfd_elf64_size_dynamic_sections): Declare. * bfd-in2.h: Rebuilt.
1994-04-07Updated copyright (bfd-in2.h check in coming soon).Ian Lance Taylor1-1/+1
1994-04-06 * targets.c (bfd_target): Rearranged fields in target vector.Ian Lance Taylor1-46/+0
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-13/+17
* 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-01-22 * bfd-in.h: Remove decls of bfd_ec type and error printing functions.David MacKenzie1-45/+8
Remove decl of type symclass; wasn't used. * bfd.c: Document error handling, including code fragments containing the error decls that were in bfd-in.h. Remove DEFUNs. * bfd-in2.h: Regenerated.
1994-01-21 * aoutx.h (translate_to_native_sym_flags), bfd-in.h (bfd_ec),David MacKenzie1-3/+1
oasys.c (oasys_write_sections): Rename bfd_error_nonrepresentable_section to nonrepresentable_section. None of the other bfd error names start with "bfd_error". Remove errors symbol_not_found and no_relocation_info, which seem to be unused. * bfd-in2.h: Regenerated.
1994-01-19(uint64_typeHIGH, uint64_typeLOW): Supply default definitions when not defined,Ken Raeburn1-5/+23
regardless of whether uint64_type is a defined macro or not. (fprintf_vma, sprintf_vma): Define only if fprintf_vma is not already defined.
1994-01-07Fri Jan 7 10:29:27 1994 Stan Shebs (shebs@andros.cygnus.com)Stan Shebs1-2/+8
* bfd-in.h: (bfd_boolean): Add workaround for systems that also define true and false as enums. (ALMOST_STDC): Add as alternative to __STDC__. * bfd-in2.h: Rebuilt. * syms.c (bfd_print_symbol_vandf): Convert a PTR to FILE*.
1994-01-06 * ecoff.c: First cut at new style of linker backend forIan Lance Taylor1-1/+6
ECOFF--added a bunch of functions. Also: (ecoff_sec_to_styp_flags): Set flags for .pdata and .xdata. (ecoff_slurp_symbolic_header): New function. (ecoff_slurp_symbolic_info): Call ecoff_slurp_symbolic_header. (ecoff_compute_reloc_file_positions): New function. (ecoff_set_section_contents): Get out quickly if count is zero. Check errors better. (ecoff_write_object_contents): Put .xdata section in data segment. Call ecoff_compute_reloc_file_positions. Don't output relocs or external symbols if outsymbols is NULL. (ecoff_bfd_final_link): Completely rewritten. * libecoff.h: Include bfdlink.h. (struct ecoff_backend_data): Add relocate_section field. (ecoff_data_type): Add sym_hashes and symndx_to_section fields. (struct ecoff_link_hash_entry): Define. (struct ecoff_link_hash_table): Define. (ecoff_bfd_link_add_symbols): Declare as function, not macro. (ecoff_bfd_link_hash_table_create): Likewise. * ecofflink.c (bfd_ecoff_debug_one_external): New function. (bfd_ecoff_debug_externals): Call bfd_ecoff_debug_one_external. * bfd-in.h (bfd_ecoff_debug_one_external): Declare. * bfd-in2.h: Rebuilt. * coff-alpha.c (alpha_howto_table): Mark BRADDR as partial_inplace, and set the src_mask to 0x1fffff. (alpha_ecoff_get_relocated_section_contents): Remove unused variable gp_warned. (alpha_convert_external_reloc): New static function. (alpha_relocate_section): New static function. (alpha_ecoff_backend_data): Initialize relocate_section field. * coff-mips.c (mips_relocate_refhi): New static function. (mips_relocate_section): New static function. (mips_ecoff_backend_data): Initialize relocate_section field.
1994-01-03 * bfd-in.h (bfd_get{b,l}[_signed_]{16,32,64}): Declare argument toIan Lance Taylor1-12/+12
be a const pointer. * bfd-in2.h: Rebuilt. * libbfd.c (bfd_get{b,l}[_signed_]{16,32,64}): Declare argument to be a const pointer. * targets.c (bfd_target): Change swap function pointers accordingly. * archive.c (do_slurp_coff_armap): Change swap accordingly. * aix386-core.c: Change NO_GET and NO_GETS accordingly. * hppabsd-core.c, hpux-core.c, irix-core.c, osf-core.c, ptrace-core.c, trad-core.c: Change NO_GET and NO_SIGNED_GET accordingly.
1993-12-30 Extensive changes to move the bulk of the linker into BFD so thatIan Lance Taylor1-39/+112
more efficient backend code can be written for specific object files. Only existing efficient backend is a.out. * seclet.c, seclet.h: Removed. * hash.c, linker.c, genlink.h: New files. * bfd-in.h: Removed bfd_error_vector. Declared hash table structures and functions. (JUMP_TABLE): Removed bfd_seclet_link, added bfd_link_hash_table_create, bfd_link_add_symbols and bfd_final_link. * All backends: Changed accordingly. * bfd-in2.h: Rebuilt. * bfd.c (struct _bfd): Added link_next and archive_pass fields. Removed ld_symbols field. (bfd_nonrepresentable_section, bfd_undefined_symbol, bfd_reloc_value_truncated, bfd_reloc_is_dangerous, bfd_error_vector): Removed. (bfd_default_error_trap, bfd_error_trap, bfd_error_nonrepresentabltrap): Removed. (bfd_get_relocated_section_contents): Pass link_info. Pass link_order instead of seclet. Pass symbols. (bfd_relax_section): Pass link_info. (bfd_seclet_link): Removed. (bfd_link_hash_table_create, bfd_link_add_symbols, bfd_final_link): New macros. * libbfd-in.h: If __GNUC__ is defined and alloca is not, define alloca as __builtin_alloca. Declare internal linking functions. * libbfd.h: Rebuilt. * libbfd.c (bfd_seek): Comment out fseek assertion. It's worked for months. * reloc.c (reloc_howto_type): Added error_message argument to special_function field. Changed all callers and all definitions. (bfd_get_reloc_size): Make argument a const pointer. (bfd_perform_relocation): Add error_message argument to hold string set if return value if bfd_reloc_dangerous. Changed all callers. (_bfd_final_link_relocate, _bfd_relocate_contents): New functions. * section.c (asection): Renamed seclets_head and seclets_tail to link_order_head and link_order_tail. * targets.c (bfd_target): Replaced seclet argument with link_info and link_order and symbols arguments in bfd_get_relocated_section_contents. Added symbols argument to bfd_relax_section. Removed bfd_seclet_link. Added bfd_link_hash_table_create, bfd_link_add_symbols and bfd_final_link. * libaout.h (struct aoutdata): Added external_syms, external_sym_count, external_strings, sym_hashes fields. (obj_aout_external_syms, obj_aout_external_sym_count, obj_aout_external_strings, obj_aout_sym_hashes): New accessor macros. (WRITE_HEADERS): Only output symbols if outsymbols is not NULL. * aoutx.h: Wrote new back end linker routines. (translate_to_native_sym_flags): Return boolean value. Don't use bfd_error_vector. (NAME(aout,write_syms)): Return boolean value. Check return value of translate_to_native_sym_flags and bfd_write. * aout-target.h (final_link_callback): New function. (MY_bfd_final_link): New function. * aout-adobe.c (aout_adobe_write_object_contents): Check return value of aout_32_write_syms. * hp300hpux.c (MY(write_object_contents)): Likewise. * i386lynx.c (WRITE_HEADERS): Likewise. * libaout.h (WRITE_HEADERS): Likewise. * bout.c: Changed functions to use link_info->callbacks rather than bfd_error_vector, and link_orders rather than seclets. * coff-alpha.c: Likewise. * coff-h8300.c: Likewise. * coff-h8500.c: Likewise. * coff-sh.c: Likewise. * coff-z8k.c: Likewise. * elf32-hppa.c: Likewise. * reloc16.c: Likewise. * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Look up _gp in the hash table rather than in outsymbols. * coff-a29k.c (a29k_reloc): Pass errors back in new error_message argument rather than printing them. * coffcode.h (bfd_coff_reloc16_extra_cases): Take link_info and link_order arguments rather than seclet. Changed all uses and definitions. (bfd_coff_reloc16_estimate): Pass link_info arguments. Changed all uses and definitions. * libcoff.h: Rebuilt. * ecoff.c (ecoff_get_extr): If symbol is defined by linker, but not by ECOFF, make it scAbs. (ecoff_bfd_final_link): Renamed from ecoff_bfd_seclet_link and rewritten. * elf32-mips.c (mips_elf_final_link): Renamed from mips_elf_seclet_link and rewritten. * elf32-hppa.c (elf32_hppa_stub_description): Added link_info field. (new_stub, add_stub_by_name, hppa_elf_build_arg_reloc_stub, hppa_elf_build_long_branch_stub, hppa_look_for_stubs_in_section): Added link_info arguments. Changed all callers. * elfcode.h (elf_slurp_symbol_table): Don't quit if outsymbols is not NULL. * oasys.c (oasys_write_sections): Return boolean value rather than using bfd_error_vector. (oasys_write_object_contents): Check return value of oasys_write_sections. * hosts/std-host.h: Don't declare qsort or strtol. * Makefile.in: Rebuild dependencies. (BFD_LIBS): Removed seclet.o. Added hash.o and linker.o. (CFILES): Removed seclet.c. Added hash.c and linker.c. (HFILES): Removed seclet.h. Added genlink.h.
1993-11-24 * ecofflink.c: New file to hold ECOFF debug information linkingIan Lance Taylor1-17/+89
routines. * ecoff.c (ecoff_clear_output_flags, ecoff_rel, ecoff_dump_seclet, ecoff_add_string, ecoff_get_debug): Removed. Functionality now in ecofflink.c. (ecoff_get_extr, ecoff_set_index): New functions. (ecoff_slurp_symbolic_info): Don't save raw_size. (ecoff_bfd_seclet_link): Rewrote to use ecofflink.c functions. (ecoff_compute_section_file_positions): Don't set EXEC_P just because there is a start address. (ecoff_write_object_contents): Handle external symbols here. Use ecofflink.c functions to write out debugging information. * elf32-mips.c (mips_elf_read_ecoff_info, mips_elf_get_extr, mips_elf_set_index): New functions. (mips_elf_seclet_link): Discard empty sections, the .options section and .gptab sections. Handle linking .mdebug section. * libecoff.h (ecoff_data_type): Removed raw_size and ifdbase. * libelf.h (elf_symbol_type): Added mips_extr to tc_data union. * bfd-in.h: Added prototypes for routines in ecofflink.c (some are called by gas, so they are public). * bfd-in2.h: Rebuilt. * Makefile.in (BFD_LIBS): Added ecofflink.o. (CFILES): Added ecofflink.c. (ecofflink.o): New target. Rebuilt dependencies.
1993-08-05rewrite comment -- bfd-in2.h is generated tooKen Raeburn1-4/+38
1993-06-21Change insertion marker for new bfd.h generation scheme.Ken Raeburn1-4/+2
1993-06-16Put in marker for sysdep.h inclusion.Ken Raeburn1-10/+52
(int64_type, uint64_type): Define when using "long long" fallback for HOST_64_BIT.
1993-04-17 * libbfd.c: Add signed versions of bfd_{h_,}{get,put}_signed_<size>.Jim Kingdon1-6/+23
libbfd.c, libbfd-in.h: Add _do*signed*. targets.c, all targets: Add bfd*signed*. bfd-in.h: Add bfd_signed_vma. Add comments.
1993-04-15Thu Apr 15 09:09:18 1993 Jim Kingdon (kingdon@cygnus.com)Jim Kingdon1-0/+4
* bfd-in.h (bfd_error), bfd.c (bfd_errmsgs): Add file_truncated. * format.c (bfd_check_error): Check error return from _bfd_check_format routines. Wed Apr 14 23:48:25 1993 Jim Kingdon (kingdon@cygnus.com) * rs6000-core.c (rs6000coff_core_p): Improve error checking and recognize .data section if present.
1993-04-15Cleanup in preparation for better 64-bit host support.John Gilmore1-12/+5
* bfd-in.h (bfd_64_type): Remove. * libbfd.c (_do_getb64, _do_putb64): Use bfd_vma, not bfd_64_type. * bfd-in.h (bfd_size): Remove. * bfd-in.h (bfd_offset): Remove, after fixing ld/ldlang.[ch]. * bfd-in.h (bfd_word): Remove. * reloc.c (reloc_howto_type): Replace bfd_word with bfd_vma. * bfd-in.h (rawdata_offset): Remove. * reloc.c (arelent): Replace rawdata_offset with bfd_size_type. (bfd_perform_relocation): Lint. (enum bfd_reloc_status): Comment cleanup.
1993-02-16Roll to version 2.1.John Gilmore1-2/+4
1993-01-12Mon Jan 11 18:32:22 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)Ian Lance Taylor1-9/+7
* targets.c (bfd_target): Added relocateable argument to _bfd_get_relocated_section_contents. Added _bfd_seclet_link target vector for linker use. * bfd.c (bfd_seclet_link): New macro. * bfd-in.h (JUMP_TABLE): Added _bfd_seclet_link. * seclet.c (rel, seclet_dump_seclet): Added relocateable argument and boolean return value. Made static. (bfd_generic_seclet_link): Renamed from seclet_dump. Added relocateable argument. * reloc.c (bfd_generic_get_relocated_section_contents): Added relocateable argument (if relocateable, saves relocs). * bout.c (b_out_get_relocated_section_contents), reloc16.c (bfd_coff_reloc16_get_relocated_section_contents): Added relocateable argument (if relocateable, just calls bfd_generic_get_relocated_section_contents). * libcoff-in.h (bfd_coff_reloc16_get_value): Added relocateable argument to prototype. * All targets: Set new _bfd_seclet_link vector to bfd_generic_seclet_link.
1992-11-28* libbfd-in.h, bfd-in.h: Eliminate all PROTO calls, replace withJohn Gilmore1-21/+11
PARAMS for readability.
1992-11-05* bfd-in.h: Improve comments to make it clear that bfd.h isJohn Gilmore1-6/+15
the wrong place to edit this file. * Makefile.in (install): Install ansidecl.h and obstack.h in the same places where we install bfd.h. * libieee.h: Add FIXME about removing limit on number of sections.
1992-10-08Some of these are guesses, if you know different, just yell.Steve Chamberlain1-29/+21
Thu Oct 8 08:52:48 1992 Steve Chamberlain (sac@thepub.cygnus.com) Now a bfd knows whether underscores are normally prepended to symbols in its file format. Helps with error messages. * aout-adobe.c, aout-target.h, bout.c, coff-a29k.c, coff-h8300.c, coff-z8k.c: targets set so they have leading underscore * coff-i386.c, coff-i960.c, coff-m68k.c, coff-mips.c, coff-m88k.c, coff-rs6000.c, coff-we32k.c, elf.c, ieee.c, srec.c: targets set without leading underscore flag * targets.c: add symbol leading char to xvec description * bfd-in.h (bfd_get_symbol_leading_char): new macro.
1992-05-04 * bfd-in.h: bump version to 1.96Steve Chamberlain1-4/+5
Major change; changed calling convention for bfd_get_relocated_section_contents so that caller allocates memory for section data. * coffcode.h (bfd_coff_get_relocated_section_contents), reloc.c, seclet.c, targets.c, bfd.c: reflect new convention. * coffcode.h (styp_to_sec_flags): if styp_flags is not a special case, then use reasonable default values for SEC_* flags.
1992-01-24Uses the new small reloc type now.Steve Chamberlain1-34/+22
Currently self hosts on sun4 and sun3
1991-10-25RS/6000 support, by Metin G. Ozisik, Mimi Phûông-Thåo Võ, and John Gilmore.John Gilmore1-6/+14
1991-10-04* bfd-in.h: enum boolean => enum bfd_boolean for SVR4. Gumby'sJohn Gilmore1-3/+4
prediction is vindicated! * bfd-in.h, libbfd-in.h, doc/Makefile, doc/tolibbfd, doc/intobfd: Remove refs to howto.c, since Steve forgot.
1991-10-01Insert the incidentals and things I forgot to ci last time, same log message:Steve Chamberlain1-0/+346
Mon Sep 30 15:13:46 1991 Steve Chamberlain (steve at cygnus.com) * cpu-a29k.c, cpu-i386.c, cpu-m68k.c, cpu-mips.c, cpu-vax.c, cpu-h8300.c, cpu-i960.c, cpu-m88k.c, cpu-sparc.c: added. These files will eventually contain processor specific bits for bfd, like strange relocation information and dis/assembly. So far only the H8 has been even partially done. This work also ties in with the change in handling architectures. * amdcoff.c: (a29k_reloc) fix error message. * aout-f1.h: (choose_reloc_size) now calls bfd_get_arch to discover the architecture of the bfd. (sunos4_callback) calls the function bfd_set_arch_mach rather than stuffing stuff directly into the bfd. (sunos4_write_object_contents), changed names of accessor functions. * aoutx.h: (set_arch_mach) now calls bfd_default_set_arch_mach to setup the environment. * archive.c: (bfd_slurp_coff_armap) coff archives always have the headers in big endian format, regardless of the endianess of the host or target. * archures.c: totally changed. Now an architecture is represented with a pointer to an info structure rather than an enumerated type and a long. The old info is available as two elements in the structure. Future enhancements to architecure support will involve pointers to methods being placed into the info structure. * bfd.c: changed the definition of the bfd structure for the new architecture stuff. * bout.c: (b_out_set_arch_mach) changed to use the new architecture mechanism. * coffcode.h: (coff_set_arch_mach, coff_set_flags) changed to use the new architecture mechanism. * configure.in: added h8 stuff. * ieee.c: too many changes to note. Now ieee files written with bfd gas and ld can be read by gld and ieee only linkers and simulators. * libbfd.c, libbfd.h: changed prototype of bfd_write. * newsos3.c: (newos3_callback) now calls bfd_set_arch_mach rather than fixing the structure directly. * oasys.c: (oasys_object_p) now calls bfd_default_set_arch_mach rather than fixing the structure directly. * opncls.c: (new_bfd) makes sure that bfd_init has been called before opening a bfd. * srec.c: (srec_set_arch_mach) now calls bfd_default_set_arch_mach rather than fixing the structure directly. * targets.c: (target_vector) now by defining SELECT_VECS (perhaps in the t/hmake file) a user can select which backends they want linked with bfd without changing the source. * init.c: new, looks after initializing modules. * howto.c: for future use, will allow an application to work out what cookie to use as a handle on a relcoatio howto.