(s_linkonce): Declare.
* read.c (potable): Add "linkonce".
(s_linkonce): New function.
* subsegs.h (segment_info_type): Add linkonce field to
MANY_SEGMENTS && ! BFD_ASSEMBLER section.
* config/obj-coff.h (obj_handle_link_once): Define if TE_PE.
(obj_coff_pe_handle_link_once): Declare if TE_PE.
* config/obj-coff.c: If TE_PE and not BFD_ASSEMBLER, #include
"coff/pe.h".
(obj_coff_pe_handle_link_once): New function, defined if TE_PE.
(c_section_symbol): If TE_PE, set the x_comdat field in the aux
entry based on the linkonce field in segment_info.
* doc/as.texinfo: Document .linkonce.
(SEC_LINK_DUPLICATES): Define.
(SEC_LINK_DUPLICATES_DISCARD): Define.
(SEC_LINK_DUPLICATES_ONE_ONLY): Define.
(SEC_LINK_DUPLICATES_SAME_SIZE): Define.
(SEC_LINK_DUPLICATES_SAME_CONTENTS): Define.
* bfd-in2.h: Rebuild.
* coffcode.h (sec_to_styp_flags): If COFF_WITH_PE, turn
SEC_LINK_ONCE into IMAGE_SCN_LNK_COMDAT.
(styp_to_sec_flags): If COFF_WITH_PE, turn IMAGE_SCN_LNK_REMOVE
into SEC_EXCLUDE. If IMAGE_SCN_LNK_COMDAT is set, set
SEC_LINK_ONCE, and look through the symbol table for the setting
for SEC_LINK_DUPLICATES.
(coff_write_object_contents): If COFF_WITH_PE, if SEC_LINK_ONCE is
set for a section, find the section symbol in the symbol table,
and set the aux entry based on SEC_LINK_DUPLICATES.
* coffgen.c (coff_print_symbol): Add a space before "checksum".
* coff-arm.c (armcoff_big_vec): If COFF_WITH_PE is defined, add
SEC_LINK_ONCE and SEC_LINK_DUPLICATES to section_flags.
* coff-i386.c (i386coff_vec): Likewise.
* coff-ppc.c (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Likewise.
(CROSS_CHECK_MODULES): Include check-perl.
(INSTALL_MODULES): Include install-perl.
(ALL_X11_MODULES): Include all-guile.
(CHECK_X11_MODULES): Include check-guile.
(INSTALL_X11_MODULES): Include install-guile.
(all-perl): New target.
(all-guile): New target.
* configure.in (host_tools): Include perl and guile.
(native_only): Include perl and guile.
(noconfigdirs): Don't build guile and perl; no ports have been
done.
* libbfd.h: Rebuilt.
* linker.c (generic_link_hash_newfunc): No longer static.
* coffcode.h (coff_bfd_link_hash_create): Allow specific targets
to override.
* coff-h8300.c: Add two derived hash tables and their associated
funtions and #defines for use by the h8300 linker.
(h8300_reloc16_extra_cases, case R_MEM_INDIRECT): Create entries in
the function vector as needed. Place the address of the function
vector entry in the location specified by the R_MEM_INDIRECT reloc.
Rewrite the vectors section contents as necessary.
(h8300_bfd_link_add_symbols): New function for the h8300 linker.
(coff_bfd_link_add_symbols): Define to use h8300 specific version.
(coff_bfd_link_hash_table_create): Likewise.
Linker changes for function vectors. HMSE.
doing the rest of the processing, which may involve freeing the
string. Pass string, not string + stroff, to OBJ_PROCESS_STAB in
SEPARATE_STAB_SECTIONS case.
(tc_gen_reloc): Move label done inside the ifdef in which it is
used.
(md_apply_fix): Pass pointers to correct types to libhppa.h
functions. Always return a value.
__attribute__ ((__unused__)) so that -Wall doesn't warn about
them.
(hppa_rebuild_insn): Pass pointer to correct type to
low_sign_unext and dis_assemble_21.
(mips_frob_file): Declare.
* config/tc-mips.c (struct mips_hi_fixup): Define.
(mips_hi_fixup_list): New static variable.
(imm_unmatched_hi): New static variable.
(md_assemble): Clear imm_reloc, imm_unmatched_hi, and
offset_reloc. Pass imm_unmatched_hi to append_insn.
(append_insn): Add unmatched_hi parameter. If it is set, add the
new fixup to mips_hi_fixup_list. Change all callers.
(mips_ip): Set imm_unmatched_hi when appropriate.
(mips_frob_file): New function.
* interp.c (Convert): Provide round-to-nearest and round-to-zero
support for Sun hosts.
* Makefile.in (gencode): Ensure the host compiler and libraries
used for cross-hosted build.
Allow a DOS hosted version of the simulator to be built. NOTE: The FP
is still not complete, since round-to-nearest and round-to-zero have
not been implemented generically.
(coff_swap_aux_out): Swap out extra PE x_scn fields.
* coffswap.h (coff_swap_aux_in): Zero out extra PE x_scn fields.
* coffgen.c (coff_print_symbol): If any of the extra PE x_scn
fields is non-zero, print them.
the #ifdef where they are used. Always return a value.
(pe_print_edata): Change fprintf strings and add cast to make
fprintf strings correspond to actual types. Always return a
value.
(pe_print_pdata): Removed unused variable addr_value. Always
return a value.
(pe_print_reloc): Remove unused variable onaline. Make fprintf
strings and arguments correspond. Always return a value.
* cpu-ns32k.h: Include ns32k.h. Rename externally visible
functions to start with _bfd_.
* aout-ns32k.c: Include ns32k.h. Change references to renamed
functions in cpu-ns32k.h.
* Makefile.in: Rebuild dependencies.
(HFILES): Add ns32k.h.
* 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.
* ldlang.c (init_os): Fail on an attempt to initialize any section
named DISCARD_SECTION_NAME.
(wild_doit): Discard input sections assigned to an output section
named DISCARD_SECTION_NAME.
* ld.texinfo: Document use of /DISCARD/.
* breakpoint.c (breakpoint_re_set_one): Keep temporary
breakpoints bp_until, bp_finish, bp_watchpoint_cope, bp_call_dummy
and bp_step_resume in case breakpoint_re_set_one is called due
to a step over a dlopen call.
* infrun.c (wait_for_inferior): Always remove breakpoints from
inferior in BPSTAT_WHAT_CHECK_SHLIBS case.