* cofflink.c (_bfd_coff_link_input_bfd): When writing out a
symbol, switch on the class when determining whether to modify the
value. For PE, don't modify the value of a C_FCN symbol not named
.bf.
* coff-i386.c (coff_i386_reloc): Handle R_IMAGEBASE.
(RTYPE2HOWTO): Return NULL if reloc type is out of range.
(coff_i386_rtype_to_howto): Likewise.
* coffcode.h (coff_slurp_symbol_table): Change a -2 to N_DEBUG.
Completely ignore symbols which are all zero.
(dummy_reloc16_estimate): Add return 0.
* cofflink.c (_bfd_coff_link_input_bfd): Rename inner scope
variable copy to name_copy to avoid shadowing outer scope
variable.
* libcoff-in.h (coff_data_type): Change raw_syment_count field
from unsigned int to unsigned long. Add timestamp field.
* libcoff.h: Rebuild.
Also comment changes.
as appropriate. Use EMPTY_HOWTO as appropriate. Fill in
structure initializations. Add casts.
* reloc.c (EMPTY_HOWTO): Define.
* bfd-in2.h: Rebuild.
* coff-h8300.c (h8300_reloc16_extra_cases): Remove useless
comparisons against 0.
* elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Change
previous_ibfd_e_flags to unsigned long.
* vms.h (struct vms_private_data_struct): Change section_count to
unsigned.
* vms-gsd.c (_bfd_vms_slurp_gsd): Change psect_idx to unsigned.
(_bfd_vms_write_gsd): Change symnum to unsigned.
* vms-hdr.c (_bfd_vms_write_hdr): Change symnum to unsigned.
* vms-tir.c (etir_sta): Change psect to unsigned.
(alloc_section): Change idx to unsigned.
(tir_sta, tir_ctl): Change psect to unsigned.
(_bfd_vms_write_tir): Change len and before to bfd_size_type.
* vms.c (priv_section_count): Change to unsigned.
global_to_static member for support of task linking.
(_bfd_coff_write_task_globals): Add prototype.
* libcoff.h: Regenerate.
* coffcode.h (coff_write_object_contents): Use #ifdef to
check RS6000COFF_C, to be consistent with all other uses
in this file.
* cofflink.c (_bfd_coff_final_link): If doing task linking,
call _bfd_coff_write_task_globals.
(_bfd_coff_link_input_bfd): If doing task linking, convert
global functions to static.
(_bfd_coff_write_global_sym): If doing task linking, convert
global variables to static.
(_bfd_coff_write_task_globals): New function.
* coff-tic80.c (TIC80COFF): Define this instead of just TIC80.
(C_AUTOARG): #undef since it clashes with C_UEXT.
(C_LASTENT): #undef since it clashes with C_STATLAB.
* coffcode.h (coff_write_object_contents): Use TIC80COFF
rather than TIC80.
(coff_slurp_symbol_table): Use C_SYSTEM. Hide C_AUTOARG use
when TIC80COFF defined (clashes with C_UEXT). Explicitly
recognize C_UEXT, C_STATLAB, and C_EXTLAB as unsupported.
PR 12236
COFF_IMAGE_WITH_PE, don't subtract the section VMA from the symbol
value.
* coffgen.c (fixup_symbol_value): Add abfd parameter. Change all
callers. If PE file, don't add section VMA.
(coff_write_alien_symbol): If PE file, don't add section VMA.
* cofflink.c (_bfd_coff_link_input_bfd): Likewise.
(_bfd_coff_write_global_sym): Likewise.
(_bfd_coff_generic_relocate_section): Likewise.
relocateable link, just skip pc_relative pcrel_offset relocs.
* coff-arm.c (coff_arm_rtype_to_howto): Return a different howto
structure for an ARM26 reloc which can be resolved.
(coff_arm_adjust_symndx): Only convert ARM26 to ARM26D if the
reloc can be resolved.
PR 11599.
* bfd-in2.h: Rebuild.
* aoutx.h (NAME(aout,final_link)): Mark sections included in the
link.
(aout_link_input_bfd): Don't link unmarked sections.
* cofflink.c (_bfd_coff_final_link): Mark sections included in the
link.
(_bfd_coff_link_input_bfd): Don't link unmarked sections.
* coff-ppc.c (ppc_bfd_coff_final_link): Mark sections included in
the link.
* elflink.h (elf_bfd_final_link): Mark sections included in the
link.
(elf_link_input_bfd): Don't link unmarked sections.
* xcofflink.c (_bfd_xcoff_bfd_final_link): Mark sections included
in the link.
(xcoff_link_input_bfd): Don't link unmarked sections.
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.
* 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.
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-in.h (struct xcoff_tdata): Add cputype field.
* libcoff.h: Rebuild.
* 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.
* 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.
* 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.
* 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 (coff_data_type.link_info): New field.