blob: d3d14a9ccbb780d103c076d52d81fae5a8deeb89 [file] [log] [blame]
Thu Dec 21 12:43:49 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* elf32-ppc.c (ppc_elf_howto_raw): Add a phony reloc to handle the
old style TOC16 references without using R_PPC_GOT.
(ppc_reloc_type): Ditto.
(ppc_elf_reloc_type_lookup): Add support for TOC16.
(ppc_elf_toc16_inner): Renamed from ppc_elf_got16_inner.
(ppc_elf_toc16_reloc): Renamed from ppc_elf_toc16_reloc.
(ppc_elf_got16_{inner,reloc}): Stubs for real GOT support.
(ppc_elf_check_relocs): New function for GOT/PLT support that is
work in progress.
(ppc_elf_adjust_dynamic_symbol): Ditto.
(ppc_elf_adjust_dynindx): Ditto.
(ppc_elf_size_dynamic_sections): Ditto.
(ppc_elf_finish_dynamic_symbol): Ditto.
(ppc_elf_finish_dynamic_sections): Ditto.
(ELF_DYNAMIC_INTERPRETER): Define.
Wed Dec 20 19:14:18 1995 Ken Raeburn <raeburn@cygnus.com>
* elf.c (copy_private_bfd_data): When attaching sections to
segments ignore sections that won't be allocated. Patch from
Andreas Schwab.
Tue Dec 19 20:01:43 1995 Ken Raeburn <raeburn@cygnus.com>
* config.bfd: Match on m68k-cbm-* only if OS doesn't match
anything else.
Tue Dec 19 16:38:59 1995 Ian Lance Taylor <ian@cygnus.com>
* coff-i960.c (CALC_ADDEND): Define.
(coff_i960_relocate_section): Add the input section VMA to the
addend for PC relative relocs.
Sun Dec 17 20:11:55 1995 Kim Knuttila <krk@cygnus.com>
* peicode.h (pe_print_pdata): Must test the entire entry for zero
to correctly terminate.
Fri Dec 15 12:05:57 1995 Ian Lance Taylor <ian@cygnus.com>
* targets.c (enum bfd_endian): Define.
(bfd_target): Rename byteorder_big_p to byteorder, and change it
from boolean to enum bfd_endian. Change header_byteorder_big_p
correspondingly.
* bfd-in.h (bfd_big_endian, bfd_little_endian): New macros.
(bfd_header_big_endian, bfd_header_little_endian): New macros.
* bfd-in2.h: Rebuild.
* All targets: Change initialization of byteorder and
header_byteorder to use enum bfd_endian values rather than
booleans.
* All files: Change all references to byteorder_big_p and
header_byteorder_big_p to use new bfd_*_endian macros.
* coffgen.c (make_a_section_from_file): Set lma to s_paddr, not
s_vaddr.
* coffcode.h (coff_write_object_contents): Set s_paddr to lma, not
vma.
* ecoff.c (_bfd_ecoff_write_object_contents): Likewise.
Fri Dec 15 07:32:09 1995 steve chamberlain <sac@slash.cygnus.com>
* pe[i]-i386.c (TARGET_UNDERSCORE): Define to '_'.
Thu Dec 14 13:45:37 1995 Ian Lance Taylor <ian@cygnus.com>
* ieee.c: Lots of minor cleanups. Make many functions return
errors rather than calling abort. Also:
(ieee_write_twobyte): Remove; change callers to call existing
ieee_write_2bytes function.
(ieee_write_expression): Don't output the section twice when
outputting a local symbol. Don't emit an extraneous zero if there
is only one term.
(ieee_slurp_sections): Set the lma as well as the vma.
(ieee_archive_p): Use bfd_alloc_grow rather than an obstack.
* ihex.c (ihex_set_arch_mach): Don't accept any architecture, just
a recognized one or bfd_arch_unknown.
(ihex_get_symtab_upper_bound): Define as bfd_0l, to permit objcopy
to succeed.
(ihex_get_symtab): Likewise.
Wed Dec 13 15:44:06 1995 Ian Lance Taylor <ian@cygnus.com>
* aoutx.h: Include <ctype.h>.
(struct aout_link_includes_table): Define.
(struct aout_link_includes_totals): Define.
(struct aout_link_includes_entry): Define.
(aout_link_includes_lookup): Define macro.
(struct aout_final_link_info): Add includes field.
(aout_link_includes_newfunc): New static function.
(NAME(aout,final_link)): Initialize includes hash table.
(aout_link_write_symbols): Eliminate duplicate N_BINCL entries.
Wed Dec 13 10:52:14 1995 Stan Shebs <shebs@andros.cygnus.com>
* mpw-config.in: Match on mips-*-* instead of mips-idt-ecoff.
Wed Dec 13 11:07:45 1995 Kim Knuttila <krk@cygnus.com>
* coff-ppc.c (coff_ppc_relocate_section): removed debugging code.
Tue Dec 12 17:42:06 1995 Kim Knuttila <krk@cygnus.com>
* peicode.h (pe_print_reloc): New function to dump the .reloc section.
(pe_print_private_bfd_data): call pe_print_reloc.
* coffcode.h (coff_set_alignment_hook): .reloc section alignment.
* coff-ppc.c (in_reloc_p): Added missing non-eligible relocs. Spiffed
up some debugging as well.
Tue Dec 12 11:34:23 1995 Ian Lance Taylor <ian@cygnus.com>
* config.bfd: Handle sparc-*-elf*. From Ronald F. Guilmette
<rfg@monkeys.com>.
Fri Dec 8 17:47:07 1995 Ian Lance Taylor <ian@cygnus.com>
* elflink.h (elf_link_add_object_symbols): Set section_count to 0
when setting sections to NULL.
Wed Dec 6 17:05:37 1995 Ian Lance Taylor <ian@cygnus.com>
* xcofflink.c (struct xcoff_loader_info): Add export_defineds
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.
Mon Dec 4 16:40:47 1995 Kim Knuttila <krk@cygnus.com>
* coffcode.h (coff_set_alignment_hook): Removed some debugging printf's
Mon Dec 4 11:25:39 1995 Ian Lance Taylor <ian@cygnus.com>
* ihex.c (ihex_scan): Handle record types 4 and 5.
(ihex_object_p): Permit types 4 and 5.
(ihex_set_section_contents): Remove check for out of range
addresses.
(ihex_write_object_contents): Generate types 4 and 5.
* elflink.h (elf_link_output_extsym): Just ignore warning and
indirect references to symbols which don't really exist.
Sun Dec 3 19:00:27 1995 Kim Knuttila <krk@cygnus.com>
* peicode.h (pe_print_idata): Minor format fixes
(pe_print_edata): New function. Under private printing, this formats
the edata section of a PE file.
(pe_print_private_bfd_data): Added call to pe_print_edata.
Sun Dec 3 16:46:54 1995 Richard Earnshaw (rearnsha@armltd.co.uk)
* aout-arm.c (MY_swap_std_reloc_out): Use KEEPIT to get the symbol
index, don't call stoi.
Fri Dec 1 14:46:51 1995 Ian Lance Taylor <ian@cygnus.com>
* srec.c (srec_scan): Set lma as well as vma.
* ihex.c: New file; support for Intel Hex format.
* targets.c (enum bfd_flavour): Add bfd_target_ihex_flavour.
(ihex_vec): Declare.
(bfd_target_vector): Always include ihex_vec.
* bfd.c (struct _bfd): Add ihex_data field to tdata union.
* Makefile.in: Rebuild dependencies.
(BFD_LIBS): Add ihex.o
(BFD_LIBS_CFILES): Add ihex.c.
* bfd-in2.h: Rebuild.
* elf.c (assign_file_positions_for_segments): Sort the sections in
each segment.
(get_program_header_size): Return the right size if segment_map is
not NULL.
(copy_private_bfd_data): Don't bother to sort the sections.
* bfd.c (bfd_record_phdr): New function.
* bfd-in.h (bfd_record_phdr): Declare.
* bfd-in2.h: Rebuild.
* elf32-sparc.c (elf32_sparc_relocate_section): Remove bogus
BFD_ASSERT.
* libbfd.c (bfd_malloc, bfd_realloc): New functions.
(bfd_zmalloc): Return PTR, not char *. Take size_t, not
bfd_size_type.
* libbfd-in.h (bfd_malloc, bfd_realloc): Declare.
(bfd_zmalloc): Change declaration.
* libbfd.h: Rebuild.
* Many files: Use bfd_malloc and bfd_realloc rather than malloc
and realloc. Don't set bfd_error_no_memory if they fail.
Thu Nov 30 19:32:26 1995 Kim Knuttila <krk@cygnus.com>
* coff-ppc.c: Added macros to tidy up toc cell treatment. Numerous
uses as well. Added a new howto to deal with TOCREL16 relocs that
are TOCDEFN as well.
(coff_ppc_relocate_section): Expanded treatment of ADDR32NB relocs
to handle RVA relocs from dlltool.
(ppc_coff_rtype2howto): TOCDEFN reloc addition.
(coff_ppc_rtype_to_howto): TOCDEFN reloc addition.
(ppc_coff_reloc_type_lookup): TOCDEFN reloc addition.
* coffcode.h (coff_set_alignment_hook): check idata$X sections
to get the right section alignment.
Thu Nov 30 16:48:18 1995 Ian Lance Taylor <ian@cygnus.com>
* elf.c (_bfd_elf_make_section_from_shdr): Don't set lma based on
p_paddr if p_paddr is zero.
(make_mapping): Set includes_filehdr and includes_phdrs for first
PT_LOAD segment.
(map_sections_to_segments): Set includes_phdrs for PT_PHDR
segment.
(assign_file_positions_for_segments): Handle includes_filehdr and
includes_phdrs. Remove special handling of PT_PHDR and first
PT_LOAD segments.
(copy_private_bfd_data): Set includes_filehdr and includes_phdr
when appropriate. Remove special handling of PT_PHDR segment.
Use a more complex condition for when a section is included in a
segment to handle Solaris linker oddities.
Thu Nov 30 11:17:33 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de>
* coff-m88k.c (howto_table): Reformatted for easier reading;
special_function now points to new function m88k_special_reloc.
(howto_hvrt16): Function previously used for handling HVRT16 relocs
removed.
(rtype2howto): Do not add reloc's r_offset to the addend, this will
be done correctly by m88k_special_reloc.
(reloc_processing): New function to be used by RELOC_PROCESSING.
(RELOC_PROCESSING): Define to call reloc_processing.
Wed Nov 29 12:42:36 1995 Ian Lance Taylor <ian@cygnus.com>
* peicode.h (pe_print_idata): Call malloc rather than xmalloc.
(pe_print_pdata): Likewise.
* opncls.c (bfd_alloc_by_size_t): Set bfd_error_no_memory if
obstack_alloc fails.
(bfd_alloc_finish): Set bfd_error_no_memory if obstack_finish
fails.
* libbfd.c (bfd_zmalloc): Set bfd_error_no_memory if malloc fails.
* Many files: don't set bfd_error_no_memory if one of the above
routines fails.
* elf.c (assign_file_positions_for_segments): Don't adjust p_paddr
if p_paddr_valid is set.
(copy_private_bfd_data): New static function.
(_bfd_elf_copy_private_section_data): Call copy_private_bfd_data.
* elf.c (assign_file_positions_for_segments): Fix case where extra
program headers were allocated.
* elf.c (_bfd_elf_print_private_bfd_data): New function.
* elf-bfd.h (_bfd_elf_print_private_bfd_data): Declare.
* elfxx-target.h (bfd_elfNN_bfd_print_private_bfd_data): Define to
_bfd_elf_print_private_bfd_data.
* coff-alpha.c (alpha_ecoff_swap_reloc_in): Don't abort if
r_symndx is RELOC_SECTION_NONE for an ALPHA_R_IGNORE reloc.
Change a RELOC_SECTION_LITA symndx to RELOC_SECTION_ABS.
(alpha_ecoff_swap_reloc_out): Change RELOC_SECTION_ABS to
RELOC_SECTION_LITA for ALPHA_R_IGNORE.
(alpha_adjust_reloc_out): For ALPHA_R_IGNORE, don't change
RELOC_SECTION_ABS to RELOC_SECTION_NONE.
Tue Nov 28 16:59:50 1995 Ian Lance Taylor <ian@cygnus.com>
* elf-bfd.h (struct elf_obj_tdata): Add segment_map field.
* elf.c (make_mapping): New static function.
(map_sections_to_segments): New static function.
(elf_sort_sections): New static function.
(assign_file_positions_for_segments): New static function.
(map_program_segments): Remove.
(get_program_header_size): Remove sorted_hdrs, count, and
maxpagesize parameters. Simplify.
(assign_file_positions_except_relocs): When generating an
executable, use assign_file_positions_for_segments.
(elf_sort_hdrs): Remove.
(_bfd_elf_sizeof_headers): Remove eliminated parameters from call
to get_program_header_size.
Mon Nov 27 12:27:46 1995 Ian Lance Taylor <ian@cygnus.com>
* hp300hpux.c (MY(callback)): Set lma as well as vma.
* configure, config.in: Regenerate with autoconf 2.7.
* elf32-i386.c (elf_backend_plt_readonly): Set correctly, to 1.
* elf32-sparc.c (elf_backend_plt_readonly): Set correctly, to 0.
Wed Nov 22 12:02:09 1995 Ian Lance Taylor <ian@cygnus.com>
* ecoff.c (_bfd_ecoff_new_section_hook): Handle .rconst section.
(ecoff_sec_to_styp_flags): Likewise.
(_bfd_ecoff_styp_to_sec_flags): Handle STYP_RCONST.
(ecoff_set_symbol_info): Handle scRConst.
(ecoff_slurp_reloc_table): Handle RELOC_SECTION_RCONST.
(ecoff_compute_section_file_positions): Handle .rconst section.
(_bfd_ecoff_write_object_contents): Likewise.
(ecoff_link_check_archive_element): Handle scRConst.
(ecoff_link_add_externals): Likewise.
(ecoff_link_write_external): Handle .rconst section.
(ecoff_reloc_link_order): Likewise.
* ecofflink.c (bfd_ecoff_debug_accumulate): Handle scRConst.
* coff-alpha.c (alpha_convert_external_reloc): Handle .rconst
section.
(alpha_relocate_section): Handle RELOC_SECTION_RCONST.
* sunos.c (sunos_scan_dynamic_symbol): Only set written if the
DEF_DYNAMIC flag is set.
Tue Nov 21 13:25:29 1995 Ken Raeburn <raeburn@cygnus.com>
* host-aout.c: If TRAD_HEADER is defined, include it.
Tue Nov 21 13:03:57 1995 Ian Lance Taylor <ian@cygnus.com>
* aclocal.m4 (AC_PROG_CC): Remove local definition.
(BFD_BINARY_FOPEN): Require AC_CANONICAL_SYSTEM.
(BFD_NEED_DECLARATION): New function.
* configure.in: Use BFD_NEED_DECLARATION.
* acconfig.h: Put NEED_DECLARATION_* in @TOP@ section.
* configure, config.in: Rebuild with autoconf 2.6.
* xcofflink.c (bfd_xcoff_size_dynamic_sections): Clear
special_sections before returning when called with a non XCOFF
BFD.
* coffgen.c (coff_renumber_symbols): Sort common symbols with
global symbols.
* coffcode.h (coff_compute_section_file_positions): Only pad the
previous section to force file alignment when creating an
executable.
Mon Nov 20 14:54:09 1995 Ian Lance Taylor <ian@cygnus.com>
* coffcode.h (coff_compute_section_file_positions): If
RS6000COFF_C, set up the .debug section.
* xcofflink.c (xcoff_link_input_bfd): Adjust the TOC anchor value
if it is not large enough to accomodate the entire TOC area with
signed 16 bit offsets.
(xcoff_write_global_symbol): Handle negative TOC offsets in global
linkage code.
(_bfd_ppc_xcoff_relocate_section): Adjust relocations against a
TOC anchor to use the TOC value used in the output file.
Sat Nov 18 18:01:41 1995 Ian Lance Taylor <ian@cygnus.com>
* coffgen.c (_bfd_coff_get_external_symbols): Cast malloc return.
(_bfd_coff_read_string_table): Likewise.
Sat Nov 18 19:43:04 1995 Richard Earnshaw (rearnsha@armltd.co.uk)
* pe-arm.c: Fix typos.
* coff-arm.c: Likewise.
Fri Nov 17 16:22:04 1995 Kim Knuttila <krk@cygnus.com>
* coff-ppc.c (list_ele): Added "cat"egory member.
(record_toc): New category parameter (priv or pub).
(ppc_record_toc_entry): Check to see if toc bounds exceeded.
(ppc_process_before_allocation): Removed embrionic data-in-toc from
the mainline. It addes extra toc cells in error.
(ppc_coff_swap_sym_in_hook): Added some documentation.
(dump_toc): Can now diagnose "virtual toc" chicanery.
Fri Nov 17 10:41:25 1995 Philippe De Muyter <phdm@info.ucl.ac.be>
* elf-bfd.h (struct elf_link_hash_table): Change type of
dynsymcount and bucketcount fields from size_t to bfd_size_type.
Fri Nov 17 10:02:58 1995 Ian Lance Taylor <ian@cygnus.com>
* coffcode.h (coff_pointerize_aux_hook): I960 version: don't
pointerize C_LEAFSTAT or C_LEAFEXT entries.
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Only create
DT_INIT and DT_FINI entries if the _init or _fini symbol is
defined or mentioned in a regular file.
Thu Nov 16 15:16:42 1995 Kim Knuttila <krk@cygnus.com>
* coff-ppc.c (ppc_record_data_in_toc_entry): new function
(coff_ppc_relocate_section): Handle TOCDEFN attribute
(coff_ppc_relocate_section): Correct REL24 handling
(ppc_process_before_allocation): Correct TOCDEFN handling
* peicode.h (dir_names): Added name descriptions
Thu Nov 16 03:38:03 1995 Ken Raeburn <raeburn@cygnus.com>
* VERSION: Updated to cygnus-2.6.
Wed Nov 15 19:30:07 1995 Ken Raeburn <raeburn@cygnus.com>
* targets.c (m68k4knetbsd_vec): Declare.
Wed Nov 15 18:05:52 1995 Ian Lance Taylor <ian@cygnus.com>
* targets.c (bfd_target): Change type of second argument to
_bfd_print_private_bfd_data from void * to PTR.
* libbfd-in.h (_bfd_generic_bfd_print_private_bfd_data): Cast
using PTR rather than void *.
* bfd-in2.h, libbfd.h: Rebuild.
* peicode.h (pe_print_private_bfd_data): Change vfile from void *
to PTR.
* elfxx-target.h (bfd_elfNN_bfd_print_private_bfd_data): Define as
_bfd_generic_bfd_print_private_bfd_data rather than casting
bfd_true.
Wed Nov 15 04:09:14 1995 Ken Raeburn <raeburn@cygnus.com>
* Makefile.in (.dep1): Fix stupid typo in last change. Remove any
"DO NOT DELETE" lines or blank lines that mkdep writes on some
systems.
(BFD_LIBS_CFILES, ALL_MACHINES_CFILES, BFD32_BACKENDS_CFILES,
BFD64_BACKENDS_CFILES): New variables.
(CFILES): Use them.
Tue Nov 14 11:52:23 1995 Ian Lance Taylor <ian@cygnus.com>
* peicode.h (coff_swap_aouthdr_out): For PPC PE, start isize at 0,
not at the file position of the first section.
* coffcode.h (coff_compute_section_file_positions): Avoid using
unportable #elif.
(coff_write_object_contents): When generating a PPC PE executable
with no symbols, round up the file size to a COFF_PAGE_SIZE
boundary.
* cofflink.c (_bfd_coff_final_link): If there are no symbols,
don't write out a string table.
* elf.c (bfd_section_from_shdr): When using a different section
header, pass the new one to _bfd_elf_make_section_from_shdr.
(elf_fake_sections): Don't set sh_info and sh_entsize fields.
(elf_map_symbols): Add section VMA to symbol value when comparing
against 0.
(_bfd_elf_compute_section_file_positions): Only build symbol table
if there are some symbols. Set file offset of symtab and strtab
sections.
(assign_file_positions_except_relocs): Remove dosyms parameter.
Change all callers. Never set file offset of symtab and strtab
sections.
(_bfd_elf_copy_private_section_data): New function.
(MAP_ONESYMTAB, MAP_DYNSYMTAB, MAP_STRTAB, MAP_SHSTRTAB): Define.
(_bfd_elf_copy_private_symbol_data): New function.
(swap_out_syms): Check for special mapping of st_shndx created by
copy_private_symbol_data.
* elfxx-target.h: Use new copy routines.
* elf-bfd.h (_bfd_elf_copy_private_symbol_data): Declare.
(_bfd_elf_copy_private_section_data): Declare.
* config.bfd (sh-*-*): Set targ_defvec to shcoff_vec.
* coffcode.h (coff_slurp_symbol_table): If COFF_WITH_PE, handle
C_NT_WEAK.
* coff-sh.c (shlcoff_vec): Use _bfd_generic_archive_p, not
_bfd_dummy_target, matching the recent change to archive
recognition.
Mon Nov 13 13:24:38 1995 Ian Lance Taylor <ian@cygnus.com>
* libbfd.c (bfd_get_file_window): Use casts to avoid doing
arithmetic on PTR types.
* aout-target.h (MY(callback)): Set the lma of the sections.
* ecoff.c (ecoff_reloc_link_order): Turn a reloc against a defined
symbol into a reloc against the section.
Mon Nov 13 07:31:35 1995 Kim Knuttila <krk@cygnus.com>
* coff-ppc.c (ppc_coff_link_hash_entry): added support for inline
glue for the relocs: IMGLUE and IFGLUE.
(record_toc): new function - tracks toc contents
(ppc_mark_symbol_as_glue): new function - supports the IMGLUE reloc
(coff_ppc_relocate_section): Added support and fixes for IMGLUE/IFGLUE
(ppc_coff_rtype2howto): removed invalid IMGLUE hack
(coff_ppc_rtype_to_howto): removed invalid IMGLUE hack
(ppc_record_toc_entry): Removed a debug define (duh)
* peicode.h (coff_swap_scnhdr_out): Fixed invalid strcmp for ".reldata"
(pe_print_idata): New function - formats the idata section data
(pe_print_pdata): New function - formats the pdata section data
(pe_print_private_bfd_data): calls to above
Sun Nov 12 12:23:24 1995 Stan Shebs <shebs@andros.cygnus.com>
* Makefile.in (bfd_libs_here, etc): Provide empty definitions.
* coff-rs6000.c (rs6000coff_vec): Add conditional defines
TARGET_SYM and TARGET_NAME for vector and BFD name.
* coff-pmac.c (pmac_xcoff_vec): Remove.
(TARGET_SYM, TARGET_NAME): Define.
* coffcode.h (coff_set_arch_mach_hook) [POWERMAC]: Set the
machine to 0, not all PowerMacs are 601s.
Fri Nov 10 12:10:14 1995 Ian Lance Taylor <ian@cygnus.com>
* elfcode.h (elf_object_p): Read in any program headers.
* elf.c (_bfd_elf_make_section_from_shdr): Adjust section lma
based on the program headers, if any.
(elf_fake_sections): Set sh_addr from the vma, not the lma.
(map_program_segments): Set p_paddr of program headers based on
the lma.
Thu Nov 9 13:01:31 1995 Ian Lance Taylor <ian@cygnus.com>
* archive.c (bfd_generic_archive_p): Preserve tdata in case of
failure.
* aoutx.h (NAME(aout,final_link)): Report a reasonable error when
trying to do a relocateable link with a non-a.out object file.
* archive.c (bfd_generic_archive_p): Check the first object file
in an archive even if target_defaulted is set. If the object file
has the wrong xvec, reject it.
* aoutx.h (NAME(aout,set_section_contents)): If a section can not
be represented, report the name via _bfd_error_handler.
(translate_to_native_sym_flags): Likewise.
* elf32-mips.c (mips_elf_final_link): Likewise.
* oasys.c (oasys_write_sections): Likewise.
* coffcode.h (coff_set_alignment_hook): Write RS6000COFF_C version
which checks for STYP_OVRFLO sections.
(coff_compute_section_file_positions): If RS6000COFF_C, handle
reloc and lineno count overflows.
(coff_write_object_contents): Call coff_count_linenumbers before
coff_compute_section_file_positions. If RS6000COFF_C, handle
reloc and lineno count overflows.
* xcofflink.c (_bfd_xcoff_bfd_final_link): Count line numbers and
relocs before dealing with .pad sections. Count overflow section
headers when handling .pad sections.
* coffcode.h (coff_write_object_contents): Set a.out vstamp to 1
if RS6000COFF_C.
* xcofflink.c (XCOFF_DESCRIPTOR): Define.
(struct xcoff_link_hash_table): Add descriptor_section and
special_sections fields.
(_bfd_xcoff_bfd_link_hash_table_create): Initialize new fields.
(xcoff_link_add_symbols): Set linkage section alignment. Create
descriptor section. Check for magic symbol names (_text, etc.),
and record them in special_sections if found. Set
XCOFF_DESCRIPTOR flag for a function descriptor, and set its
descriptor field to point back to the function code symbol.
(xcoff_sweep): Always mark the special descriptor_section.
(bfd_xcoff_export_symbol): Check whether the symbol might be a
function descriptor, and mark it if it is.
(bfd_xcoff_size_dynamic_sections): Add new special_sections
parameter, and fill it in. Allocate space for the descriptor
section.
(xcoff_build_ldsyms): Set XCOFF_DEF_REGULAR flag when defining
global linkage code. If an undefined function descriptor is
exported, arrange to define it. Warn about any other undefined
exported symbol.
(_bfd_xcoff_bfd_final_link): Write out the descriptor section.
(xcoff_write_global_symbol): Create a function descriptor when
necessary.
* bfd-in.h (bfd_xcoff_size_dynamic_sections): Update declaration.
* bfd-in2.h: Rebuild.
Thu Nov 9 08:40:23 1995 Kim Knuttila <krk@cygnus.com>
* coff-ppc.c (ppc_coff_link_hash_entry): new types for hashing
(ppc_coff_link_hash_table): new types for hashing
(ppc_coff_link_hash_newfunc): hash entry constructor
(ppc_coff_link_hash_table_init): hash table initializer
(ppc_coff_link_hash_table_create): hash table constructor
(ppc_record_toc_entry): changed references to hash table
(coff_ppc_relocate_section): changed references to hash table
* libcoff-in.h (coff_link_hash_entry): removed toc_offset
* libcoff.h: Rebuild
* cofflink.c (_bfd_coff_link_hash_newfunc): removed toc_offset init
(coff_link_add_symbols): removed toc_offset init
Thu Nov 9 04:00:38 1995 Ken Raeburn <raeburn@cygnus.com>
* Makefile.in (.dep1): Make sure the file mkdep is to write exists
first.
* configure.in: Added new option --with[out]-mmap. Set USE_MMAP
if it is given and mmep is available.
* acconfig.h: Undef USE_MMAP.
* configure, config.in: Regenerated.
* aoutx.h: If USE_MMAP is not defined, do all symbol and string
table handling the old way.
(aout_get_external_symbols): Don't complain if last byte of string
table is nonzero.
* libbfd.c [HAVE_MADVISE]: Include sys/types.h and sys/mman.h.
(bfd_free_window) [! USE_MMAP]: Don't define.
(bfd_get_file_window,
_bfd_generic_get_section_contents_in_window) [! USE_MMAP]: Abort.
Wed Nov 8 20:03:44 1995 Eric Freudenthal <freudenthal@nyu.edu>
* coff-a29k.c (SIGN_EXTEND_HWORD): Use ~0xffff rather than
0xffff0000.
Wed Nov 8 11:31:11 1995 Ian Lance Taylor <ian@cygnus.com>
* coff-a29k.c (a29k_reloc): Change handling of R_IREL reloc to be
compatible with AMD generated COFF files. Try to support both AMD
and GNU formats simultaneously.
(coff_a29k_relocate_section): Likewise.
* libbfd.c (bfd_get_file_window): Change writable parameter from
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.
* xcofflink.c (XCOFF_DEF_DYNAMIC): Rename from XCOFF_REF_DYNAMIC.
Change all uses.
(xcoff_swap_ldhdr_in): New static function.
(xcoff_swap_ldsym_in): New static function.
(xcoff_find_reloc): Handle the case of a single reloc correctly.
(xcoff_link_add_symbols): If we just created a descriptor, pass it
to _bfd_generic_link_add_one_symbol, to save a hash lookup.
Handle XTY_ER/XMC_XO symbols correctly.
(xcoff_link_add_dynamic_symbols): Rewrite to read .loader symbols
rather than normal symbol table.
(bfd_xcoff_import_symbol): It's not an error if the symbol is
already defined with the same absolute value.
(xcoff_mark): When considering called symbols, check whether the
descriptor is from a dynamic object, rather than the symbol
itself.
(xcoff_build_ldsyms): Likewise.
* libbfd.c (bfd_get_file_window): Change return type to boolean.
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.
Tue Nov 7 11:53:48 1995 Kim Knuttila <krk@cygnus.com>
* coff-ppc.c (ppc_record_toc_entry): new function.
(in_reloc_p): changed return value.
(coff_ppc_relocate_section): much rework.
(ppc_allocate_toc_section): new function.
(ppc_process_before_allocation): new function.
(ppc_coff_swap_sym_in_hook): new function.
* cofflink.c (_bfd_coff_link_hash_newfunc): initialize toc_offset.
(coff_link_add_symbols): initialize toc_offset.
* peicode.h (coff_swap_sym_in): Added coff_swap_sym_in_hook
(coff_swap_aouthdr_out): Added more sections to the data
dictionary for the pe file header. Also changed linker version
number on the ppc side.
(dir_names): small improvements to the dictionary printing.
(pe_mkobject_hook): save the file level flags.
* libcoff-in.h (coff_link_hash_entry): added toc_offset field
(pe_tdata): added real_flags field
(coff_tdata): added local_toc_sym_map and access macro
* libcoff.h (coff_link_hash_entry): added toc_offset field
(pe_tdata): added real_flags field
(coff_tdata): added local_toc_sym_map and access macro
* coffcode.h (coff_set_alignment_hook): added hook for PE.
(coff_mkobject): init for local_toc_sym_map
(coff_write_object_contents): set the internal_a.magic to
IMAGE_NT_OPTIONAL_HDR_MAGIC which appears to be what other
ppc compilers use.
Tue Nov 7 13:48:58 1995 Ian Lance Taylor <ian@cygnus.com>
* ecofflink.c (_bfd_ecoff_locate_line): Keep looking through stabs
entries until both the line number address and the function name
address are too large.
* configure.in: Call AC_CHECK_PROG to find and cache AR.
* configure: Rebuilt.
* aclocal.m4 (BFD_CC_FOR_BUILD): Don't define CC_FOR_BUILD if it
is defined in the environment.
Tue Nov 7 10:57:24 1995 Jeffrey A Law (law@cygnus.com)
* som.c (som_get_section_contents_in_window): Define to use
generic version.
Mon Nov 6 17:13:15 1995 Harry Dolan <dolan@ssd.intel.com>
* coff-i860.c: New file, based on coff-i386.c.
* cpu-i860.c: New file, based on cpu-i386.c.
* hosts/i860mach3.h: New file, based on hosts/i386mach3.h.
* config.bfd (i860-*-mach3*, i860-*-osf1*, i860-*-coff*): New
targets, using i860coff_vec.
* configure.in (i860-*-mach3*, i860-*-osf1*): New hosts, using
trad-core.o and hosts/i860mach3.h.
(i860coff_vec): Use coff-i860.o and cofflink.o.
* configure: Rebuild.
* Makefile.in: Rebuild dependencies.
(ALL_MACHINES): Add cpu-i860.o.
(BFD32_BACKENDS): Add coff-i860.o.
(CFILES): Add cpu-i860.c and coff-i860.c.
* targets.c (i860coff_vec): Declare.
(bfd_target_vector): Add &i860coff_vec.
* archures.c (bfd_i860_arch): Declare.
(bfd_archures_list): Add &bfd_i860_arch.
* coffcode.h (coff_set_arch_mach_hook): Handle I860 magic number.
(coff_set_flags): Handle bfd_arch_i860.
(coff_write_object_contents): Handle I860 a.out magic number.
Mon Nov 6 14:34:07 1995 Ian Lance Taylor <ian@cygnus.com>
* xcofflink.c (xcoff_link_add_symbols): Set the alignment power of
the created .tc section to 2.
(xcoff_mark): Don't keep a .loader reloc for a call to an
undefined symbol when creating a shared library.
(xcoff_build_ldsyms): When creating a shared library, generate
global linkage code for a call to an undefined symbol.
Sun Nov 5 21:44:13 1995 Ken Raeburn <raeburn@cygnus.com>
* Makefile.in (CFILES): Rebuild list from BFD_LIBS, ALL_MACHINES,
BFD32_BACKENDS, BFD64_BACKENDS.
(.dep1): Put mkdep output in a separate file.
Rebuilt dependencies.
* ecoff.c (_bfd_ecoff_slurp_armap): Cast _bfd_read_ar_hdr return
value.
Permit use of mmap when available:
* configure.in: Check for mmap, madvise, mprotect.
* config.in, configure: Regenerated.
* libbfd.c (struct _bfd_window_internal): Define type.
(bfd_init_window, bfd_free_window, bfd_get_file_window): New
functions.
(ok_to_map): New static variable for debugging.
(_bfd_generic_get_section_contents_in_window): New function.
* bfd-in.h (bfd_window_internal): Declare type.
(bfd_window): Define type.
(bfd_init_window, bfd_free_window, bfd_get_file_window): Declare.
* libbfd-in.h (_bfd_generic_get_section_contents_in_window):
Declare.
* libaout.h (struct aoutdata): Add two window fields.
(obj_aout_sym_window, obj_aout_string_window): New macros.
* aoutx.h (some_aout_object_p): Initialize windows.
(aout_get_external_symbols): Get symbol data and strings in
windows instead of explicitly allocated buffers.
(slurp_symbol_table): Free window instead of memory.
(bfd_free_cached_info): Release windows instead of freeing storage
directly.
(aout_link_free_symbols): Ditto.
* targets.c (bfd_target): Add new field for
get_section_contents_in_window.
(BFD_JUMP_TABLE_GENERIC): Updated.
* aout-adobe.c, aout-target.h, binary.c, bout.c, coff-alpha.c,
coff-mips.c, elfxx-target.h, i386msdos.c, i386os9k.c, ieee.c,
libcoff-in.h, oasys.c, srec.c, tekhex.c, versados.c: Added new
macros for get_section_contents_in_window field.
Sat Nov 4 12:23:26 1995 Fred Fish <fnf@cygnus.com>
* core.c: Renamed to corefile.c
* makefile.dos (OBJS): Change core.o to corefile.o
* Makefile.in (CFILES, BFD_LIBS): Use corefile.c instead of core.c
Fri Nov 3 15:54:59 1995 Ian Lance Taylor <ian@cygnus.com>
* xcofflink.c (xcoff_link_add_symbols): Rename local variable sub
to o. Clobber and restore the list of new csects around the call
to _bfd_generic_link_add_one_symbol, in case it wants to report a
linker error and the linker wants to read the symbol table. Reset
the line number count of a real section even if it has no relocs.
(_bfd_xcoff_bfd_final_link): If shared, set the DYNAMIC flag.
* coffgen.c (_bfd_coff_read_string_table): Warn if the string size
is too small.
Thu Nov 2 23:16:39 1995 Ian Lance Taylor <ian@cygnus.com>
* xcofflink.c (_bfd_ppc_xcoff_relocate_section): Don't warn about
an undefined symbol in a shared link.
* linker.c (_bfd_generic_link_add_one_symbol): Correct type of
oldtype from bfd_link_order_type to bfd_link_hash_type. From
phdm@info.ucl.ac.be (Philippe De Muyter).
Wed Nov 1 14:26:02 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de>
* coff-m88k.c (rtype2howto): New static function.
(RTYPE2HOWTO): Use it rather than a macro definition.
* coffcode.h (coff_write_object_contents): set internal_a.magic
to PAGEMAGICPEXECPAGED #if defined (M68) && !defined (LYNXOS).
* configure.in: m68*-motorola-sysv* does not use ptrace-core.o;
define TRAD_HEADER to new file hosts/delta68.h.
m88*-motorola-sysv*, however, does use ptrace-core.o.
* hosts/delta68.h: New file.
* ptrace-core.c (ptrace_unix_core_file_p): change bfd_zmalloc to
bfd_zalloc; provide proper parm abfd to calls to bfd_zalloc.
Wed Nov 1 13:51:54 1995 Ken Raeburn <raeburn@cygnus.com>
* i386linux.c (MY(vec)): Declare before use.
Wed Nov 1 11:45:07 1995 Ian Lance Taylor <ian@cygnus.com>
* reloc16.c (bfd_coff_reloc16_get_relocated_section_contents):
Pass input_bfd, not in_bfd, to bfd_coff_reloc16_extra_cases.
* elf.c (bfd_elf_set_dt_needed_name): Don't do anything if the
BFD is not of the right type.
(bfd_elf_get_needed_list): Likewise.
* i386linux.c (bfd_linux_size_dynamic_sections): Likewise.
* sunos.c (bfd_sunos_get_needed_list): Likewise.
* xcofflink.c (XCOFF_XVECP): Define.
(bfd_xcoff_link_record_set): Don't do anything if the BFD is not
of the right type.
(bfd_xcoff_import_symbol): Likewise.
(bfd_xcoff_export_symbol): Likewise.
(bfd_xcoff_link_count_reloc): Likewise.
(bfd_xcoff_record_link_assignment): Likewise.
(bfd_xcoff_size_dynamic_sections): Likewise.
* sunos.c (sunos_scan_ext_relocs): Only check the reloc symbol
table index against the number of symbols for a base relative
reloc.
* coff-rs6000.c (_bfd_xcoff_sizeof_headers): Change from macro to
static function.
* xcofflink.c (_bfd_xcoff_bfd_link_hash_table_create): Set
full_aouthdr flag here...
(_bfd_xcoff_bfd_final_link): ...not here.
Tue Oct 31 12:52:02 1995 Fred Fish <fnf@cygnus.com>
* libelf.h: Rename to elf-bfd.h to avoid conflict with
systems that have a system <libelf.h>.
* Makefile.in: Globally replace libelf.h with elf-bfd.h.
* bfd.c, elf.c, elf32-arc.c, elf32-gen.c, elf32-hppa.c,
elf32-hppa.h, elf32-i386.c, elf32-i860.c, elf32-m68k.c,
elf32-m88k.c, elf32-mips.c, elf32-ppc.c, elf32-sparc.c,
elf64-gen.c, elf64-sparc.c, elfcode.h, elflink.c,
elfxx-target.h: Include elf-bfd.h rather than libelf.h.
* elfxx-target.h: Change libelf.h reference to elf-bfd.h.
Tue Oct 31 15:30:07 1995 David Mosberger-Tang <davidm@azstarnet.com>
* ecoff.c (ecoff_set_symbol_info): Add new parameter weak. If
set, set BSF_WEAK in symbol. Change all callers.
(ecoff_get_extr): Set weakext based on BSF_WEAK.
(ecoff_link_add_externals): If weakext is set, pass BSF_WEAK to
_bfd_generic_link_add_one_symbol.
(ecoff_indirect_link_order): Check that the section tdata relocs
are not NULL before using them.
* configure.in (alpha*-*-linux*): Set COREFILE to trad-core.o and
define TRAD_HEADER as hosts/alphalinux.h.
* configure: Rebuild.
* hosts/alphalinux.h: New file.
* trad-core.c (trad_unix_core_file_p): Cast u.u_ar0 to bfd_vma,
not int.
Tue Oct 31 12:34:11 1995 Ian Lance Taylor <ian@cygnus.com>
* coffcode.h (coff_slurp_symbol_table): Accept C_BCOMM and
C_ECOMM storage classes.
* xcofflink.c (xcoff_mark_symbol): New static function, broken out
of xcoff_mark.
(xcoff_mark): Call xcoff_mark_symbol.
(bfd_xcoff_export_symbol): Call xcoff_mark_symbol.
(bfd_xcoff_link_count_reloc): Call xcoff_mark_symbol rather than
doing it by hand.
(xcoff_build_ldsyms): Build a .loader symbol for an export symbol.
Mon Oct 30 14:53:48 1995 Ian Lance Taylor <ian@cygnus.com>
* xcofflink.c (struct xcoff_final_link_info): Add new line_filepos
field.
(xcoff_find_reloc): New static function.
(xcoff_link_add_symbols): Use it.
(_bfd_xcoff_bfd_final_link): Set finfo.line_filepos.
(xcoff_link_input_bfd): Handle C_BINCL and C_EINCL. Don't
relocate the value of C_DECL.
* elf.c (elf_fake_sections): Remove bogus BFD_ASSERT.
Sat Oct 28 01:25:34 1995 steve chamberlain <sac@slash.cygnus.com>
* cofflink.c (_bfd_coff_generic_relocate_section): Make
callback decide what goes in .relocs.
* pe[i]-i386.c (TARGET_UNDERSCORE): Define.
* peicode.h (pe_mkobject_hook): Only copy aouthdr if
there is one.
Sat Oct 28 01:51:02 1995 Ian Lance Taylor <ian@cygnus.com>
* xcofflink.c (xcoff_link_add_symbols): Handle csects in the
absolute section.
Fri Oct 27 18:14:39 1995 Ian Lance Taylor <ian@cygnus.com>
* xcofflink.c: More improvements, mostly to fix handling of
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.
Fri Oct 27 14:42:15 1995 Niklas Hallqvist <niklas@appli.se>
* PORTING, aout-arm.c, aout-encap.c, aout-target.h,
aoutx.h, gen-aout.c, host-aout.c, hp300bsd.c, i386aout.c
i386bsd.c, i386dynix.c, i386linux.c, i386lynx.c, i386mach3.c,
i386netbsd.c, m68klynx.c, m88kmach3.c, mipsbsd.c, newsos3.c,
ns32knetbsd.c, pc532-mach.c, riscix.c, sparclynx.c, sparcnetbsd.c:
Change PAGE_SIZE to TARGET_PAGE_SIZE.
* m68knetbsd.c: Ditto as well as add support for the m68k4k object
format.
* netbsd.h: Double ditto (incl. m68k4k support). NetBSD's text
segments includes the a.out header. See to that the magic number
*always* is big-endian.
* config.bfd: Add m68*-hp*-netbsd* case. Cross-pollinate m68k and
m68k4k NetBSD configurations.
* configure.in, configure: Separate i386 & mips NetBSD
configurations from other BSD ones. Don't assume DEC is the only
thing NetBSD/mips run on. Add {m68k,ns32k,sparc}-*-netbsd*
configurations. Add support for m68k4k NetBSD object format.
* libaout.h: Added M_68K4K_NETBSD magic.
* m68k4knetbsd.c: New file.
* hosts/{m68k,sparc}nbsd.h: Don't define HOST_BIG_ENDIAN_P.
* hosts/nbsd.h: Define HOST_BIG_ENDIAN_P according to
<machine/endian.h>.
* hosts/mipsnbsd.h: New file.
Thu Oct 26 14:16:47 1995 Ian Lance Taylor <ian@cygnus.com>
* xcofflink.c: Numerous changes to get closer to a working XCOFF
linker.
* libcoff-in.h (struct xcoff_tdata): Add full_aouthdr,
toc_section, and entry_section fields.
(struct xcoff_section_tdata): Remove ldrel_count field.
* libcoff.h: Rebuild.
* coffcode.h (coff_mkobject_hook): Initialize new xcoff_data
fields.
(coff_compute_section_file_positions): If RS6000COFF_C, generate
full a.out header if full_aouthdr is set in xcoff_data.
(coff_write_object_contents): Likewise. Set o_snentry and o_sntoc
based on sections stored in xcoff_data.
* coff-rs6000.c (xcoff_copy_private_bfd_data): Copy new xcoff_data
fields.
(xcoff_reloc_type_lookup): Handle BFD_RELOC_CTOR.
(rs6000coff_vec): Set symbol_leading_char to '.'.
* coffgen.c (coff_get_symbol_info): If fix_value is set, fix the
value stored in ret rather than returning a pointer value.
Wed Oct 25 23:10:39 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* config.bfd (powerpc{,le}-{elf,sysv4,eabi,solaris2}): Remove MAC
format for now.
Wed Oct 25 16:19:27 1995 Jeffrey A Law (law@cygnus.com)
* som.c (som_slurp_string_table): Allocate the strings with malloc
since they're free'd by free_cached_info.
(som_slurp_symbol_table): Similarly for the symbol table.
Wed Oct 25 14:59:22 1995 Per Bothner <bothner@kalessin.cygnus.com>
* Makefile.in (diststuff): Don't make headers.
Wed Oct 25 11:32:54 1995 Ian Lance Taylor <ian@cygnus.com>
* Makefile.in: Rebuild dependencies.
* sunos.c (bfd_sunos_record_link_assignment): Don't do anything if
output_bfd is not SunOS.
(bfd_sunos_size_dynamic_sections): Likewise. Don't scan relocs of
non-SunOS input files.
* xcofflink.c: Extensive changes to support linking shared objects
and generating a .loader section.
* libcoff-in.h (struct xcoff_tdata): Add import_file_id field.
(struct xcoff_section_tdata): Add lineno_count, 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.
Tue Oct 24 17:44:20 1995 Stan Shebs <shebs@andros.cygnus.com>
* configure.in: Add xcofflink.o to pmac_xcoff_vec.
* configure: Rebuild.
* mpw-config.in: Add xcofflink.c.o to powerpc-apple-macos.
* coff-pmac.c: Include coff-rs6000.c instead of duplicating its
contents.
(pmac_xcoff_vec): Update to use new xcoff support.
* coff-rs6000.c (xcoff_generic_stat_arch_elt): Make static.
(xcoff_write_armap): Declare buf as unsigned char.
* xcofflink.c (xcoff_link_add_symbols): Declare a local as PTR.
* mpw-make.sed: Generalize subdir_do edit.
Tue Oct 24 10:25:01 1995 Jeffrey A Law (law@cygnus.com)
* hppabsd-core.c (make_bfd_asection): Initialize asect->filepos
correctly. Don't initialize asect->vma.
Fri Oct 20 13:23:48 1995 Ken Raeburn <raeburn@cygnus.com>
* opncls.c (_bfd_new_bfd): If _bfd_chunksize wasn't preset, use
something a little less than the page size.
Thu Oct 19 13:06:09 1995 Ian Lance Taylor <ian@cygnus.com>
* coff-i960.c (coff_i960_adjust_symndx): Clear *adjustedp.
Wed Oct 18 16:20:08 1995 steve chamberlain <sac@slash.cygnus.com>
* coff-i386.c (coff_i386_reloc_type_lookup): New.
* coffcode.h (coff_write_object_contents): If .bss is before
.data us that as data_start.
* cofflink.c (_bfd_coff_generic_relocate_section): Get reloc
calc correct.
* peicode.h (add_data_entry): Use _cooked_size of data directory.
(coff_swap_outhdr_out): Hardwire in version number.
Wed Oct 18 16:50:54 1995 Ken Raeburn <raeburn@cygnus.com>
* sunos.c (sunos_add_dynamic_symbols): Rename local variables
major and minor to *_vno, since the former are also macros in
SunOS header files. Cast result of bfd_alloc to appropriate
type.
* coffgen.c (coff_find_nearest_line): Cast used_by_bfd value
before assigning to sec_data.
Wed Oct 18 13:25:17 1995 Ian Lance Taylor <ian@cygnus.com>
* ecoff.c (_bfd_ecoff_find_nearest_line): The offset argument is
now relative to the section, not absolute.
* ecofflink.c (_bfd_ecoff_locate_line): Use the right symbol to
get the file name when there is a N_SO directory name. When
handling stabs, remember that section->vma was added to the
offset.
Tue Oct 17 18:24:54 1995 Ian Lance Taylor <ian@cygnus.com>
* sunos.c (struct sunos_link_hash_table): Add needed field.
(sunos_link_hash_table_create): Call bfd_release, not free.
(sunos_link_hash_table_create): Initialize needed field.
(sunos_add_dynamic_symbols): Record needed objects.
(bfd_sunos_get_needed_list): New function.
* bfd-in.h (bfd_sunos_get_needed_list): Declare.
* bfd-in2.h: Rebuild.
Mon Oct 16 14:43:59 1995 steve chamberlain <sac@slash.cygnus.com>
* libcoff-in.h (pe_data_type.in_reloc_p): New.
Mon Oct 16 10:52:50 1995 Ian Lance Taylor <ian@cygnus.com>
* bfd-in.h (struct bfd_link_needed_list): Rename from
bfd_elf_link_needed_list.
* bfd-in2.h: Rebuild.
* elf.c, elflink.h, libelf.h: Corresponding changes.
Add start at AIX linker support; no shared libraries yet.
* xcofflink.c: New file.
* configure.in (rs600coff_vec): Use xcofflink.o.
* configure: Rebuild.
* libcoff-in.h (struct xcoff_tdata): Add csects and debug_indices
fields.
(struct xcoff_section_tdata): Define.
(xcoff_section_data): Define macro.
(_bfd_xcoff_bfd_link_hash_table_create): Declare.
(_bfd_xcoff_bfd_link_add_symbols): Declare.
(_bfd_xcoff_bfd_final_link): Declare.
(_bfd_ppc_xcoff_relocate_section): Declare.
* libcoff.h: Rebuild.
* coff-rs6000.c: Clean up a bit.
(xcoff_mkobject): Default modtype to 1L, not RE. Initialize
cputype, csects, and debug_indices.
(xcoff_copy_private_bfd_data): Copy cputype.
(xcoff_howto_table): Rename from rs6000coff_howto_table.
(xcoff_rtype2howto): Rename from rs6000coff_rtype2howto.
(xcoff_reloc_type_lookup): Rename from
rs6000coff_reloc_type_lookup.
(coff_relocate_section): Define.
(_bfd_xcoff_sizeof_headers): Define.
(_bfd_xcoff_bfd_get_relocated_section_contents): Define.
(_bfd_xcoff_bfd_relax_section): Define.
(_bfd_xcoff_bfd_link_split_section): Define.
(rs6000coff_vec): For BFD_JUMP_TABLE_LINK, use _bfd_xcoff, not
coff.
* coffcode.h (coff_compute_section_file_positions): If AIX,
increment sofar by SMALL_AOUTSZ if not executable.
(coff_write_object_contents): If AIX, always output an a.out
header; if not executable, header size of SMALL_AOUTSZ.
* hash.c (struct bfd_strtab_hash): Add xcoff field.
(_bfd_stringtab_init): Initialize xcoff field.
(_bfd_xcoff_stringtab_init): New function.
(_bfd_stringtab_add): In XCOFF mode, leave two bytes for length.
(_bfd_stringtab_emit): In XCOFF mode, write out length.
* libbfd-in.h (_bfd_xcoff_stringtab_init): Declare.
* libbfd.h: Rebuild.
* Makefile.in: Rebuild dependencies.
(BFD32_BACKENDS): Add xcofflink.o.
(CFILES): Add xcofflink.c.
* elf32-mips.c (mips_elf_symbol_processing): Set SEC_ALLOC, not
SEC_NO_FLAGS, for .acommon section. From Peter Schauer
<Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>.
Sat Oct 14 21:36:02 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* coff-ppc.c (in_reloc_p): Add, clone from coff-i386.c.
Fri Oct 13 17:48:43 1995 Ken Raeburn <raeburn@cygnus.com>
* acconfig.h (HAVE_SYS_PROCFS_H): Undef, with comment.
* config.in: Regenerated.
* opncls.c (getpagesize) [!HAVE_GETPAGESIZE]: Define as 2048.
(_bfd_chunksize): New variable.
(_bfd_new_bfd): Set it to getpagesize() if negative, and use it
for obstack chunk size.
* configure.in: Check for getpagesize.
* configure: Regenerated.
Mon Sep 25 22:49:32 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* trad-core.c (rawptr): Make it a local variable of
ptrace_unix_core_file_p.
Fri Oct 13 11:22:01 1995 steve chamberlain <sac@slash.cygnus.com>
* coff-arm.c (in_reloc_p): New.
* coff-i386.c (in_reloc_p): New.
* coffcode.h: Allways include peicode.h if COFF_WITH_PE.
(coff_write_object_contents): Only set has_reloc_section
if PE_IMAGE.
* cofflink.c (_bfd_coff_generic_relocate_section): Call
in_reloc_p to decide if reloc should be emitted.
* libcoff.h (pe_data_type.in_reloc_p): New.
* peicode.h (pe_mkobject): Initialize in_reloc_p.
Wed Oct 11 00:49:29 1995 Ian Lance Taylor <ian@cygnus.com>
* cofflink.c (_bfd_coff_internal_syment_name): Move to coffgen.c.
(_bfd_coff_read_internal_relocs): Likewise.
* coffgen.c (_bfd_coff_internal_syment_name): Copy from coffgen.c.
(_bfd_coff_read_internal_relocs): Likewise.
* elflink.h (elf_link_add_object_symbols): Correct conditions
under which type and size change warnings are issued.
Tue Oct 10 18:32:46 1995 Ian Lance Taylor <ian@cygnus.com>
* coffgen.c (coff_count_linenumbers): Don't count line numbers for
a symbol which is not in a real section.
(coff_write_native_symbol): Corresponding change.
* cofflink.c (_bfd_coff_link_hash_newfunc): Rename from
coff_link_hash_newfunc and make non-static.
(_bfd_coff_link_hash_table_init): New function, broken out of
_bfd_coff_link_hash_table_create.
(_bfd_coff_link_hash_table_create): Use it.
(process_embedded_commands): Make static.
* libcoff-in.h ((_bfd_coff_link_hash_newfunc): Declare.
(_bfd_coff_link_hash_table_init): Declare.
* libcoff.h: Rebuild.
* coffcode.h (coff_mkobject_hook): If RS6000COFF_C, set cputype
field in XCOFF tdata.
(coff_set_arch_mach_hook): Check ifdef RS6000COFF_C, not ifdef
U802ROMAGIC, for clarity. Try to set arch and machine correctly
based on cputype stored in a.out header, or in n_type of initial
.file symbol.
(coff_write_object_contents): Set cputype correctly in a.out
header.
(coff_slurp_symbol_table): Add casts to file_ptr to avoid
warnings.
* coffswap.h (coff_swap_aouthdr_in): Swap in cputype field.
(coff_swap_aouthdr_out): Swap out cputype field. Don't clear
old resv1 field.
* libcoff-in.h (struct xcoff_tdata): Add cputype field.
* libcoff.h: Rebuild.
* cpu-rs6000.c (rs6000_compatible): New static function.
(bfd_rs6000_arch): Use it.
* cpu-powerpc.c (powerpc_compatible): New static function.
(arch_info_struct): Define various flavours of PowerPC.
(bfd_powerpc_arch): Use powerpc_compatible. Point at
arch_info_struct.
Tue Oct 10 10:50:46 1995 Fred Fish <fnf@cygnus.com>
* Makefile.in (FLAGS_TO_PASS): Remove BISON.
Tue Oct 10 01:28:29 1995 Ian Lance Taylor <ian@cygnus.com>
* elflink.h (elf_link_add_object_symbols): Don't warn about
changing the size or type if the old definition was weak.
Mon Oct 9 11:24:08 1995 Ian Lance Taylor <ian@cygnus.com>
* coffcode.h (combined_entry_type): Add fix_line field.
(coff_slurp_line_table): Warn if we try to set the lineno field of
a symbol twice.
(coff_slurp_symbol_table): If RS6000COFF_C, handle C_BINCL and
C_EINCL by setting fix_line. Fix C_BSTAT symbol value.
* coffgen.c (coff_mangle_symbols): Handle fix_line.
(coff_write_symbol): Only use N_DEBUG if the symbol is in the
absolute section.
(coff_print_symbol): Print fix_value symbols in a useful fashion.
* libcoff.h: Rebuild.
* libcoff-in.h (struct xcoff_tdata): Define.
(xcoff_data): Define.
* bfd.c (struct _bfd): Add xcoff_obj_data field to tdata union.
* bfd-in2.h, libcoff.h: Rebuild.
* coff-rs6000.c (xcoff_mkobject): New static function.
(coff_mkobject): Define.
(xcoff_copy_private_bfd_data): New static function.
(coff_bfd_copy_private_bfd_data): Define.
(rs6000coff_howto_table): Change R_TOC complain_on_overflow from
signed to bitfield.
(rs6000coff_vec): Add DYNAMIC to object_flags.
* coffcode.h (sec_to_styp_flags): If RS6000COFF_C, handle .pad and
.loader sections specially.
(coff_new_section_hook): If RS6000COFF_C, get the .text and .data
section alignment from the XCOFF tdata information.
(coff_mkobject_hook): If RS6000COFF_C, set DYNAMIC based on
F_SHROBJ, and copy the extra a.out header information into the
XCOFF tdata structure.
(coff_write_object_contents): If RS6000COFF_C, set F_SHROBJ,
F_DYNLOAD and the extra a.out header information.
(coff_slurp_symbol_table): Set BSF_NOT_AT_END for a C_EXT or
C_HIDEXT symbol with attached csect information.
* coffswap.h (coff_swap_aouthdr_in): If RS6000COFF_C, swap
in the o_maxdata field.
(coff_swap_aouthdr_out): If RS6000COFF_C, swap extra XCOFF fields.
* coffgen.c (coff_renumber_symbols): Don't move any symbol to the
end if BSF_NOT_AT_END is set.
* targets.c (bfd_target): Rename _bfd_read_ar_hdr field to
_bfd_read_ar_hdr_fn.
* libbfd-in.h (_bfd_read_ar_hdr): Update accordingly.
* bfd-in2.h, libbfd.h: Rebuild.
* archive.c (_bfd_get_elt_at_filepos): Cast _bfd_read_ar_hdr
return value.
(do_slurp_bsd_armap, do_slurp_coff_armap): Likewise.
(bfd_slurp_bsd_armap_f2): Likewise.
(_bfd_slurp_extended_name_table): Likewise.
Fri Oct 6 16:18:35 1995 Ken Raeburn <raeburn@cygnus.com>
Mon Sep 25 22:49:32 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* archive.c (bfd_get_next_mapent): Return BFD_NO_MORE_SYMBOLS
when the symbol table is empty.
* elf32-m68k.c (elf_m68k_size_dynamic_sections): Don't reserve
space for section symbols, since we don't output them either.
(elf_m68k_adjust_dynindx): Removed.
* ptrace-core.c (rawptr): Make it a local variable of
ptrace_unix_core_file_p.
Fri Oct 6 12:24:47 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* coff-rs6000.c (xcoff_write_archive_contents): Return false, not
NULL.
* config.bfd (powerpc{,le}-{elf,sysv4,eabi,solaris2}): Add NT, and
Mac object file formats.
Fri Oct 6 12:04:02 1995 Ian Lance Taylor <ian@cygnus.com>
* coffgen.c (coff_fix_symbol_name): Don't try to set up file
auxent if there isn't one.
(coff_write_symbols): If there is no file auxent, use SYMNMLEN
rather than FILNMLEN as the maximum name length.
* coffcode.h (bfd_coff_backend_data): Add new field
_bfd_coff_print_aux.
(bfd_coff_print_aux): New static function.
(coff_pointerize_aux_hook (RS6000COFF_C version)): Pointerize the
scnlen field of an XTY_LD csect aux entry.
(coff_print_aux): New static function.
(coff_slurp_symbol_table): Don't pointerize scnlen field; now done
in coff_pointerize_aux_hook.
(bfd_coff_std_swap_table): Initialize new field.
* coffgen.c (coff_print_symbol): Call bfd_coff_print_aux.
* libcoff.h: Rebuild.
* coff-alpha.c (alpha_ecoff_backend_data): Initialize new field.
* coff-mips.c (mips_ecoff_backend_data): Likewise.
* coffcode.h (coff_write_object_contents): On AIX, clear F_RELFLG
if there are symbols, for native AIX ld compatibility.
* coffcode.h (bfd_coff_backend_data): Add new field
_bfd_coff_pointerize_aux_hook.
(coff_pointerize_aux_hook): Define as a function if RS6000COFF_C
or I960, and as 0 otherwise.
(bfd_coff_std_swap_table): Initialize new field.
* libcoff.h: Rebuild.
* coffgen.c (coff_pointerize_aux): Change parameters to take
symbol pointer instead of type and class, and to take aux index.
Call _bfd_coff_pointerize_aux_hook if it is defined.
(coff_get_normalized_symtab): Always call coff_pointerize_aux.
* coff-alpha.c (alpha_ecoff_backend_data): Initialize all fields.
* coff-mips.c (mips_ecoff_backend_data): Likewise.
* coff-rs6000.c: Add full support for AIX archives. Rewrite old
read-only/host-only support.
* coffcode.h (coff_slurp_symbol_table): Set C_HIDEXT symbols to be
BSF_LOCAL.
(OTHER_GLOBAL_CLASS): Do not define to be C_HIDEXT if
RS6000COFF_C.
* targets.c (bfd_target): Add _bfd_read_ar_hdr field. Modify
BFD_JUMP_TABLE_ARCHIVE accordingly.
* libbfd-in.h (_bfd_snarf_ar_hdr): Don't declare.
(_bfd_compute_and_write_armap): Declare.
(_bfd_generic_read_ar_hdr): Declare.
(_bfd_read_ar_hdr): Define.
(_bfd_noarchive_read_ar_hdr): Define.
(_bfd_archive_bsd_read_ar_hdr): Define.
(_bfd_archive_coff_read_ar_hdr): Define.
* archive.c: Change all callers of _bfd_snarf_ar_hdr to call
_bfd_read_ar_hdr instead.
(_bfd_generic_read_ar_hdr): Rename from _bfd_snarf_ar_hdr.
(_bfd_compute_and_write_armap): Rename from
compute_and_write_armap. Make non-static. Change all callers.
* ecoff.c (_bfd_ecoff_slurp_armap): Call _bfd_read_ar_hdr rather
than _bfd_snarf_ar_hdr.
* aout-target.h (MY_read_ar_hdr): Define if not defined.
* ieee.c (ieee_read_ar_hdr): Define.
* libecoff.h (_bfd_ecoff_read_ar_hdr): Define.
* oasys.c (oasys_read_ar_hdr): Define.
* som.c (som_read_ar_hdr): Define.
* bfd-in2.h, libbfd.h: Rebuild.
Thu Oct 5 14:04:07 1995 steve chamberlain <sac@slash.cygnus.com>
* peicode.c (coff_swap_filehdr_in): If symptr is
zero, there aren't any symbols, even if nsyms is set.
Thu Oct 5 11:45:02 1995 Ian Lance Taylor <ian@cygnus.com>
* libecoff.h (struct ecoff_backend_data): Add adjust_headers
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.
* hosts/i386bsd.h: Restore file incorrectly deleted on Sep 6.
Wed Oct 4 18:15:02 1995 Jeff Law (law@hurl.cygnus.com)
* rs6000-core.c (CORE_VERSION_1): Use CORE_VERSION_1 instead
of ALTERNATE_AIX_CORE_FORMAT.
* configure.in (aix4): No longer need CORE_FLAGS.
* configure: Updated.
Wed Oct 4 15:36:36 1995 Ken Raeburn <raeburn@cygnus.com>
NS32k changes from Ian Dall:
* aoutx.h (MY_final_link_relocate, MY_relocate_contents): New
macros.
(aout_link_input_section_std, aout_link_input_section_ext,
aout_link_reloc_link_order): Call them instead of _bfd_*
versions.
* aout-target.h (MY_exec_header_not_counted): New macro, defaults
to zero.
(backend_data): Use it instead of hardcoded zero.
* aout-ns32k.c (CTOR_TABLE_RELOC_HOWTO): New macro.
(MY_swap_std_reloc_out): Use udata.i for KEEPIT, don't call stoi.
* ns32knetbsd.c: Include bfd.h.
(MY_text_includes_header, MY_bfd_reloc_type_lookup): New macros.
(MY_bfd_reloc_type_lookup): Declare function too.
* pc532-mach.c (set_sizes): Don't declare.
(MY_text_includes_header, MY_exec_header_not_counted): Define.
(backend_data, MY_backend_data): Don't define.
* config.bfd: Treat ns32k-pc532-ux* like ns32k-pc532-mach*, and
ns32k-*-lites* like ns32k-*-netbsd*.
* hosts/nbsd.h: Swap order of sys/vmparam.h and sys/param.h, to
compile on lites.
Wed Oct 4 14:15:52 1995 Ian Lance Taylor <ian@cygnus.com>
* coffcode.h (coff_write_object_contents): Restore setting
f_timdat to 0, deleted on August 22.
Tue Oct 3 16:28:32 1995 steve chamberlain <sac@slash.cygnus.com>
* coffcode.h (coff_bfd_copy_private_symbol_data,
coff_bfd_copy_private_section_data,
coff_bfd_copy_private_bfd_data): ifdef to allow overrides.
* peicode.h (coff_bfd_copy_private_bfd_data): New
(pe_bfd_copy_private_bfd_data): New.
(coff_swap_scnhdr_in): Swap bss size into the right place.
(pe_print_private_bfd_data): Add some newlines.
Tue Oct 3 11:53:04 1995 Jeff Law (law@hurl.cygnus.com)
* som.c (setup_sections): Don't die if a space has no subspaces.
Mon Oct 2 14:08:55 1995 Ian Lance Taylor <ian@cygnus.com>
* elflink.h (elf_link_add_object_symbols): Don't let a weak
dynamic symbol override a common symbol. Don't change the size or
type if they have been set and the new symbol is not a definition.
Warn if the size or type changes.
Sun Oct 1 01:34:41 1995 Jeff Law (law@hurl.cygnus.com)
* som.c (som_begin_writing): Don't write the symbol table or
symbol strings.
(som_finish_writing): Write them here. Place them after the
subspace data, but before the relocs.
Fri Sep 29 11:01:55 1995 Ian Lance Taylor <ian@cygnus.com>
* sunos.c (sunos_add_one_symbol): Just pass false, not
info->shared_library, to sunos_create_dynamic_sections.
(sunos_scan_ext_relocs): Don't warn about a reloc in the .text
section.
(sunos_check_dynamic_reloc): Remove .text section assertion.
Thu Sep 28 18:48:47 1995 Stan Shebs <shebs@andros.cygnus.com>
* config.bfd: Add powerpc-*-macos*, powerpc-*-mpw*.
* configure, configure.in: Add pmac_xcoff_vec case.
* Makefile.in (BFD32_BACKENDS): Add coff-pmac.o.
* coff-pmac.c: New file, PowerMac XCOFF support.
* coffcode.h (coff_set_arch_mach_hook): Add PowerMac case.
* targets.c (pmac_xcoff_vec): Declare.
* mpw-config.in: Various changes to be compatible with the
autoconf-based configury.
* mpw-make.sed: New file, sed commands to translate Unix
makefile into MPW syntax.
* mpw-make.in: Remove.
* hosts/mpw.h: Remove.
* bfd-in.h, bfd-in2.h: If MPW, include the file that defines
true and false as enums, then define TRUE_FALSE_ALREADY_DEFINED.
Thu Sep 28 17:06:23 1995 steve chamberlain <sac@slash.cygnus.com>
* binary.c (binary_get_symtab): Return an empty string on error.
* opncls.c (bfd_fdpenr): Change WIN32 restriction to WINGDB.
Thu Sep 28 15:30:44 1995 Kim Knuttila <krk@nellie>
* coff-ppc.c: Reformatted according to gnu conventions
Removed irrelevant "if 0" code
Thu Sep 28 11:19:53 1995 Ian Lance Taylor <ian@cygnus.com>
* hp300hpux.c (convert_sym_type): Treat secondary symbols as weak
symbols rather than as indirect symbols.
(MY(slurp_symbol_table)): Don't do anything special about
secondary symbols.
* coffcode.h (coff_new_section_hook): Make sure that the alignment
of .ctors and .dtors sections is no larger than 2.
* sunos.c (sunos_add_one_symbol): Don't change
bfd_link_hash_common to bfd_link_hash_new, since it may be on the
undef list.
(bfd_sunos_record_link_assignment): Don't put __DYNAMIC in the
dynamic symbols when creating a shared library.
(sunos_scan_ext_relocs): Handle relocs correctly when creating a
shared library.
(sunos_scan_dynamic_symbol): Don't mark the __DYNAMIC symbol as
written even if it is not defined in a regular object.
(sunos_write_dynamic_symbol): Use plt_offset for the address of
the jump table reloc. Add an assertion. Use RELOC_JMP_SLOT
rather than the constant 22.
(sunos_check_dynamic_reloc): Handle creating a shared library.
(sunos_finish_dynamic_link): Set the first entry in the GOT to
zero when creating a shared library.
* aoutx.h (NAME(aout,final_link)): If there is a symbol __DYNAMIC,
write it out at the start of the symbol table.
* Makefile.in (BFD32_BACKENDS): Add coff-arm.o.
Thu Sep 28 00:58:05 1995 Doug Evans <dje@deneb.cygnus.com>
* config.bfd: Add arm-*-coff.
* configure.in, configure: Add armcoff_{little,big}_vec.
* targets.c (armcoff_{little,big}_vec): Declare.
(bfd_target_vector): Add armcoff_{little,big}_vec.
* coff-arm.c (armcoff_{little,big}_vec): Always define.
Wed Sep 27 10:37:14 1995 Ian Lance Taylor <ian@cygnus.com>
* targets.c (bfd_find_target): Remove debugging code.
Wed Sep 27 07:23:39 1995 Kim Knuttila <krk@nellie>
* coff-ppc.c, pe-ppc.c, pei-ppc.c: Initial bfd for coff/PE
support on powerpc.
* Makefile.in: added *-ppc files
* coffcode.h: ppc MAGIC, and use peicode.h rather than coffswap.h to
allow pe based .o's to be shared with other tools on ppc/NT
* config.bfd: added powerpc[le]-[pe|winnt] config support
* configure, configure.in: added bfd_powerpc[le]_pe[i]_vec
* peicode.h: Added more section flags for PE on ppc
Added coff_swap_filehdr_out to allow peicode.h to be
used for non-image PE files on ppc.
Check for image, or not, before copying pe_opthdr
* targets.c: Added new bfd's
* targets.c: Removed two inactive bfds that shouldn't have made it this
far.
Tue Sep 26 14:06:41 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* elf32-ppc.c (ppc_reloc_type): Rename from reloc_type, and use
explicit values to initialize all relocs. Change all users.
(ppc_elf_brtaken_inner): New function to handle branch predicition
relocs.
(ppc_elf_brtaken_reloc): Ditto.
(ppc_elf_howto_raw): Use new functions. Make sure all unsupported
relocs use ppc_elf_unsupported_reloc.
(ppc_elf_merge_private_bfd_data): Keep track of whether an error
needs to be reported.
(ppc_elf_relocate_section): Support branch prediction relocs.
Tue Sep 26 12:48:05 1995 Ian Lance Taylor <ian@cygnus.com>
* bfd.c (bfd_assert): Remove \n from string passed to
_bfd_error_handler.
* coff-i386.c: (TWO_DATA_SECS): Don't define.
* coffcode.h (bfd_coff_backend_data): Remove _bfd_make_section_hook.
(bfd_coff_make_section_hook): Don't define.
(coff_make_section_hook): Remove.
(sec_to_styp_flags): Remove TWO_DATA_SECS case.
(styp_to_sec_flags): Likewise.
(coff_write_object_contents): Likewise.
(bfd_coff_std_swap_table): Don't initialize make_section_hook
field.
* libcoff.h: Rebuild.
* coffgen.c (make_a_section_from_file): Just call
bfd_make_section_anyway, not bfd_make_section or
bfd_coff_make_section_hook.
* ecoff.c (_bfd_ecoff_make_section_hook): Remove.
* libecoff.h (_bfd_ecoff_make_section_hook): Don't declare.
* coff-alpha.c (alpha_ecoff_backend_data): Don't initialize
make_section_hook field.
* coff-mips.c (mips_ecoff_backend_data): Likewise.
* aoutx.h (translate_from_native_sym_flags): Don't try to stuff
pointers into value field for warning and indirect symbols; just
leave the value field alone.
* linker.c (generic_link_add_symbol_list): Use next symbol for
warning and indirect symbols, rather than looking in symbol value.
* ecoff.c (ecoff_set_symbol_info): Remove indirect_ptr_ptr
parameter. Change all callers. Remove support for indirect
symbols; it didn't work anyhow.
(_bfd_ecoff_slurp_symbol_table): Remove indirect_ptr variable.
* syms.c: Change comments about BSF_WARNING and BSF_INDIRECT.
* bfd-in2.h: Rebuild.
Mon Sep 25 16:04:09 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* elf32-ppc.c (ppc_elf_howto_raw): For all 14-bit branch relocs,
go back to telling the tools this reloc operates on 32 bits.
Mon Sep 25 11:48:02 1995 Ian Lance Taylor <ian@cygnus.com>
* aout-adobe.c (aout_adobe_callback): Use _bfd_error_handler
rather than a direct fprintf.
* archive.c (_bfd_write_archive_contents): Likewise.
* coffcode.h (coff_slurp_symbol_table): Likewise.
* elf32-ppc.c (ppc_elf_merge_private_bfd_data): Likewise.
(ppc_elf_unsupported_reloc): Likewise.
(ppc_elf_relocate_section): Likewise.
* i386linux.c (linux_tally_symbols): Likewise.
(linux_finish_dynamic_link): Likewise.
* osf-core.c (osf_core_core_file_p): Likewise.
* rs6000-core.c (rs6000coff_get_section_contents): Likewise.
* som.c (som_sizeof_headers): Likewise.
* srec.c (srec_bad_byte): Likewise.
* bfd.c (bfd_assert): Likewise. Also change file to be const.
* libbfd-in.h (bfd_assert): Declare first parameter const.
* libbfd.h: Rebuild.
* coff-a29k.c (a29k_reloc): Don't bother to fprintf; returning
bfd_reloc_overflow is enough.
* coff-h8300.c (rtype2howto): Don't bother to fprintf; just abort.
* coff-h8500.c (rtype2howto): Likewise.
* coff-z8k.c (rtype2howto): Likewise.
* coffcode.h (dummy_reloc16_extra_cases): Likewise.
* elf.c (_bfd_elf_get_lineno): Likewise.
(_bfd_elf_no_info_to_howto): Likewise.
(_bfd_elf_no_info_to_howto_rel): Likewise.
* hp300hpux.c (convert_sym_type): Likewise.
(MY(swap_std_reloc_in)): Likewise.
* elf.c (bfd_section_from_shdr): Remove #if 0 sections.
* libaout.h (struct aoutdata): Add line_buf field.
* aoutx.h (NAME(aout,find_nearest_line)): Remove statics buffer
and filename_buffer. Instead, use a malloc buffer stored in the
new line_buf field. Remove length restrictions.
* coffgen.c (string_size): Remove static variable.
(debug_string_size, debug_string_section): Likewise.
(coff_fix_symbol_name): Add string_size_p, debug_string_section_p,
and debug_string_size_p parameters. Use them instead of the
global variables. Change all callers.
(coff_write_symbol): Likewise.
(coff_write_alien_symbol, coff_write_native_symbol): Likewise.
(coff_write_symbols): Add local variables to replace removed
global variables.
* libcoff-in.h (struct coff_section_tdata): Add offset, i,
function, and line_base fields.
* libcoff.h: Rebuild.
* coffgen.c (coff_find_nearest_line): Use section tdata to cache
information, rather than using static variables.
* sunos.c (sunos_read_dynamic_info): Adjust offsets in an NMAGIC
file. From Peter DeWolf <pld@amt.tay1.dec.com>.
* init.c (initialized): Remove static variable.
(bfd_init): Don't bother setting initialized.
(bfd_check_init): Remove.
* opncls.c (_bfd_new_bfd): Don't call bfd_check_init.
* libbfd.h: Rebuild.
Sat Sep 23 01:22:23 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* rs6000-core.c (rs6000coff_core_p): Don't check the core file
size for full core dumps. Copy core file header to private data.
(rs6000coff_core_file_failing_command,
rs6000coff_core_file_failing_signal): New functions to extract
the file name and terminating signal from the core file.
* coff-rs6000.c: Use them.
Fri Sep 22 17:44:47 1995 Ian Lance Taylor <ian@cygnus.com>
Change arch info to be const, initialized at compile time.
* archures.c: Reindent many functions. Change CONST to const.
(bfd_arch_info_type): Make arch_name const. Remove disassemble;
nothing set it anyhow. Make next const.
(bfd_arch_info_list): Remove.
(bfd_archures_list): Rename from archures_init_table. Change from
a table of function pointers to a table of bfd_arch_info_type
structure addresses.
(bfd_scan_arch): Rewrite accordingly. Return a const pointer.
(bfd_lookup_arch): Likewise.
(bfd_set_arch_info): Rewrite accordingly. Change argument to be a
const pointer.
(bfd_default_arch_struct): Make const.
(bfd_arch_init, bfd_arch_linkin): Remove.
(bfd_get_arch_info): Return a const pointer.
* init.c (bfd_init): Don't call bfd_arch_init.
* bfd.c (struct _bfd): Make arch_info const.
* bfd-in2.h: Rebuild.
* libbfd.h: Rebuild.
* configure.in: Put & before everything in $selarchs.
* configure: Rebuild.
* cpu-*.c: Change bfd_*_arch from a function which calls
bfd_arch_linkin to a const structure.
* ieee.c (ieee_object_p): Make arch const.
Fri Sep 22 16:23:18 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* reloc.c (bfd_reloc_code_type): Add relocations to support all of
PowerPC V.4.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* elf32-ppc.c (reloc_type): Update names to match current draft.
(ppc_elf_howto_raw): Mark 14 bit relocs as short sized and PC
relative. Update names to current V.4 draft.
(ppc_elf_reloc_type_lookup): Add support for more relocations.
(ppc_elf_relocate_section): Rename relocations to match draft.
Thu Sep 21 21:53:18 1995 Michael Meissner <meissner@cygnus.com>
* elf32-ppc.c (ppc_elf_merge_private_bfd_data): Allow modules
compiled with -mrelocatable-lib to be linked with either normal
modules or -mrelocatable modules.
Wed Sep 20 12:03:26 1995 Ian Lance Taylor <ian@cygnus.com>
* coffcode.h (coff_write_object_contents): Clear the vstamp field
in the a.out header.
* aoutx.h (NAME(aout,swap_ext_reloc_out)): Don't set r_extern for
a reloc against a local symbol, even if it's not a section.
Tue Sep 19 17:02:26 1995 Ian Lance Taylor <ian@cygnus.com>
* targets.c (bfd_target): Remove unused align_power_min field.
* bfd-in2.h: Rebuild.
* All backends: Remove initialization of align_power_min.
Tue Sep 19 14:02:21 1995 steve chamberlain <sac@slash.cygnus.com>
* peicode.h (coff_swap_scnhdr_out): Get sizes for BSS right.
Mon Sep 18 14:35:01 1995 Arne H. Juul <arnej@pvv.unit.no>
* config.bfd (mips-dec-netbsd*): New target.
* configure.host (mips-dec-netbsd*): New host.
* configure.in (mips-dec-netbsd*): New native.
* configure: Rebuild.
Fri Sep 15 10:24:36 1995 Ian Lance Taylor <ian@cygnus.com>
Make the COFF backend linker merge common types:
* cofflink.c (struct coff_debug_merge_element): Define.
(struct coff_debug_merge_type): Define.
(struct coff_debug_merge_hash_entry): Define.
(struct coff_debug_merge_hash_table): Define.
(coff_debug_merge_hash_table_init): Define.
(coff_debug_merge_hash_table_free): Define.
(coff_debug_merge_hash_lookup): Define.
(struct coff_final_link_info): Add debug_merge field.
(coff_debug_merge_hash_newfunc): New static function.
(_bfd_coff_final_link): Allocate and free debug_merge table.
(coff_link_input_bfd): Merge identical enum, struct and union
types.
Thu Sep 14 14:53:58 1995 Ian Lance Taylor <ian@cygnus.com>
Convert i960 COFF to use COFF backend linker.
* coff-i960.c (coff_i960_relocate): Use a coff_section_data
structure to store the symbol being used.
(coff_i960_start_final_link): New static function.
(coff_i960_relocate_section): New static function.
(coff_i960_adjust_symndx): New static function.
(coff_start_final_link): Define.
(coff_relocate_section): Define.
(coff_adjust_symndx): Define.
* coffcode.h (bfd_coff_backend_data): Add new callback function
_bfd_coff_start_final_link.
(bfd_coff_start_final_link): Define.
(coff_start_final_link): Define if not defined.
(bfd_coff_std_swap_table): Add coff_start_final_link.
* cofflink.c (_bfd_coff_internal_syment_name): Make globally
visible.
(_bfd_coff_final_link): Call bfd_coff_start_final_link if the
function callback is not NULL.
* libcoff-in.h (struct coff_section_tdata): Add tdata field.
(_bfd_coff_internal_syment_name): Declare.
* libcoff.h: Rebuild.
* configure.in (icoff_big_vec): Add cofflink.o.
(icoff_little_vec): Likewise.
* configure: Rebuild.
Wed Sep 13 17:38:23 1995 Fred Fish <fnf@rtl.cygnus.com>
* Makefile.in (clean-info): Remove extraneous tab from line
following action.
Wed Sep 13 13:27:53 1995 Ian Lance Taylor <ian@cygnus.com>
* cofflink.c (coff_link_input_bfd): Fail if a section with no
contents has relocs.
Thu Sep 12 12:45:34 1995 steve chamberlain <sac@slash.cygnus.com>
* coffcode.h (coff_compute_section_file_positions): Keep the
raw size safe.
(coff_write_object_contents): Remember if it's a relocatable
file.
* libcoff-in.h (pe_data_type): New member 'has_reloc_section'
* peicode.h (coff_swap_filehdr_out): Clear not-reloc flag
if relocatable file. Swap out saved raw size.
Tue Sep 12 12:14:33 1995 Ian Lance Taylor <ian@cygnus.com>
* Makefile.in (do_maintainer_clean): Rename from do_realclean.
(maintainer-clean): Rename from realclean, passing
maintainer-clean down to subdirectories, but leave realclean as a
synonym.
* linker.c (_bfd_generic_link_add_one_symbol): Pass symbol name to
warning callback.
* dep-in.sed: Remove config.h from generated dependencies.
* sunos.c (sunos_slurp_dynamic_symtab): New static function,
broken out of sunos_canonicalize_dynamic_symtab.
(sunos_canonicalize_dynamic_symtab): Call new function
sunos_slurp_dynamic_symtab.
(sunos_add_dynamic_symbols): Add three new parameters. Return the
dynamic symbol table to the caller.
* aoutx.h (aout_link_add_symbols): Permit add_dynamic_symbols
callback to override the symbols being read.
* libaout.h (struct aout_backend_data): Add three new parameters
to add_dynamic_symbols callback.
Extensive minor changes to avoid various gcc warnings. Also:
* 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.
Mon Sep 11 10:55:47 1995 Ian Lance Taylor <ian@cygnus.com>
* sunos.c (sunos_scan_std_relocs): Fix BFD_ASSERT: it's OK to find
a symbol with a non-zero plt_offset.
Fri Sep 8 11:47:24 1995 Ian Lance Taylor <ian@cygnus.com>
* elfcode.h (align_file_position): Remove; not used.
* configure.in: Only check for <sys/procfs.h> on a native system,
and make sure it defines prstatus_t.
* configure: Rebuild.
Thu Sep 7 12:48:01 1995 Ian Lance Taylor <ian@cygnus.com>
* sunos.c (sunos_write_dynamic_symbol): Correct m68k abort test.
* config.in: Rename from config.h.in.
* configure.in: Call AC_CONFIG_HEADER with config.h:config.in.
Check for config.h:config.in when creating stamp-h.
* configure: Rebuild.
* Makefile.in (stamp-h): Depend upon config.in rather than
config.h.in. Set CONFIG_HEADERS to config.h:config.in when
calling config.status.
* Makefile.in (do_distclean): Remove config.h and stamp-h.
(Makefile): Just rebuild Makefile.
(config.h, stamp-h): New targets.
* configure.in: Create stamp-h when rebuilding config.h.
* configure: Rebuild.
Wed Sep 6 15:00:33 1995 Ian Lance Taylor <ian@cygnus.com>
* configure.in: Call AC_CONFIG_HEADER. Substitute
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.
* aclocal.m4 (BFD_BINARY_FOPEN): Define.
(BFD_CC_FOR_BUILD): Define.
* configure.in: Use BFD_CC_FOR_BUILD.
* configure: Rebuild.
Tue Sep 5 19:35:28 1995 Ian Lance Taylor <ian@cygnus.com>
* aclocal.m4: Don't try to grep ../Makefile if it doesn't exist.
* configure: Rebuild.
* coff-sparc.c (CALC_ADDEND): Don't set the addend to the value of
a global symbol.
Tue Sep 5 12:48:26 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* config.bfd: i386pe_ve -> i386pe_vec.
Mon Sep 4 14:02:43 1995 Ian Lance Taylor <ian@cygnus.com>
* configure.host: Incorporate host Makefile fragments by setting
shell variables.
* configure.in: Call AC_PROG_CC. Substitute CFLAGS, HDEFINES and
AR. Call AC_PROG_INSTALL. Substitute CC_FOR_BUILD, choosing a
value based on whether the code is being compiled by a cross
compiler. Don't substitute host_makefile_frag or frags.
* aclocal.m4: New file to define local AC_PROG_CC.
* configure: Rebuild.
* Makefile.in (INSTALL): Set to @INSTALL@.
(INSTALL_PROGRAM): Set to @INSTALL_PROGRAM@.
(INSTALL_DATA): Set to @INSTALL_DATA@.
(AR): Set to @AR@.
(CC): Define as @CC@.
(CFLAGS): Set to @CFLAGS@.
(CC_FOR_BUILD): Set to @CC_FOR_BUILD@.
(@host_makefile_frag@): Remove.
(ALL_CFLAGS): Change $(HDEFINES) to @HDEFINES@. Move $(CFLAGS)
after other options.
(config.status): Remove dependency upon @frags@.
* config/*.mh, config/README: Remove.
* config.bfd: Rewrite to incorporate the contents of the Makefile
fragments by setting shell variables, rather than merely returning
the name of a Makefile fragment.
* configure.in: Use shell variables set by config.bfd rather than
looking at the target Makefile fragment files. Don't substitute
target_makefile_frag. Do substitute TDEFINES.
* configure: Rebuild.
* Makefile.in (@target_makefile_frag@): Remove.
(ALL_CFLAGS): Change $(TDEFINES) to @TDEFINES@.
* config/*.mt: Remove.
Mon Sep 4 03:13:28 1995 Ken Raeburn <raeburn@cygnus.com>
* configure.in: Put changequote lines around "i[345]86" patterns
section of core file support.
Sun Sep 3 11:31:58 1995 Jeff Law (law@snake.cs.utah.edu)
* som.c (som_bfd_print_private_bfd_data): Define to use the
generic version.
Fri Sep 1 17:08:40 1995 steve chamberlain <sac@slash.cygnus.com>
* peicode.h (coff_swap_aouthdr_in): Add ImageBase to
entry, text_start and data_start.
Fri Sep 1 18:06:28 1995 Ian Lance Taylor <ian@cygnus.com>
* Makefile.in (OFILES): Remove $(TDEPFILES).
* config/apollo.mt (TDEPFILES): Remove.
* config/README: Update.
* configure.in: For a native configuration, set COREFILE and
COREFLAG based on the canonical host name.
* configure: Rebuild.
* Makefile.in: Rebuild dependencies.
(ALL_CFLAGS): Add @COREFLAG@.
(OFILES): Replace $(HDEPFILES) with @COREFILE@.
* coff-rs6000.c: Check AIX_CORE rather than HOST_AIX for core file
support routines. Check LYNX_CORE rather than HOST_LYNX.
* lynx-core.c: Check LYNX_CORE rather than HOST_LYNX.
* i386lynx.c: Likewise.
* m68klynx.c: Likewise.
* sparclynx.c: Likewise.
* rs6000-core.c: Check AIX_CORE rather than HOST_AIX.
* *-core.c: Comment changes.
* config/decstation.mh (HDEPFILES): Remove.
(HDEFINES): Remove -DTRAD_CORE.
* config/irix3.mh (RANLIB): Remove.
* config/irix4.mh (HDEPFILES, RANLIB): Remove.
(HDEFINES): Remove -DIRIX_CORE.
* config/riscos.mh (RANLIB, HDEPFILES): Remove.
(HDEFINES): Remove -DTRAD_CORE.
* config/ncr3000.mh (AR_FLAGS, RANLIB): Remove.
* config/ultra3.mh (RANLIB): Remove.
* config/aix4.mh, config/alphaosf.mh, config/amix.mh: Remove.
* config/apollo.mh, config/delta68.mh, config/delta88.mh: Remove.
* config/dpx2.mh, config/esix.mh, config/harris.mh: Remove.
* config/hp300.mh, config/hp300bsd.mh, config/hppabsd.mh: Remove.
* config/hppahpux.mh, config/hppaosf.mh: Remove.
* config/i386aix.mh, config/i386bsd.mh: Remove.
* config/i386linux.mh, config/i386mach3.mh: Remove.
* config/i386sco.mh, config/i386v.mh, config/i386v4.mh: Remove.
* config/irix5.mh, config/m88kmach3.mh, config/mipsbsd.mh: Remove.
* config/mipsmach3.mh, config/news-mips.mh: Remove.
* config/news.mh, config/pc532mach.mh, config/riscix.mh: Remove.
* config/rs600.mh, config/rs6000lynx.mh: Remove.
* config/solaris2.mh, config/stratus.mh: Remove.
* config/symmetry.mh, config/sysv4.mh, config/tahoe.mh: Remove.
* config/vaxbsd.mh, config/vaxult.mh, config/vaxult2.mh: Remove.
Fri Sep 1 15:18:50 1995 Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>
* elflink.h (elf_bfd_final_link): Don't change a DT_INIT or
DT_FINI entry if the appropriate symbol is not in the hash table.
* libelf.h (struct elf_backend_data): Add create_program_headers
and want_hdr_in_seg fields.
* elfxx-target.h (elf_backend_want_hdr_in_seg): Define if not
defined.
(elf_backend_create_program_headers): Likewise.
(elfNN_bed): Initialize create_program_headers and
want_hdr_in_seg.
* elf.c (get_program_header_size): Call create_program_headers
backend routine.
(map_program_segments): Check want_hdr_in_seg backend field. Call
create_program_headers backend routine.
* elf.c (assign_file_positions_except_relocs): Align non allocated
sections when creating an executable.
* elfcode.h (elf_swap_phdr_in): Make non static.
(elf_swap_phdr_out): Make non static.
* libelf.h (bfd_elf32_swap_phdr_in): Declare.
(bfd_elf32_swap_phdr_out): Declare.
(bfd_elf64_swap_phdr_in): Declare.
(bfd_elf64_swap_phdr_out): Declare.
* ecofflink.c (ecoff_collect_shuffle): New static function.
(_bfd_ecoff_get_accumulated_pdr): New function.
(_bfd_ecoff_get_accumulated_sym): New function.
(_bfd_ecoff_get_accumulated_ss): New function.
* libbfd-in.h (_bfd_ecoff_get_accumulated_pdr): Declare.
(_bfd_ecoff_get_accumulated_sym): Declare.
(_bfd_ecoff_get_accumulated_ss): Declare.
* libbfd.h: Rebuild.
Fri Sep 1 13:20:25 1995 Ian Lance Taylor <ian@cygnus.com>
* libecoff.h (_bfd_ecoff_bfd_print_private_bfd_data): Fix typo.
* elflink.h (elf_link_add_object_symbols): Handle indirect and
warning symbols. If any section is named .gnu.warning.XXX, treat
the contents as a warning to be issued if the symbol XXX is
referenced.
(elf_link_output_extsym): For an indirect or warning symbol, just
output the symbol it points to.
* linker.c (_bfd_link_hash_newfunc): Don't bother to set bfd_error
if bfd_hash_allocate fails, since it will already be set.
(generic_link_hash_newfunc): Likewise.
(archive_hash_newfunc): Likewise.
(hash_entry_bfd): New static function.
(_bfd_generic_link_add_one_symbol): Pass new arguments to warning
callback. Allocate a new warning using the hash table newfunc.
Use bfd_hash_replace to update the entry in the hash table, rather
than assuming we can copy the fields with structure assignment.
* hash.c (bfd_hash_replace): New function.
* bfd-in.h (bfd_hash_replace): Declare.
* bfd-in2.h: Rebuild.
Fri Sep 1 08:12:50 1995 James G. Smith <jsmith@beauty.cygnus.com>
* config.bfd: Add mips*vr4300-*-elf* target.
* config/mipsbvr4300.mt: Added.
Thu Aug 31 16:00:53 1995 steve chamberlain <sac@slash.cygnus.com>
* 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.
Thu Aug 31 11:49:21 1995 Ian Lance Taylor <ian@cygnus.com>
* bfd-in.h: Add extern "C" if __cplusplus.
* bfd-in2.h: Rebuild.
* coff-mips.c (mips_relocate_section): Don't convert a reloc
against an absolute symbol into a reloc against a section.
Thu Aug 31 08:00:14 1995 steve chamberlain <sac@slash.cygnus.com>
* coff-arm.c (coff_arm_reloc): Fix common size problem.
(i3coff_object_p): Delete.
Wed Aug 30 20:41:27 1995 steve chamberlain <sac@slash.cygnus.com>
* coff-arm.c (deletemeacoff_arm_reloc): Deleted.
(arm26): Not partial inplace.
* coffcode.h (coff_compute_section_file_positions): Don't
do page aligning if COFF_PAGE_SIZE isn't defined.
* coffswap.h (coff_swap_scnhdr_in): Update image base correctly.
Tue Aug 29 13:50:21 1995 steve chamberlain <sac@slash.cygnus.com>
* coffcode.h (coff_compute_section_file_positions):
Compile even if COFF_PAGE_SIZE isn't defined.
* cofflink.c (_bfd_coff_generate_reloc_section): Write
base file info as rvas.
* coff-arm.c (coff_rtype_to_howto): Deal with reloc 11.
* coffcode.h (coff_write_object_contents): Remove #if0ed code
Only remove empty sections in PE inmage files.
* libbfd.h, bfd-in2.h: regenerated.
* coff-arm.c (aoutarm_std_relo): New entry at 11.
(arm_reloc_type_lookup) : Understand type 11.
* coff-i386.c (howto_table): fix name of rva type.
(coff-i386_rtype_to_howto): Understand R_IMAGEBASE type.
* coffcode.h (sec_to_styp_flags): .edata is data.
(coff_compute_section_file_positions): Get page size right for PE.
Pagesize info is only valid in PE image files.
(fill_pe_header_info): Fix fields.
(coff_write_object_contents): Remove end_of_image calc.
(_bfd_coff_generate_reloc_section): Remove orphaned comment.
* coffswap.h (coff_swap_scnhdr_in): Don't always add IMAGE_BASE.
Swap in PE header.
(coff_swap_scnhdr_out): Setup PE flags correctly.
* reloc.c (BFD_RELOC_RVA): New field.
Thu Aug 24 17:49:59 1995 Ian Lance Taylor (ian@cygnus.com)
* cofflink.c (coff_link_input_bfd): Don't include line numbers for
a section if its output section has no contents.
Wed Aug 23 16:48:52 1995 Ian Lance Taylor (ian@cygnus.com)
* ecoff.c (_bfd_ecoff_slurp_symbolic_info): Add parentheses to FIX
expression to avoid compiler bug on HP-UX 9.01.
Wed Aug 23 09:49:39 1995 Steve Chamberlain <sac@rtl.cygnus.com>
* coffcode.h (pe_value): Unansify.
Mon Aug 21 17:49:28 1995 steve chamberlain <sac@slash.cygnus.com>
* bfd-in.h (bfd_link_subsystem): Turn enum into #defines.
(bfd_link_pe_info_dval): New
(bfd_link_stack_heap): Renamed and massaged into bfd_link_pe_info.
* bfd-in2.h: rebuilt.
* bfd.c (NT_subsystem, NT_stack_heap): Deleted.
* coffcode.h (pe_value): New function.
(fill_pe_header_info): New function.
(coff_write_object_contents): Use new function.
(coff_write_object_contents): Initialze link_data if not set.
* cofflink.c (coff_final_link_info): Remove pe randomness.
(dores_com): Update info in bfd_link_pe_info_dval.
(process_embedded_commands): Use the bfd_link_pe_info_dval.
(_bfd_coff_final_link): Remove PE stuff, initialize
coff_data->link_info.
* coffswap.h (coff_swap_[aout|filehdr]_out): Use indirect PE pointer.
(coff_swap_scnhdr_out): Use real imagebase.
* libcoff-in.h (coff_data_type.link_info): New field.
Mon Aug 21 11:10:32 1995 Ian Lance Taylor <ian@cygnus.com>
* linker.c (link_action): If an undefined reference follows an
undefined weak reference, change the type to undefined.
* elflink.h (elf_link_add_archive_symbols): Don't record an
undefined weak reference as defined, in case it turns into a real
undefined reference later in the same archive.
Thu Aug 17 16:29:09 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com>
* coff-sh.c (sh_relax_section): Cast value for used_by_bfd field
to PTR, not coff_section_tdata pointer, since PTR is the real type
of the field.
* cofflink.c (_bfd_coff_read_internal_relocs): Ditto.
Thu Aug 17 14:44:26 1995 Ian Lance Taylor <ian@cygnus.com>
Add support for linking SPARC SunOS PIC compiled code.
* sunos.c (SPARC_PLT_PIC_WORD0): Define.
(SPARC_PLT_PIC_WORD1, SPARC_PLT_PIC_WORD2): Define.
(struct sunos_link_hash_entry): Add got_offset and plt_offset
fields.
(struct sunos_link_hash_table): Add dynamic_sections_created and
dynamic_sections_needed fields.
(sunos_link_hash_newfunc): Initialize new fields.
(sunos_link_hash_table_create): Initialize new fields.
(sunos_create_dynamic_sections): New static function, broken out
of sunos_add_dynamic_symbols.
(sunos_add_dynamic_symbols): Call sunos_create_dynamic_sections.
(sunos_add_one_symbol): Call sunos_create_dynamic_sections.
(bfd_sunos_size_dynamic_sections): Call sunos_scan_relocs before
checking whether we need to set up the dynamic link information.
Define __GLOBAL_OFFSET_TABLE if anything referred to it.
(sunos_scan_std_relocs): Call sunos_create_dynamic_sections. Use
plt_offset field; only put symbol in .plt if it is not defined by
a regular object.
(sunos_scan_ext_relocs): Likewise. Handle base relative relocs.
(sunos_scan_dynamic_symbol): Store dynobj in local variable.
(sunos_write_dynamic_symbol): Check plt_offset rather than
checking whether symbol is in .plt section. If symbol is defined
in a regular object file, use SPARC_PLT_PIC_WORD[012], and don't
add a JMP_TBL reloc.
(sunos_check_dynamic_reloc): Add contents and relocationp fields.
If plt_offset is set, redirect relocation to PLT. If this is a
base relative reloc, redirect relocation to GOT. Check
dynamic_sections_needed field rather than whether dynobj is set.
(sunos_finish_dynamic_link): Check dynamic_sections_needed field
rather than whether dynobj is set. Don't die if .need and .rules
sections were not created.
* aoutx.h (howto_table_ext): Mark PC10, PC22, and JMP_TBL entries
PC relative. Mark PC10 complain_overflow_dont. Mark PC22 and
JMP_TBL complain_overflow_signed.
(NAME(aout,final_link)): If info->shared is set, set DYNAMIC.
(aout_link_input_section_std): Call check_dynamic_reloc for all
relocs. Pass contents and &relocation. Don't warn about an
undefined symbol until check_dynamic_reloc has been called. Don't
warn about an undefined symbol for a base relative reloc.
(aout_link_input_section_ext): Likewise. For a base relative
reloc, always treat r_index as an index into the symbol table.
* libaout.h (struct aout_backend_data): Add contents and
relocation argument to check_dynamic_reloc entry point.
(struct aoutdata): Add local_got_offsets field.
Wed Aug 16 01:03:07 1995 Ian Lance Taylor <ian@cygnus.com>
* elf32-i386.c (elf_i386_check_relocs): Fix bug in last change.
Mon Aug 14 11:39:24 1995 Ian Lance Taylor <ian@cygnus.com>
* aoutx.h (NAME(aout,machine_type)): Handle a machine of
bfd_mach_sparc or bfd_mach_sparc64.
* elflink.h (elf_link_add_object_symbols): If a symbol is a weak
definition, add it to the dynamic symbol table if any dynamic
object mentions it. If we do add it, make sure we add the
corresponding real symbol.
(elf_adjust_dynamic_symbol): Adjust a weak defined symbol which we
put in the dynamic symbol table, even if no regular object refers
to it.
* elf32-i386.c (elf_i386_check_relocs): When creating a shared
library, don't allocate space for a PC relative reloc against a
local symbol.
* elf32-m68k.c (elf_m68k_check_relocs): Likewise.
* elf32-sparc.c (elf32_sparc_check_relocs): Likewise.
* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Change assertion
to accept symbol with weakdef set.
* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise.
* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): When creating a shared
libary, don't copy over a PC relative reloc against a local
symbol.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
Sun Aug 13 00:40:58 1995 Jeff Law (law@snake.cs.utah.edu)
* som.h (R_HPPA_BEGIN_BRTAB): Define.
(R_HPPA_END_BRTAB): Likewise.
* som.c (som_write_fixups): Handle R_BEGIN_BRTAB and R_END_BRTAB.
Thu Aug 10 15:53:29 1995 Ian Lance Taylor <ian@cygnus.com>
* coffswap.h (coff_swap_aux_in): Swap the array dimensions
whenever x_fcnary is not being used for something else, rather
than only for an array.
(coff_swap_aux_out): Likewise.
Tue Aug 8 16:34:57 1995 steve chamberlain <sac@slash.cygnus.com>
* cofflink.c (_bfd_coff_generic_relocate_section): Remove most
of special case stuff for PE. Now handled by relocs.
* coff-i386.c (coff_i386_reloc): Special case of PE type 7s.
(howto_table): Type 7 is dir32-rva.
Tue Aug 8 10:15:43 1995 Jeffrey A. Law <law@rtl.cygnus.com>
* configure.host: Recognize aix4 explicitly.
* rs6000-core.c (CORE_DATA_SIZE_FIELD): New macro to get a the size
of a core dump's data section. Provide alternate definition for aix4.
(SAVE_FIELD): Similarly for save state field (register info).
(STACK_END_ADDR): Provide definition suitable for aix4.
* config/{aix4.mh,aix4.mt}: New configuration files.
* hosts/aix4.h: Likewise.
Mon Aug 7 23:03:21 1995 Ian Lance Taylor <ian@cygnus.com>
* som.c (som_bfd_copy_private_symbol_data): Cast initializations
to avoid warnings.
Mon Aug 7 14:51:08 1995 Jeff Law (law@snake.cs.utah.edu)
* som.c (som_decode_symclass): Handle absolute symbols by checking
the SOM type (since they will rarely if ever be in the absolute
section).
Wed Aug 6 09:12:50 1995 Doug Evans <dje@canuck.cygnus.com>
* archures.c (bfd_mach_sparc, bfd_mach_sparc64): Define.
* bfd-in2.h: Regenerated.
* cpu-sparc.c (sparc_arch_info): Renamed from arch_info_struct.
(sparc64_arch_info): New static variable.
(bfd_sparc_arch): Link in sparc64_arch_info.
* elf64-sparc.c (sparc64_elf_xxx): Renamed from elf64_xxx.
(sparc64_elf_object_p): New static function.
(elf_backend_object_p): Define.
* config/sparc64-elf.mt (SELECT_VECS): Add bfd_elf32_sparc_vec.
Sat Aug 5 00:04:08 1995 Jeff Law (law@snake.cs.utah.edu)
* som.c (som_get_reloc_upper_bound): Return -1 on error. Compute
return value with sizeof (arelent *), not sizeof (arelent).
Wed Aug 2 12:32:21 1995 Ian Lance Taylor <ian@cygnus.com>
* elf.c (bfd_section_from_shdr): If the section pointed to by the
sh_link field of a reloc section is not a symbol table, and the
file contains a single symbol table, clobber the sh_link field of
the reloc section to point to the symbol table.
Tue Aug 1 10:09:01 1995 Doug Evans <dje@canuck.cygnus.com>
* coff-arm.c (howto reloc ARM26): Change size from 3 to 2.
(howto reloc ARM26D): Likewise.
Mon Jul 24 14:17:50 1995 Ian Lance Taylor <ian@cygnus.com>
* aoutx.h (NAME(aout,find_nearest_line)): Use the line just before
the offset, not the one just after. Break out of the loop after
finding a function past the offset, not merely when finding a
function with a line defined.
* ecofflink.c (_bfd_ecoff_locate_line): When handling stabs:
correct setting of sym_ptr_end to consider symbols skipped when
setting sym_ptr; don't leave loop early unless an N_FUN is found
with a larger value.
* coff-sh.c (sh_coff_howtos): Mark R_SH_PCDISP8BY2 and R_SH_PCDISP
as PC relative. Describe R_SH_IMM16. Add entries for
R_SH_SWITCH16, R_SH_SWITCH32, R_SH_USES, R_SH_COUNT, and
R_SH_ALIGN.
(SWAP_IN_RELOC_OFFSET): Define.
(SWAP_OUT_RELOC_OFFSET): Define.
(CALC_ADDEND): Define.
(sh_reloc): Change sym_value and addr to type bfd_vma. Skip reloc
types other than R_SH_IMM32 and R_SH_PCDISP on an external symbol.
(coff_bfd_relax_section): Define.
(coff_bfd_get_relocated_section_contents): Define.
(sh_relax_section): New static function.
(sh_relax_delete_bytes): New static function.
(sh_relocate_section): Handle R_SH_PCDISP on an external symbol.
(sh_coff_get_relocated_section_contents): New static function.
* cofflink.c (coff_link_add_object_symbols): Call
_bfd_coff_get_external_symbols, not coff_link_get_symbols. Call
_bfd_coff_free_symbols, not coff_link_free_symbols. Call
_bfd_coff_read_string_table, not coff_read_string_table.
(coff_link_check_archive_element): Likewise.
(coff_link_input_bfd): Likewise.
(coff_link_get_symbols): Move to coffgen.c.
(coff_read_string_table): Likewise.
(coff_link_free_symbols): Likewise.
(_bfd_coff_internal_syment_name): New static function.
(coff_link_check_ar_symbols): Use _bfd_coff_internal_syment_name.
(coff_link_add_symbols): Likewise.
(coff_link_input_bfd): Likewise.
(_bfd_coff_generic_relocate_section): Likewise.
(_bfd_coff_read_internal_relocs): New function.
(coff_link_input_bfd): Use cached section contents if available.
Use _bfd_coff_read_internal_relocs.
* coffcode.h (coff_slurp_symbol_table): Don't call bfd_seek.
(coff_bfd_get_relocated_section_contents): Only define if not
already defined.
(coff_bfd_relax_section): Likewise.
* coffgen.c (build_string_table): Remove.
(_bfd_coff_get_external_symbols): New function, moved in from old
coff_link_get_symbols in cofflink.c.
(_bfd_coff_read_string_table): New function, moved in from old
coff_read_string_table in cofflink.c.
(_bfd_coff_free_symbols): New function, moved in frmo old
coff_link_free_symbols in cofflink.c.
(coff_get_normalized_symtab): Use _bfd_coff_get_external_symbols
rather than reading the symbols directly. To free them, call
_bfd_coff_free_symbols. Use _bfd_coff_read_string_table rather
than build_string_table.
* libcoff-in.h (obj_coff_keep_syms): Define.
(obj_coff_keep_strings): Define.
(coff_data_type): Add fields keep_syms and keep_strings.
(coff_section_tdata): Define new structure.
(coff_section_data): Define.
(_bfd_coff_get_external_symbols): Declare.
(_bfd_coff_read_string_table): Declare.
(_bfd_coff_free_symbols): Declare.
(_bfd_coff_read_internal_relocs): Declare.
* libcoff.h: Rebuild.
Fri Jul 21 22:32:54 1995 Michael Meissner <meissner@cygnus.com>
* elf32-ppc.c (ppc_elf_howto_raw): Add support for R_PPC_SDAREL
relocation.
(ppc_elf_reloc_type_lookup): Ditto.
(ppc_elf_got16_inner): Ditto.
(ppc_elf_relocate_section): Ditto.
Thu Jul 20 19:19:06 1995 Jeff Law (law@snake.cs.utah.edu)
* elf32-hppa.c (hppa_elf_gen_reloc_type): Add new (ignored)
argument.
* elf32-hppa.h: Corresponding change.
Thu Jul 20 19:01:07 1995 Ken Raeburn <raeburn@cygnus.com>
* libaout.h (set_aout_section_data): New macro.
* sunos.c (sunos_scan_relocs): Use it.
* aout-ns32k.c (MY_swap_std_reloc_out): Undef KEEPIT before
defining it.
Thu Jul 20 13:48:00 1995 Fred Fish <fnf@cygnus.com>
* hosts/i386v4.h (getgid, getuid): Change prototypes to be
compatible with Unixware 1.x and Unixware 2.x, and probably other
i386 svr4 versions as well.
Thu Jul 20 13:41:21 1995 Ken Raeburn <raeburn@cygnus.com>
* targets.c (bfd_target_vector): Since armpe and armpei have been
split into big- and little-endian variants, list all of them,
instead of the now-nonexistant armpe[i]_vec.
Thu Jul 20 00:06:39 1995 Ian Lance Taylor <ian@cygnus.com>
* elf.c (bfd_section_from_phdr): Set lma based on p_paddr.
(elf_fake_sections): Set sh_addr based on lma, not vma.
Wed Jul 19 15:52:01 1995 Doug Evans <dje@canuck.cygnus.com>
* coff-arm.c (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Replaces TARGET_SYM.
* configure.in (armpe_vec, armpei_vec): Add bi-endian support.
* configure: "regenerated".
* pe-arm.c (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Replaces TARGET_SYM.
(TARGET_LITTLE_NAME, TARGET_BIG_NAME): Replaces TARGET_NAME.
* pei-arm.c (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Replaces TARGET_SYM.
(TARGET_LITTLE_NAME, TARGET_BIG_NAME): Replaces TARGET_NAME.
* targets.c (armpe_vec, armpei_vec): Deleted.
(armpe_little_vec, armpe_big_vec, armpei_little_vec, armpei_big_vec):
Added.
* config/arm-pe.mt (DEFAULT_VECTOR): Default is armpe_little_vec.
(SELECT_VECS): Add bi-endian support.
Wed Jul 19 10:47:25 1995 Ian Lance Taylor <ian@cygnus.com>
* coff-sh.c: Clean up and comment.
(r_imm32): Remove.
(sh_coff_howtos): New static array.
(SH_COFF_HOWTO_COUNT): Define.
(get_symbol_value): Make relocation bfd_vma rather than long.
(RTYPE2HOWTO): Rewrite to use sh_coff_howtos.
(coff_relocate_section): Define to sh_relocate_section.
(sh_relocate_section): New static function.
Sat Jul 15 01:02:53 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* configure.host: Add support for generic m68k SVR4 host.
Fri Jul 14 13:13:55 1995 Ian Lance Taylor <ian@cygnus.com>
* aoutx.h (KEEPIT): Change definition to udata.i.
(KEEPITTYPE): Remove.
(NAME(aout,reloc_type_lookup)): Add cases to the
extended reloc type switch: SPARC_GOT10, SPARC_GOT13, SPARC_GOT22,
SPARC_PC10, SPARC_PC22, SPARC_WPLT30.
(NAME(aout,swap_std_reloc_out)): Don't bother to use stoi when
retrieving KEEPIT value.
(NAME(aout,swap_ext_reloc_out)): Likewise. Also, only add in
output section VMA for section symbols, and check BSF_SECTION_SYM
to control whether to set r_extern to 1.
* syms.c: Fix comments so that `make info' works.
* elf32-mips.c (mips_elf_find_nearest_line): Set SEC_HAS_CONTENTS
in .mdebug section, in case backend linker has cleared it.
Fri Jul 14 11:58:34 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* elf32-ppc.c (ppc_elf_addr16_ha_inner): Rewrite to take just one
argument, the final relocated address.
(ppc_elf_addr16_ha_inner): Adjust ppc_elf_addr16_ha_inner caller.
(ppc_elf_relocate_section): Ditto.
Thu Jul 13 17:22:03 1995 Jeff Law (law@snake.cs.utah.edu)
* som.c (hppa_som_gen_reloc_type): Choose a reasonable field
selector relocation for the difference of two symbols.
Thu Jul 13 10:33:25 1995 Ian Lance Taylor <ian@cygnus.com>
* aoutx.h (NAME(aout,slurp_reloc_table)): Cast argument to size_t
for malloc.
* coff-mips.c (mips_relocate_section): Likewise, for memmove.
(mips_relax_section): Likewise, for malloc.
* cofflink.c (process_embedded_commands): Likewise.
(_bfd_coff_final_link): Likewise.
* ecoff.c (_bfd_ecoff_write_object_contents): Likewise.
(ecoff_final_link_debug_accumulate): Likewise.
(ecoff_indirect_link_order): Likewise, for memcpy and malloc.
(ecoff_reloc_link_order): Likewise, for malloc.
* ecofflink.c (ecoff_align_debug): Likewise, for memset.
(ecoff_write_symhdr): Likewise, for malloc.
* elf32-hppa.c (elf32_hppa_read_symext_info): Likewise.
* elf.c (assign_file_positions_except_relocs): Likewise, for
qsort.
* elf32-mips.c (mips_elf_read_ecoff_info): Likewise, for malloc.
* elfcode.h (elf_slurp_reloc_table): Likewise.
* elfcore.h (elf_corefile_note): Likewise.
* elflink.h (elf_link_add_object_symbols): Likewise.
(elf_link_read_relocs): Likewise.
(NAME(bfd_elf,size_dynamic_sections)): Likewise, for memset.
* i386linux.c (bfd_linux_size_dynamic_sections): Likewise.
* ieee.c (do_with_relocs): Likewise.
* linker.c (default_indirect_link_order): Likewise, for malloc.
* nlmcode.h (nlm_object_p): Likewise.
(nlm_write_object_contents): Likewise.
* oasys.c (oasys_set_section_contents): Likewise, for memcpy.
* reloc.c (bfd_generic_get_relocated_section_contents): Likewise,
for malloc.
* section.c (bfd_get_section_contents): Likewise, for memcpy.
* srec.c (srec_get_section_contents): Likewise.
(srec_set_section_contents): Likewise.
* sunos.c (bfd_sunos_size_dynamic_sections): Likewise, for
realloc and memset.
(sunos_scan_relocs): Likewise, for malloc.
(sunos_scan_dynamic_symbol): Likewise, for realloc.
* syms.c (_bfd_generic_read_minisymbols): Likewise, for malloc.
* versados.c (versados_get_section_contents): Likewise, for
memcpy.
* libbfd.c (real_read): Add prototype. Change argument types from
int to size_t.
(bfd_read): Cast real_read argument to size_t, not int.
(bfd_write): Cast fwrite argument to size_t, not int.
* elf64-gen.c (elf_info_to_howto): Fix definition for recent elf.c
changes.
* configure.in: Fix typo: change {$enableval} to ${enableval}.
* configure: Rebuild.
* Makefile.in (BFD32_BACKENDS): Add elflink.o.
* targets.c (bfd_target): Add fields _read_minisymbols and
_minisymbol_to_symbol.
(BFD_JUMP_TABLE_SYMBOLS): Add _read_minisymbols and
_minisymbol_to_symbol.
(bfd_read_minisymbols): Define.
(bfd_minisymbol_to_symbol): Define.
* syms.c (_bfd_generic_read_minisymbols): Define.
(_bfd_generic_minisymbol_to_symbol): Define.
* libbfd-in.h (_bfd_nosymbols_read_minisymbols): Define.
(_bfd_nosymbols_minisymbol_to_symbol): Define.
(_bfd_generic_read_minisymbols): Declare.
(_bfd_generic_minisymbol_to_symbol): Declare.
* bfd-in2.h: Rebuild.
* libbfd.h: Rebuild.
* aoutx.h (MINISYM_THRESHOLD): Define.
(NAME(aout,read_minisymbols)): New function.
(NAME(aout,minisymbol_to_symbol)): New function.
* libaout.h (NAME(aout,read_minisymbols)): Declare.
(NAME(aout,minisymbol_to_symbol)): Declare.
* aout-target.h (MY_read_minisymbols): Define.
(MY_minisymbol_to_symbol): Define.
* All targets: Define read_minisymbols and minisymbol_to_symbol.
Wed Jul 12 17:55:55 1995 Ken Raeburn <raeburn@cygnus.com>
* elflink.h (elf_link_add_object_symbols): Cast return value from
bfd_alloc.
* elfcode.h (size_info): Don't use "&" before function names.
Wed Jul 12 00:16:48 1995 Ken Raeburn <raeburn@kr-pc.cygnus.com>
* libelf.h (elf_backend_data): Use unsigned, not unsigned char,
for bitfields.
Tue Jul 11 15:19:53 1995 Ian Lance Taylor <ian@cygnus.com>
* elf.c (bfd_section_from_shdr): In case SHT_REL[A], only get the
BFD section for the sh_link section if it is a SYMTAB section.
* aoutx.h (NAME(aout,link_add_symbols)): Don't bother to check
that archives hold a.out objects.
* cf-i386lynx.c (coff_bfd_link_add_symbols): Don't define.
(lynx_link_add_symbols): Remove.
* cf-m68klynx.c (coff_bfd_link_add_symbols): Don't define.
(lynx_link_add_symbols): Remove.
* elflink.h (elf_bfd_link_add_symbols): Don't bother to check that
archives hold ELF objects.
* archive.c (bfd_generic_archive_p): If the archive has a map, and
the target was defaulted, but the first object in the archive can
not be matched with that target, then return a bad format error.
* elf64-sparc.c (elf_sparc_howto_table): Set howto for WDISP16 to
elf64_wdisp16_reloc.
(elf64_wdisp16_reloc): New static function.
(elf64_sparc_relocate_section): New static function.
(elf_backend_relocate_section): Define.
* libelf.h (struct elf_size_info): Change type of last argument to
swap_symbol_out from char * to PTR.
(bfd_elf32_swap_symbol_out): Update declaration.
(bfd_elf64_swap_symbol_out): Likewise.
* elfcode.h (elf_swap_symbol_out): Change type of cdst from char *
to PTR.
* elf.c (swap_out_syms): Cast to PTR, not char *, when calling
swap_symbol_out routine.
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Likewise.
(elf_link_output_sym): Likewise.
(elf_link_output_extsym): Likewise.
* elf32-sparc.c (elf32_sparc_finish_dynamic_sections): Likewise.
Tue Jul 11 12:29:49 1995 Rick Sladkey <jrs@world.std.com>
* elf.c (_bfd_elf_find_nearest_line): Handle the simple case where
there is no debugging information.
Mon Jul 10 11:45:55 1995 Ken Raeburn <raeburn@cygnus.com>
* makefile.dos (OBJS): Add binary.o and tekhex.o. From DJ
Delorie.
Mon Jul 10 11:09:58 1995 Ian Lance Taylor <ian@cygnus.com>
* linker.c (set_symbol_from_hash): bfd_link_hash_new case: Don't
abort; it can happen for constructor symbols when not building
constructors.
* coff-i960.c (coff_i960_relocate): Correct typo: use ! on strcmp,
not on string.
* cofflink.c (_bfd_coff_generic_relocate_section): Remove unused
local i.
* coff-arm.c (coff_arm_rtype_to_howto): Don't declare.
(PCRELOFFSET): Define if not already defined.
* Makefile.in: Rebuild dependencies.
(BFD32_BACKENDS): Add coff-arm.o
(CFILES): Add coff-arm.c, pe-arm.c, pei-arm.c.
* aoutx.h (NAME(aout,link_hash_table_create)): Allocate hash table
using bfd_alloc, not malloc.
* cofflink.c (_bfd_coff_link_hash_table_create): Likewise.
* ecoff.c (_bfd_ecoff_bfd_link_hash_table_create): Likewise.
* i386linux.c (linux_link_hash_table_create): Likewise.
* linker.c (_bfd_generic_link_hash_table_create): Likewise.
* sunos.c (sunos_link_hash_table_create): Likewise.
Based on patches from Eric Youngdale <eric@aib.com>:
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): If -Bsymbolic,
output a DT_SYMBOLIC dynamic entry.
(elf_adjust_dynamic_symbol): If -Bsymbolic, don't require a PLT
entry for a locally defined symbol.
* elf32-i386.c (elf_i386_relocate_section): If -Bsymbolic, do warn
about undefined symbols, and fill in the GOT entry for a symbol
defined in a regular object file.
(elf_i386_finish_dynamic_symbol): If -Bsymbolic, output a RELATIVE
reloc rather than a GLOB_DAT reloc for a symbol defined in a
regular object file.
* elf32-m68k.c (elf_m68k_relocate_section): If -Bsymbolic, do warn
about undefined symbols, and fill in the GOT entry for a symbol
defined in a regular object file.
(elf_m68k_finish_dynamic_symbol): If -Bsymbolic, output a RELATIVE
reloc rather than a GLOB_DAT reloc for a symbol defined in a
regular object file.
* elf32-sparc.c (elf32_sparc_relocate_section): If -Bsymbolic, do
warn about undefined symbols, and fill in the GOT entry for a
symbol defined in a regular object file.
(elf32_sparc_finish_dynamic_symbol): If -Bsymbolic, output a
RELATIVE reloc rather than a GLOB_DAT reloc for a symbol defined
in a regular object file.
* config/m68k-coff.mt (SELECT_VECS): Rename from SELECT_VECTORS.
Correct elements to be actual BFD vector names.
* Makefile.in (Makefile): Don't depend upon @frags@.
(config.status): Depend upon @frags@.
Fri Jul 7 17:36:44 1995 Ian Lance Taylor <ian@cygnus.com>
* coffgen.c (coff_renumber_symbols): Sort defined symbols that are
neither BSF_FUNCTION not BSF_NOT_AT_END just before undefined
symbols.
* coffcode.h (coff_slurp_symbol_table): Set BSF_FUNCTION as well
as BSF_NOT_AT_END.
Fri Jul 7 17:16:15 1995 Ken Raeburn <raeburn@cygnus.com>
* Makefile.in (do_mostlyclean): Remove config.log.
(do_distclean): Remove config.cache.
Thu Jul 6 14:37:43 1995 Ian Lance Taylor <ian@cygnus.com>
* elf32-i386.c (elf_i386_relocate_section): Revert May 24 patch.
Don't copy PC32 reloc against section into shared object.
* Makefile.in: Rebuild dependencies.
(CFILES): Added elflink.c.
(Makefile): Depend upon config.status, not configure.in.
(config.status): New target; depend upon configure configure.host
and config.bfd.
Wed Jul 5 20:17:14 1995 Ken Raeburn <raeburn@cygnus.com>
* elfcore.h, elflink.h, elfcode.h, elf.c, elflink.c: Moved some
primarily size-independent code from elfcode.h to elf.c and new
file elflink.c; moved out other core- or linker-related routines
into other new .h files for clarity. Renamed many routines to
start with bfd_elf or _bfd_elf. Added a structure of
size-dependent but target-independent info to elfcode.h.
* Makefile.in: Build elflink.o. Update dependencies.
* libelf.h: Updated some declarations. Added a definition for the
new structure in elfcode.h. Added more fields to elf backend data
structure.
* elfxx-target.h: Refer to the appropriate size-dependent info.
* elf32-*.c: Changed some function names. Moved common
create_dynamic_sections code from m68k, sparc, and i386 support
into elflink.c. Define some new macros to fill in new fields of
back end data. Also clean up some "gcc -Wall" warnings regarding
unused or uninitialized variables.
* Makefile.in (BFD_LIBS): No, don't put elflink.o here.
* configure.in: Include it here whenever elf.o is specified.
Wed Jul 5 10:31:47 1995 Ian Lance Taylor <ian@cygnus.com>
* elf32-mips.c (mips_elf_object_p): Unconditionally set
elf_bad_symtab, since sometimes the symbol table is messed up and
the last symbol is global.
* ecoff.c (_bfd_ecoff_bfd_is_local_label): New function.
* 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.
* configure.in: Use $ac_config_sub, not $configsub.
* configure: Likewise.
Permit --enable-targets=ieee:
* config.bfd (*-*-ieee*): New target.
* config/ieee.mt: New file.
Wed Jul 5 04:16:35 1995 Ken Raeburn <raeburn@kr-pc.cygnus.com>
* config/i386aix.mh (HDEFINES): Remove -DFASCIST_FDOPEN.
Autoconfiscation:
* configure.in, Makefile.in, doc/Makefile.in: Switch from Cygnus
configure to autoconf ways of processing --enable arguments,
setting up symlinks, incorporating makefile fragments, printing
messages at configuration time, setting variables in Makefile.
Deleted some unused variables. Check for ranlib via autoconf.
For now, configure script removes doc/config.status.
* configure: New file.
* dep-in.sed: Use @SRCDIR@ instead of @srcdir@, so Makefile.in
line doesn't get broken by configure.
* doc/configure.in: Removed.
Tue Jul 4 12:22:21 1995 Ian Lance Taylor <ian@cygnus.com>
* archive.c (_bfd_construct_extended_name_table): If
BFD_TRADITIONAL_FORMAT is set, limit the length of all file names
to ar_max_namelen.
(bfd_dont_truncate_arname): If BFD_TRADITIONAL_FORMAT is set, call
bfd_bsd_truncate_arname.
(_bfd_write_archive_contents): Revert June 1 change.
* elfcode.h (NAME(bfd_elf,record_link_assignment)): Add provide
argument.
* bfd-in.h (bfd_elf32_record_link_assignment): Update prototype.
(bfd_elf64_record_link_assignment): Likewise.
* bfd-in2.h: Rebuild.
* libelf.h (struct elf_link_hash_table): Add needed field. Remove
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.
* ecoff.c (_bfd_ecoff_find_nearest_line): Also initialize
find_buffer and fdrtab_len fields of newly allocated
find_line_info structure.
Mon Jul 3 17:03:52 1995 Jeff Law (law@snake.cs.utah.edu)
* som.c (hppa_som_gen_reloc_type): New argument "sym_diff",
nonzero when we're generating relocations for an expression
using the difference of two symbols. All callers changed.
Handle difference of symbols for both R_HPPA and R_COMPLEX
cases.
(som_write_fixups): Handle R_COMP1, R_COMP2 and R_CODE_EXPR
fixups.
Mon Jul 3 13:55:18 1995 Steve Chamberlain <sac@slash.cygnus.com>
* config.bfd (win32): New configuration.
* configure.host (pe): Changed to i386win32.
* config/i386pe.mh: Deleted.
* config/i386win32.mh: New file.
Mon Jul 3 11:30:45 1995 Ian Lance Taylor <ian@cygnus.com>
* ecoff.c (_bfd_ecoff_find_nearest_line): If we allocate
find_line_info, clear the fdrtab field.
* targets.c (enum bfd_flavour): Add bfd_target_msdos_flavour here,
rather than in bfd-in2.h.
* bfd.c (enum bfd_error): Define bfd_error_no_armap.
(bfd_errmsgs): Add string for bfd_error_no_armap.
* bfd-in2.h: Rebuild.
* ecoff.c (ecoff_link_add_archive_symbols): If an archive has no
armap, set bfd_error_no_armap rather than bfd_error_no_symbols.
* elfcode.h (elf_link_add_archive_symbols): Likewise.
* linker.c (_bfd_generic_link_add_archive_symbols): Likewise.
* elfcode.h (elf_link_add_object_symbols): Permit common and
indirect symbols in weakdefs BFD_ASSERT.
* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Simplify
BFD_ASSERT to permit some legal, but odd, cases.
* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise.
* Makefile.in: Rebuild dependencies.
(BFD32_BACKENDS): Add versados.o.
(CFILES): Add pe-i386.c, pei-i386.c, and versados.c.
Sun Jul 2 17:49:32 1995 Ian Lance Taylor <ian@cygnus.com>
* cofflink.c (_bfd_coff_generic_relocate_section): Cast base_file
to FILE * before using it.
* stab-syms.c: Revert yesterday's patch.
Sat Jul 1 12:10:42 1995 Fred Fish <fnf@cygnus.com>
* stab-syms.c (stdio.h): Include prior to libaout.h, which
includes bfdlink.h, which now uses FILE.
Sat Jul 1 00:11:08 1995 Ken Raeburn <raeburn@cygnus.com>
* elfxx-target.h: New file.
* libelf.h (struct elf_backend_data): Remove elf_64_p field.
* elfxx-target.h (elfNN_bed): Don't set it.
* elf32-target.h, elf64-target.h: Deleted.
* Makefile.in (elf32-target.h, elf64-target.h): Build them from
elfxx-target.h.
Fri Jun 30 16:07:18 1995 Steve Chamberlain <sac@slash.cygnus.com>
* cofflink.c (_bfd_coff_generic_relocate_section): Compare
the full text of .reloc or .edata section names.
Fri Jun 30 15:47:37 1995 Fred Fish <fnf@cygnus.com>
* cofflink.c (_bfd_coff_generic_relocate_section):
Remove extra '+'.
Thu Jun 29 17:24:52 1995 Steve Chamberlain <sac@slash.cygnus.com>
* coff-h8300.c (COFF_LONG_FILENAMES): Define.
Wed Jun 28 18:04:42 1995 Steve Chamberlain <sac@slash.cygnus.com>
* Makefile.in: versados.o is now conditionally built.
* coffcode.h (add_data_entry): New function.
(coff_write_object_contents): Clean up. Calculate
data entries.
* cofflink.c (_bfd_coff_generic_relocate_section):
.reloc and .edata sections are IMAGE_BASED too.
If there's a base_file then write out base information.
* configure.host (i386-*-pe): New.
* syms.c (coff_section_type): Only scan prefixes.
* targets.c (bfd_target_vector): Versados is now conditionally
built.
* config/m68k-coff.mt: Build versados.o
* hosts/i386pe.h: New file.
Mon Jun 26 13:53:49 1995 Jeff Law (law@snake.cs.utah.edu)
* elf32-hpa.c (elf32_hppa_relocate_section): Close comment before
R_PARISC_DPREL21L handling.
Thu Jun 22 19:28:36 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
Sun May 7 11:53:41 MDT 1995 Bryan Ford <baford@cs.utah.edu>
* config/i386-moss.mt: created.
Thu Jun 22 08:56:10 1995 Steve Chamberlain <sac@slash.cygnus.com>
* reloc.c (bfd_perform_relocation): Add case for -ve words.
Wed Jun 21 13:13:49 1995 Jeff Law (law@snake.cs.utah.edu)
* elf32-hppa.c (elf32_hppa_relocate_section): Don't try to apply a
relocation against an undefined symbols.
Wed Jun 21 10:16:10 1995 Steve Chamberlain <sac@slash.cygnus.com>
* versados.c: Second pass/rewrite.
Mon Jun 19 08:40:45 1995 Steve Chamberlain <sac@slash.cygnus.com>
* syms.c (coff_section_type): Compare only the front part
of a section name.
Sat Jun 17 09:40:44 1995 Jeff Law (law@snake.cs.utah.edu)
* elf32-hppa.c (elf32_hppa_size_stubs): Set the size of the stub
section if we get an error.
* elf32-hppa.c (elf32_hppa_bfd_final_link_relocate): Don't mess
with the operands of an R_PARISC_DPREL21L relocation if the insn
is not "addil <symbol>,%r27".
Fri Jun 16 15:04:47 1995 Stan Shebs <shebs@andros.cygnus.com>
* bfd-in.h (NT_subsystem, NT_stack_heap): Declare but don't
define.
* bfd-in2.h: Rebuilt.
* bfd.c (NT_subsystem, NT_stack_heap): Define.
Fri Jun 16 00:07:25 1995 Jeff Law (law@snake.cs.utah.edu)
* elf32-hppa.c (elf32_hppa_bfd_link_link_relocate): Use the right
type field (there are two!) when checking to see if $global$ is
defined.
Thu Jun 15 14:03:47 1995 Stan Shebs <shebs@andros.cygnus.com>
* bfd-in.h, bfd-in2.h (bfd_boolean): Rename bfd_true, bfd_false
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.
Wed Jun 14 15:27:32 1995 Steve Chamberlain <sac@slash.cygnus.com>
* cofflink.c (process_embedded_commands): New function
reads and handles .drectve sections for PE.
(coff_link_input_bfd): Call new function if PE.
Mon Jun 12 12:09:39 1995 Jeff Law (law@snake.cs.utah.edu)
* bfd-in.h (bfd_set_section_vma): Case true to a boolean.
(bfd_set_cacheable): Likewise.
* bfd-in2.h: Rebuilt.
Fri Jun 9 12:20:28 1995 Steve Chamberlain <sac@rtl.cygnus.com>
* elfcode.h (elf_sort_hdrs): Rewrite to be symmetrical.
Fri Jun 9 12:49:00 1995 Jeff Law (law@snake.cs.utah.edu)
* targets.c: Add copy_private_symbol_data and link_split_section
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.
Fri Jun 9 07:54:29 1995 Steve Chamberlain <sac@slash.cygnus.com>
* versados.c (struct esd, get_4): Lint; use unsigned chars.
* coff-i960.c (coff_i960_relocate): Compare output section names
when converting for vxworks.
Wed Jun 7 19:01:30 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
* elfcode.h (elf_fake_sections): Permit .scommon or COMMON
sections as random SHT_NOBITS sections, in case a linker script is
strange.
Tue Jun 6 17:29:32 1995 Steve Chamberlain <sac@slash.cygnus.com>
* bfd-in.h (NT_subsystem, NT_stack_heap): Moved from pe.h
* coff-i386.c (coff_i386_rtype_to_howto): Get PE relocs right.
* coffcode.h (coff_mkobject): Set pe tdata bit when using PE.
* cofflink.c (COFF_WITH_PE code): Test on obj_pe bit rather
than conditional compile.
* configure.in: Fix PE dependencies.
* libcoff-in.h (obj_pe): New.
(coff_tdata): Added pe entry.
* libcoff.h: Regenerated.
Mon Jun 5 09:07:13 1995 Steve Chamberlain <sac@slash.cygnus.com>
* coff-a29k.c (coff_a29k_adjust_symndx): Completely parenthesize
macro.
Mon Jun 5 02:15:20 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com>
Linker support for m68k-elf from Andreas Schwab
<schwab@issan.informatik.uni-dortmund.de>:
* elfcode.h (elf_link_add_object_symbols): Check for NULL when
looping through the symbol hashes.
(elf_bfd_final_link): When looking for _init and _fini don't use
the symbol if it is imported from another object.
* elf32-m68k.c: Relocation type changed from REL to RELA. Regular
and dynamic linking support functions added, similar to other elf
targets.
* config.bfd (i[345]86-*-gnu*): Use ELF configuration.
Fri Jun 2 18:54:59 1995 Steve Chamberlain <sac@slash.cygnus.com>
* versados.c: New file.
* bfd-in2.h (struct _bfd): New field.
* bfd.c (struct _bfd): New field.
* configure.in (versados_vec): New field.
* targets.c (bfd_flavor): Added versados.
Thu Jun 1 13:51:49 1995 Steve Chamberlain <sac@slash.cygnus.com>
* coffcode.h (sec_to_styp_flags, styp_to_sec_flags,
coff_new_section_hook): Any section that starts ".stab"
is now marked as debugging.
Thu Jun 1 16:15:16 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
* archive.c (_bfd_write_archive_contents): Disable extended name
table until it can be made optional, so that native AR has half a
chance on SunOS and HP/UX.
* linker.c (_bfd_generic_link_output_symbols, case
bfd_link_hash_indirect): Add cast to correct pointer types.
Sat May 27 21:37:31 1995 J.T. Conklin <jtc@rtl.cygnus.com>
* config.bfd (m68k-bull-sysv*): Added strip_underscore=yes.
(m68k-est-coff): Removed. target does not effect object format.
Wed May 24 10:52:01 1995 Steve Chamberlain <sac@slash.cygnus.com>
* linker.c (_bfd_generic_link_output_symbols): Cope with
indirect symbols.
* elf32-i386.c (elf_i386_relocate_section): Give error
message when linking to a shared reloc which isn't there.
Wed May 24 10:40:00 1995 Steve Chamberlain <sac@slash.cygnus.com>
Support for ARM-PE.
* Makefile.in, coffcode.h, config.bfd, configure.in, pe-arm.c,
pei-arm.c, coff-arm.c, reloc.c, targets.c, config/arm-pe.mt:
Support for ARM COFF/PE.
Tue May 23 19:24:58 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
* bfd.c (bfd_get_relocated_section_contents): Now a function,
tries calling routine from input bfd target vector for
bfd_indirect_link_order. Put a declaration into the header file.
* bfd-in2.h: Regenerated.
* elf32-mips.c (gprel16_with_gp): New function, split out from
mips_elf_gprel16_reloc.
(mips_elf_gprel16_reloc): Call it. If output bfd target vector
isn't elf flavoured, abort, since it's assumed to be elf in some
of this code, including the code that looks up the gp value.
(elf32_mips_get_relocated_section_contents): New function,
modified from bfd_generic_get_relocated_section_contents to deal
with passing gp to gprel16_with_gp.
(bfd_elf32_bfd_get_relocated_section_contents): New macro.
* elf32-target.h (bfd_elf32_bfd_get_relocated_section_contents):
Don't define if already defined.
Tue May 23 15:58:15 1995 Jeff Law (law@snake.cs.utah.edu)
* Makefile.in: Install bfdlink.h too.
Sun May 21 22:25:09 1995 Jeff Law (law@snake.cs.utah.edu)
* elf32-hppa.c (elf32_hppa_relocate_section): Handle undefined and
notsupported return codes from final_link_relocate (used when
$global$ is undefined or nonexistant).
(elf32_hppa_bfd_link_link_relocate): If $global$ exists, but is
not defined,then return bfd_reloc_undefined.
Fri May 19 10:00:14 1995 Steve Chamberlain <sac@rtl.cygnus.com>
* coffswap.h: (IMAGE_BASE): Define to 0 if not.
Thu May 18 04:24:01 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com>
Wed May 10 14:28:16 1995 Richard Earnshaw (rearnsha@armltd.co.uk)
* aoutx.h (aout_link_input_section_standard): If defined, call
MY_relocatable_reloc before doing a partial relocation.
* aout-arm.c: (WRITE_HEADERS): Delete.
(NAME): Define version to override default in aoutx.h
(MY(howto_table)): Reformat. Alter some entries slightly.
(RELOC_ARM_BITS_NEG_{BIG,LITTLE}): Define.
(MY(reloc_howto), MY(put_reloc), MY(relocatable_reloc)): New functions.
(MY_reloc_howto, MY_put_reloc, MY_relocatable_reloc): Define.
(MY(fix_pcrel_26)): Renamed from aoutarm_fix_pcrel_26, return
bfd_reloc_ok not bfd_reloc_continue.
(MY(fix_pcrel_26_done)): Likewise.
(MY(bfd_reloc_type_lookup)): Renamed from aoutarm_reloc_type_lookup.
(MY_bfd_link_hash_table_create, MY_bfd_link_add_symbols,
MY_bfd_final_link): Delete.
(MY_swap_std_reloc_in, MY_swap_std_reloc_out, MY_get_section_contents):
Define.
(aoutx.h): Include it.
(MY(swap_std_reloc_{in,out})): New functions.
Use RELOC_ARM_BITS_NEG_{BIG,LITTLE} to extract negative reloc bit.
(aoutarm_squirt_out_relocs): Delete.
From: David Taylor (dtaylor@armltd.co.uk)
* config/arm[lb]-aout.mt: New files.
* aout-arm.c: New file.
* config.bfd: Handle arm{,e[lb]}-*-aout
* configure.in: Add vetor for aout_arm_{big,little}_vec.
* reloc.c: New relocation types for the ARM.
* targets.c (aout_arm_{big,little}_vec): declare.
Tue May 16 10:29:51 1995 Jim Kingdon <kingdon@deneb.cygnus.com>
* libbfd.c (bfd_stat): If bfd_cache_lookup returns an error,
return an error to the caller. Call bfd_set_error on errors.
Tue May 16 14:44:45 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
* libcoff-in.h (coff_renumber_symbols): Modified prototypes in
accordance with 11 May libcoff.h change.
Thu May 11 16:43:14 1995 Steve Chamberlain <sac@slash.cygnus.com>
tekhex.c (first_phase): Understand type 0 symbols.
(tekhex_write_object_contents): Fix typo in final record.
Thu May 11 16:43:14 1995 Steve Chamberlain <sac@slash.cygnus.com>
* coff-i960.c (optcall_callback): don't try and optimize
undefined refs.
(coff_write_relocs): Search for broken relocs on the way
out and fix them up.
(coff_renumber_symbols): Calculate and return index of
first undefined symbol.
(coff_write_object_contents): Call coff_renumber_symbols
and coff_write_relocs with the new args.
* libcoff.h: (coff_renumber_symbols, coff_renumber_symbols):
Modified prototypes.
Thu May 11 16:43:14 1995 Steve Chamberlain <sac@slash.cygnus.com>
Tom Griest <griest@cs.yale.edu>
Initial support for PE format.
* Makefile.in, targets.c, configure.in, config.bfd:
Add support for i386-*-winnt and i386-*-pe.
* archive.c (do_slurp_coff_armap): Understand NTPE format
archives.
(_bfd_slurp_extended_name_table): Turn \ in a filename
into /.
* bfd-in.h (bfd_link_subsystem, _bfd_link_stack_heap): New.
* coff-i386.c (howto_table): Conditionalize PCRELOFFSET.
* coffcode.h (IMAGE_BASE): New.
(coff_compute_section_file_positions): Throw away .junk
sections for PE, align symbols.
(coff_write_object_contents): Throw away .junk sections
for PE. Remember info on .idata and .rsrc sections.
Fill in the PE header.
(coff_slurp_symbol_table): PE uses C_SECTION class.
* cofflink.c (_bfd_coff_final_link): Keep PE info up to date.
(_bfd_coff_generic_relocate_section): Cope with PE relocs.
* coffswap.h (coff_swap_{aout/file/scn/sym}hdr_{in/out}):
New code for PE headers.
Tue May 9 17:01:38 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* config.bfd: Add little endian PowerPC support.
* configure.in: Ditto.
* targets.c: Ditto.
* config/ppcle-elf.mt: New file, for little endian PowerPC
support.
* config/ppc-elf.mt: Add little endian powerpc to the BFD
selection vectors.
* elf32-ppc.c (ppc_elf_merge_private_bfd_data): Complain if
linking a different endian object than we expect.
(TARGET_LITTLE_SYM, TARGET_LITTLE_NAME): Define, to provide little
endian support.
Tue May 2 16:32:24 1995 Jeff Law (law@snake.cs.utah.edu)
* config.bfd (hppa*-*-lites*): Treat just like hppa*-*-*elf*.
Tue Apr 25 19:38:43 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
* coffgen.c (make_a_section_from_file): Initialize lma same as
vma.
Tue Apr 25 11:03:21 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* hosts/std-host.h: #include ansidecl.h 'cause PTR is used in
std-host.h.
Mon Apr 24 23:56:44 1995 Ken Raeburn (raeburn@kr-pc.cygnus.com)
* hosts/i386linux.h (HAVE_PROCFS): Don't define it. Added lengthy
comment explaining why.
Mon Apr 24 10:34:02 1995 Michael Meissner <meissner@cygnus.com>
* hosts/i386linux.h (HAVE_PROCFS): If NO_PROCFS is defined, don't
define HAVE_PROCFS.
Mon Apr 24 08:33:12 1995 Michael Meissner <meissner@cygnus.com>
* elf32-ppc.c (ppc_elf_relocate_section): Do not continue
processing unknown symbols to prevent a cascade of errors.
Fri Apr 21 12:48:48 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
Patches from H.J. Lu for Linux ELF core file support.
* elfcode.h (elf_core_file_matches_executable_p) [HAVE_PROCFS]:
Use prpsinfo_t instead of struct prpsinfo, for consistency.
* hosts/i386linux.h (HAVE_PROCFS): Define.
Thu Apr 20 09:07:39 1995 Steve Chamberlain <sac@slash.cygnus.com>
* linker.c (link_action): Do the right thing when a undefined
strong symbol appears after an undefined weak symbol.
Fri Apr 14 16:51:17 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* elf32-ppc.c (ppc_elf_relocate_section): New function to relocate
a whole section for the linker, bypassing bfd_perform_relocation.
(ppc_elf_reloc_type_lookup): New function to map the BFD
enumeration code into a howto structure.
(ppc_elf_howto_raw): Rename from ppc_elf_howto_table.
(ppc_elf_howto_table): New array that maps PowerPC relocation
numbers to howto structures without a linear search. Change from
using bfd_elf_generic_reloc to use ppc_elf_std_reloc.
(ppc_elf_howto_init): Initialize ppc_elf_howto_table from
ppc_elf_howto_raw.
(ppc_elf_reloc_type_lookup): Use a case statement instead of a
loop.
(ppc_elf_std_reloc): Replacement for bfd_elf_generic_reloc.
(ppc_elf_unsupported_reloc): Print a real error message, instead
of calling abort.
(ppc_elf_addr16_ha_inner): Abstract getting adjustment from
ppc_elf_addr16_ha_reloc, so ppc_elf_relocate_section can use it
too.
(ppc_elf_addr16_ha_reloc): Call it.
(ppc_elf_got16_inner): Abstract getting adjustment from
ppc_elf_got16_reloc, so ppc_elf_relocate_section can use it too.
(ppc_elf_got16_reloc): Call it.
(ppc_elf_info_to_howto): Rename from powerpc_info_to_howto.
* elfcode.h (elf_symbol_from_bfd_symbol): Omit space in debugging
output.
(elf_symbol_flags): Add debug function to decode flags so that
defining DEBUG to be 4 will compile again.
(elf_debug_section): Fix typo in debug output.
Fri Apr 14 16:03:04 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
* config.bfd: Add m68*-*-elf*.
* elf32-m68k.c: Filled out implementation, except for dynamic
linking support.
* reloc.c (enum bfd_reloc_code_real): Added *_GOT_PCREL, *_GOTOFF,
*_PLT_PCREL, *_PLTOFF, *_68K_* relocations for ELF.
* libbfd.h, bfd-in2.h: Regenerated.
Thu Apr 13 14:28:04 1995 Torbjorn Granlund <tege@adder.cygnus.com>
* coff-m68k.c (COFF_DEFAULT_SECTION_ALIGNMENT_POWER): Change from
1 to 2.
(bfd_target): Change minimum section alignment from 1 to 2.
Wed Apr 12 12:40:04 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
* aoutx.h (machine_type, case bfd_arch_mips): Treat R8000 like
R6000 and R4000 for now.
Tue Apr 4 12:28:25 1995 Stan Shebs <shebs@andros.cygnus.com>
* mpw-config.in: New file, MPW version of configure.in.
* mpw-make.in: New file, MPW version of Makefile.in.
* hosts/mpw.h: New file, MPW host definitions.
* ecoffswap.h (ecoff_swap_pdr_in, ecoff_swap_pdr_in) [MPW_C]:
Alternate versions without ECOFF_64 that chokes MPW C.
* coffswap.h (coff_swap_scnhdr_out): Add alternative version with
partly-expanded macros.
Thu Mar 30 14:56:21 1995 Ian Lance Taylor <ian@cygnus.com>
* reloc.c (bfd_perform_relocation): Don't bother to check for
overflow if the symbol is undefined.
Thu Mar 30 14:32:26 1995 H.J. Lu (hjl@nynexst.com)
* config.bfd: Change linux to default to elf. Using
i[345]86-*-linuxaout will build a library which defaults to a.out.
* config/i386-laout.mt: Rename from old config/i386-linux.mt.
* config/i386-linux.mt: Rename from old config/i386-lelf.mt.
Comment out EXTRALIBS.
* config/i386-lelf.mt: Remove.
Wed Mar 29 12:01:30 1995 Ian Lance Taylor <ian@cygnus.com>
* coff-i960.c (coff_i960_relocate): Cache the section symbol in
the used_by_bfd field of the section, to avoid looping for each
reloc.
* cpu-h8500.c (arch_info_struct): Change name from "H8/300" to
"h8300" for consistency with other cpu-* files.
Tue Mar 28 15:14:11 1995 Ian Lance Taylor <ian@cygnus.com>
* bout.c (b_out_canonicalize_reloc): Handle SEC_CONSTRUCTOR
sections.
(b_out_get_reloc_upper_bound): Likewise.
* linker.c (generic_link_add_symbol_list): Skip constructor
symbols which the main linker code did not do anything with.
(_bfd_generic_link_output_symbols): Use udata.p if it is set,
rather than looking the symbol up in the hash table. Just pass
through constructor symbols for which udata.p is not set. If the
linker defined the symbol, clear the constructor flag.
Tue Mar 21 10:50:32 1995 Jeff Law (law@snake.cs.utah.edu)
* som.c (som_set_reloc_info): Sign extend constants from
R_DATA_OVERRIDE fixups.
* libhppa.h (sign_extend): Renamed from sign_ext. Fix.
(low_sign_extend): Likewise.
Mon Mar 20 22:39:10 1995 Jeff Law (law@snake.cs.utah.edu)
* som.c (som_slurp_symbol_table): Tighten test to determine
what symbols are section symbols.
Sat Mar 18 01:54:45 1995 Ian Lance Taylor <ian@cygnus.com>
* elfcode.h (elf_bfd_link_add_symbols): An empty archive is OK.
Fri Mar 17 16:29:02 1995 Jeff Law (law@snake.cs.utah.edu)
* som.c (som_bfd_copy_private_section_data): Just return true when
either the input or output section isn't attached to a SOM BFD.
(som_bfd_copy_private_bfd_data): Similarly for BFD private data.
Fri Mar 17 11:50:34 1995 Ian Lance Taylor <ian@cygnus.com>
* elfcode.h (elf_link_add_object_symbols): Check whether a dynamic
object has already been included, and ignore it the second time.
Wed Mar 15 11:56:40 1995 Ian Lance Taylor <ian@cygnus.com>
* elf32-sparc.c (elf_sparc_howto_table): Change R_SPARC_GOT13 from
complain_overflow_bitfield to complain_overflow_signed.
* libelf.h (bfd_elf32__write_relocs): Don't declare.
(bfd_elf64__write_relocs): Don't declare.
Tue Mar 14 05:54:33 1995 Ken Raeburn (raeburn@kr-pc.cygnus.com)
* stab-syms.c (aout_stab_name): Moved aout_stab_names to be local
to this function. Recoded function to stop using table, to
improve performance (on i486-netbsd host). Left old version
intact under "#if 0" for further performance testing.
Mon Mar 13 13:48:49 1995 Ian Lance Taylor <ian@cygnus.com>
* elfcode.h (write_relocs): Make static. Use PTR argument as a
pointer to a boolean variable set to true if something fails.
Cast to PTR rather than void *.
(sym_is_global): Rewrite for clarity.
(map_program_segments): If the program header size is too small,
call _bfd_error_handler and return failure rather than aborting.
(NAME(bfd_elf,write_object_contents)): Pass boolean variable when
calling write_relocs.
(elf_symbol_from_bfd_symbol): Use BFD_ASSERT rather than abort.
(struct elf_info_failed): Define.
(NAME(bfd_elf,size_dynamic_sections)): Declare variables in inner
blocks. Pass elf_info_failed structure when calling
elf_export_symbol and elf_adjust_dynamic_symbol.
(elf_export_symbol): Treat data argument as elf_info_failed rather
than bfd_link_info. Set failed field on error.
(elf_adjust_dynamic_symbol): Likewise.
(struct elf_finfo_failed): Define.
(elf_bfd_final_link): Pass elf_finfo_failed structure when calling
elf_link_output_extsym. Use BFD_ASSERT rather than abort.
(elf_link_output_extsym): Treat data argument as elf_finfo_failed
rather than elf_final_link_info. Set failed field on error.
(elf_link_input_bfd): Use BFD_ASSERT rather than abort.
(elf_reloc_link_order): Likewise.
* elf32-sparc.c (elf32_sparc_size_dynamic_sections): Only write
out PLTRELSZ, PLTREL and JMPREL relocs if there is a .rela.plt
section. Solaris 2.4 apparently does not handle empty reloc
information correctly.
* archive.c (bsd_write_armap): Cast getuid and getgid results to
long, and print with %ld.
Fri Mar 10 16:41:05 1995 Ian Lance Taylor <ian@cygnus.com>
* aoutx.h (translate_to_native_sym_flags): Always use the output
section if it is not NULL.
Thu Mar 9 15:06:25 1995 Ian Lance Taylor <ian@cygnus.com>
* coffswap.h (coff_swap_scnhdr_out): If the line number count or
the reloc count does not fit, print an error and return 0.
* coffcode.h (coff_write_object_contents): Check return value of
coff_swap_scnhdr_out.
* ecoff.c (_bfd_ecoff_write_object_contents): Check return value
of bfd_coff_swap_scnhdr_out.
* bfd.c: Include <stdarg.h> or <varargs.h>, depending upon
ANSI_PROTOTYPES.
(bfd_error_handler_type): New global type.
(_bfd_error_program_name): New static variable.
(_bfd_default_error_handler): New static function.
(_bfd_error_handler): New BFD private global variable.
(bfd_set_error_handler): New globally visible function.
(bfd_set_error_program_name): New globally visible function.
* libbfd-in.h (_bfd_error_handler): Declare.
* bfd-in2.h, libbfd.h: Rebuild.
* aoutx.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter,
and use it instead of bfd_get_symcount. Check r_index after
setting r_extern based on whether this is a base relative reloc.
(NAME(aout,swap_std_reloc_IN)): Add symcount parameter, and use it
instead of bfd_get_symcount.
(NAME(aout,slurp_reloc_table)): Pass bfd_get_symcount to reloc
swap routines.
* libaout.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter
to declaration.
(NAME(aout,swap_std_reloc_in)): Likewise.
* sunos.c (sunos_canonicalize_dynamic_reloc): Pass
info->dynsym_count to reloc swap routines.
* aout-ns32k.c (MY_swap_std_reloc_in): Add symcount parameter.
* hp300hpux.c (MY(swap_std_reloc_in)): Likewise.
(MY(slurp_reloc_table)): Pass bfd_get_symcount to reloc swap
routine.
* i386lynx.c (NAME(lynx,swap_ext_reloc_in)): Add symcount
parameter.
(NAME(lynx,swap_std_reloc_in)): Likewise.
(NAME(lynx,slurp_reloc_table)): Pass bfd_get_symcount to reloc
swap routines.
Thu Mar 9 12:04:05 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* bfd.c (bfd_merge_private_bfd_data): New function vector to be
called by the linker to merge any private bfd data of the input
files and the output file. Used by the PowerPC ELF support to
check whether -mrelocatable is used for all modules.
(bfd_set_private_flags): New function vector to be called by the
assembler to set private flags. Used by the PowerPC ELF support
to set that a particular object file was assembled with the
-mrelocatable option.
* targets.c (BFD_JUMP_TABLE_COPY): Add intiialization of the
bfd_merge_private_bfd_data and bfd_set_private_flags function
vectors.
* bfd-in2.h, libbfd-in.h: Rebuild with bfd.c and targets.c
changes.
* elf32-ppc.c (ppc_elf_set_private_flags): New function to set the
ELF e_flags field.
(ppc_elf_copy_private_bfd_data): Copy the e_flags field from the
input file to the output file.
(ppc_elf_merge_private_bfd_data): Check for a mismatch between the
e_flags field of all of the linker input files.
* libelf.h (elf_obj_tdata): Add ppc_flags_init field so that the
PowerPC support can check if compataible e_flags are present.
* aout-target.h: Add NOP for the bfd_merge_private_bfd_data
and bfd_set_private_flags function vectors.
* coffcode.h: Ditto.
* elf32-target.h: Ditto.
* elf64-target.h: Ditto.
* libbfd.h: Ditto.
* libecoff.h: Ditto.
* som.c: Ditto.
Wed Mar 8 00:53:54 1995 Ian Lance Taylor <ian@cygnus.com>
* cpu-mips.c (arch_info_struct): Add mips:8000 entry.
* elfcode.h (swap_out_syms): Mark an undefined BSF_WEAK symbol as
STB_WEAK rather than STB_GLOBAL.
Tue Mar 7 12:23:47 1995 Ian Lance Taylor <ian@cygnus.com>
* coffcode.h (bfd_coff_backend_data): Add new field
_bfd_coff_adjust_symndx.
(bfd_coff_adjust_symndx): Define.
(coff_adjust_symndx): Define as NULL if not already defined.
(bfd_coff_std_swap_table): Initialize new field to
coff_adjust_symndx.
* cofflink.c (coff_link_input_bfd): Call coff_adjust_symndx if it
is defined.
* coff-a29k.c (coff_a29k_adjust_symndx): New static function.
(coff_adjust_symndx): Define before including coffcode.h.
* libcoff.h: Rebuild.
* format.c (bfd_check_format_matches): Skip binary_vec when
searching through bfd_target_vector.
* elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking
sh_size.
Mon Mar 6 23:31:36 1995 Doug Evans <dje@chestnut.cygnus.com>
* elfcode.h (elf_sort_hdrs): Keep SHT_NOBITS sections after
!SHT_NOBITS ones.
Mon Mar 6 09:53:08 1995 Jeff Law (law@snake.cs.utah.edu)
* cpu-hppa.c (arch_info_struct): Support both PA1.0 and PA1.1
machine types.
(bfd_hppa_arch): Link in both PA1.0 and PA1.1 architecture info
structures.
* libhppa.h (enum pa_arch): New enumeration to describe the
different variants of the PA architecture.
* som.c (som_object_setup): Use new enumeration to set machine
type.
(som_finish_writing): If the machine type is PA1.1, then use the
PA1.1 machine identifier in the output file.
Thu Mar 2 15:58:24 1995 Ian Lance Taylor <ian@cygnus.com>
* aoutx.h (NAME(aout,swap_ext_reloc_in)): Treat the index of a
base relative reloc as an index into the symbol table, regardless
of the setting of r_extern.
(NAME(aout,swap_std_reloc_in)): Likewise.
* aoutx.h (NAME(aout,set_section_contents)): Double check that the
caller is writing to a valid section.
Thu Mar 2 14:37:57 1995 Bryan Ford <baford@cs.utah.edu>
* binary.c: Add support for reading binary files. Loads the raw
contents of the file into a data section and wraps some symbols
around it. The symbols `_binary_<filename>_start' and
`_binary_<filename>_end' indicate the start and end of the data,
while `_binary_<filename>_size' is an absolute symbol whose value
is the size of the data. <filename> is the name of the binary
input file, with all non-alphanumeric characters converted to
underscores.
* archures.c (bfd_arch_get_compatible): Assume users knows what
they're doing if one of the architectures is bfd_arch_unknown.
Wed Mar 1 17:30:46 1995 Michael Meissner <meissner@cygnus.com>
* elf32-ppc.c (elf_powerpc_howto_table): For relocation
R_PPC_GOT16, change complain_on_overflow to be
complain_overflow_signed.
Wed Mar 1 11:52:55 1995 Jason Molenda <crash@phydeaux.cygnus.com>
* configure.host: Recognize powerpc-*-aix*.
Wed Mar 1 11:57:39 1995 Ian Lance Taylor <ian@cygnus.com>
* coff-i960.c (COFF_PAGE_SIZE): Define.
* configure.in: Rewrite output of TDEFAULTS to avoid relying on
semantics of single quotes in parameter substitution.
Tue Feb 28 12:53:09 1995 Ian Lance Taylor <ian@cygnus.com>
* elfcode.h (elf_sort_hdrs): Sort empty sections before non-empty