the symbols associated with each BFD.
(mn10300_elf_relax_delete_bytes): Don't adjust the same symbol
more than once.
* elf-m10200.c: Likewise.
* elf32-m32r.c: Likewise.
* elf32-sh.c: Likewise.
alignment of a common symbol. If two symbols that look like
common symbols are found in two shared libraries, and the size is
different, use the larger size, and warn if --warn-common. If a
common symbol overrides a definition in a shared library, set the
size to the larger size, and warn if --warn-common.
architecture variant in the BFD and COFF structures. This goes towards
fixing PRs 11709 and 11326 and will integrate with future updates to LD and
GCC.
* elf32-m68k.c: Follow the last changes in elf32-i386.c:
(struct elf_m68k_pcrel_relocs_copied, struct
elf_m68k_link_hash_entry, struct elf_m68k_link_hash_table,
elf_m68k_link_hash_traverse, elf_m68k_hash_table,
elf_m68k_link_hash_newfunc, elf_m68k_link_hash_table_create,
elf_m68k_discard_copies, bfd_elf32_bfd_link_hash_table_create):
New definitions.
(elf_m68k_check_relocs): If linking with -Bsymbolic, don't copy
PC relative relocs for a global symbol defined in a regular
object, and count the number of PC relative relocs copied for any
global symbol.
(elf_m68k_size_dynamic_sections): If linking with -Bsymbolic,
traverse with elf_m68k_discard_copies.
but with an added LITERALSLEAZY entry.
(alpha_adjust_reloc_in): Add handling of LITERALSLEAZY relocs. Use
info on the howto_table gotten from the ecoff_backend data.
(alpha_ecoff_get_relocated_section_contents): Ditto.
(alpha_bfd_reloc_type_lookup): Ditto.
(alpha_relocate_section): Ditto. Also remove an assertion
causing failures on *BSD/alpha systems.
(alpha_ecoff_backend_data): Addition of fields to handle different
howto tables as well as a has_literalseazy flag.
(bsd_alpha_ecoff_backend_data): New backend data structure for *BSD.
(bsd_ecoffalpha_little_vec): Define.
* coff-mips.c (MIPS_HOWTO_COUNT): Removed, it's unused.
(mips_adjust_reloc_in): Use new ecoff_backend data to get at the howto
table.
(mips_bfd_reloc_type_lookup): Ditto.
(mips_relocate_section): Ditto.
(mips_ecoff_backend_data): Addition of fields to handle different
howto tables as well as a has_literalseazy flag.
* config.bfd: (alpha-*-openbsd*): New target.
* configure.in (alpha*-*-openbsd*): New target.
(bsd_ecoffalpha_little_vec): New vector for *BSD/Alpha ECOFF.
* ecoff.c (_bfd_ecoff_set_arch_mach_hook): Handle new magic.
(ecoff_get_magic): Ditto.
* libecoff.h (ecoff_backend_data): Addition of fields to handle
different howto tables as well as a has_literalseazy flag.
* reloc.c: BFD_RELOC_ALPHA_LITERALSLEAZY): New reloc.
* targets.c (bsd_ecoffalpha_little_vec): Declare.
(bfd_target_vector): Include the bsd_ecoffalpha_little_vec target.
* configure, bfd-in2.h, libbfd.h: Rebuild.
(struct elf_i386_link_hash_entry): Define.
(struct elf_i386_link_hash_table): Define.
(elf_i386_link_hash_traverse): Define.
(elf_i386_hash_table): Define.
(elf_i386_link_hash_newfunc): New static function.
(elf_i386_link_hash_table_create): New static function.
(elf_i386_check_relocs): If linking with -Bsymbolic, don't copy
PC relative relocs for a global symbol defined in a regular
object, and count the number of PC relative relocs copied for any
global symbol.
(elf_i386_size_dynamic_sections): If linking with -Bsymbolic,
traverse with elf_i386_discard_copies.
(elf_i386_discard_copies): New static function.
(bfd_elf32_bfd_link_hash_table_create): Define.
<gwr@mc.com>.
* libaout.h (struct aout_backend_data): Add entry_is_text_address
field.
* aout-target.h (SEGMENT_SIZE): Define to TARGET_PAGE_SIZE at the
start of the file. Remove uses later on which switch using
ifdef.
(MY(callback)): Handle entry_is_text_address.
(MY_entry_is_text_address): Define if not defined.
(MY(backend_data)): Initialize new field.
* aoutf1.h (sunos4_aout_backend): Likewise.
* i386aout.c (MY(backend_data)): Likewise.
* i386mach3.c (MY(backend_data)): Likewise.
* mipsbsd.c (MY(backend_data)): Likewise.
* sparclynx.c (sparclynx_aout_backend): Likewise.
* netbsd.h (SEGMENT_SIZE): Define if not defined.
(MY_entry_is_text_address): Define.
* m68knetbsd.c (SEGMENT_SIZE): Define as 0x20000
* stabs.c (struct stab_section_info): New field
`cumulative_skips'.
(_bfd_link_section_stabs): Fill the above array.
(_bfd_stab_section_offset): Use `cumulative_skips' to
speed up offset calculation.
reloc even if the symbol is in the .bss section.
* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise.
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Likewise.
* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
_bfd_coff_default_section_alignment_power.
(bfd_coff_default_section_alignment_power): Define.
(bfd_coff_std_swap_table): Initialize new field.
* libcoff.h: Rebuild.
* cofflink.c (coff_link_add_symbols): Limit alignment of a common
symbol to the default section alignment.
symbol. Check for memory allocation failure of *psinfo.
(_bfd_write_section_stabs): Add psinfo parameter. Change all
callers. Set the value of the header symbol.
* libbfd-in.h (_bfd_write_section_stabs): Update declaration.
* libbfd.h: Rebuild.
the string constant.
* targets.c (UNSUPPORTED_TARGET): Don't define.
(find_target): Don't check for UNSUPPORTED_TARGET.
(bfd_set_default_target): Don't try to optimize by checking for
default.
count section symbols for sections that were created by the
linker, or are not allocatable or not loadable.
(elf32_sparc_finish_dynamic_sections): Output output section
symbols for section for which we made space for them.
* coff-svm68k.c: New file. Just defines some macros and includes
coff-m68k.c.
* coff-m68k.c: Add functions to handle common addends, moved in
from cf-m68klynx.c. Control them using COFF_COMMON_ADDEND macro.
Control whether relocs are visible using STATIC_RELOCS.
* cf-m68klynx.c: Simplify greatly: just define macros to control
coff-m68k.c.
* coff-aux.c: Likewise. Just leave add_one_symbol routine.
* targets. (m68ksysvcoff_vec): Declare.
(bfd_target_vector): Add m68ksysvcoff_vec.
* config.bfd (m68*-motorola-sysv*): New target.
* configure.in (m68ksysvcoff_vec): New vector.
* configure: Rebuild.
* Makefile.in: Rebuild dependencies.
(BFD32_BACKENDS): Add coff-svm68k.o.
(BFD32_BACKENDS_CFILES): Add coff-svm68k.c.
(struct bfd_hash_table): Change memory field to PTR.
* bfd.c (struct _bfd): Change memory field to PTR.
* bfd-in2.h: Rebuild.
* libbfd-in.h (bfd_release): Declare as function, don't define as
macro.
* libbfd.h: Rebuild.
* opncls.c: Include "objalloc.h" rather than "obstack.h". Use
objalloc routines rather than obstack routines.
(obstack_chunk_alloc, obstack_chunk_free): Don't define.
(getpagesize): Don't define.
(_bfd_new_bfd): Don't set _bfd_chunksize.
(bfd_openr): Free new bfd and objalloc on failure.
(bfd_fdopenr, bfd_openstreamr, bfd_openw): Likewise.
(bfd_alloc_size): Remove.
(bfd_release): New function.
* hash.c: Include "objalloc.h" rather than "obstack.h". Use
objalloc routines rather than obstack routines.
(obstack_chunk_alloc, obstack_chunk_free): Don't define.
* ecofflink.c: Include "objalloc.h" rather than "obstack.h". Use
objalloc routines rather than obstack routines.
(obstack_chunk_alloc, obstack_chunk_free): Don't define.
(struct accumulate): Change memory to struct objalloc *.
* liboasys.h (oasys_data_type): Remove oasys_obstack field.
* dep-in.sed: Don't remove obstack.h from dependency list.
* Makefile.in: Rebuild dependencies.
(BFD_H_DEPS): Remove obstack.h.
(install): Don't install obstack.h.
* Many files: Don't include "obstack.h".
* VERSION: Bump.
old version of bfd_alloc.
* libbfd-in.h (bfd_alloc_by_size_t): Don't declare.
* libbfd.h: Rebuild.
* Several files: Call bfd_alloc rather than bfd_alloc_by_size_t.
* configure.in (powerpc-*-beos*): Add case that explicitly
does not set COREFILE for now. A future BeOS version is
expected to support core files.
* configure: Regenerate with autoconf.
setting ever. Sanity check the version number. Sort out copying
flags and other information when adding an indirect symbol.
(NAME(bfd_elf,size_dynamic_sections)): Preserve any dynamic
symbols added by the backend. Clear the entire contents of the
versym section.
(elf_export_symbol): Ignore indirect symbols.
(elf_link_output_extsym): Accept a section without an owner in an
assert.
* elfcode.h (elf_slurp_symbol_table): Add a sanity check on the
version count. Correct the allocation of x_versymp.
the magic sections used for SHN_MIPS_TEXT and SHN_MIPS_DATA.
Don't return bfd_und_section_ptr when info->shared.
(mips_elf_final_link): Set the alignment of .rtproc to 4, not 12.
(mips_elf_create_dynamic_sections): Correct type: ^= for &=.
(mips_elf_check_relocs): Resolve an indirect symbol in
sym_hashes.
(mips_elf_finish_dynamic_symbol): Don't change SHN_ABS into
SHN_MIPS_TEXT or SHN_MIPS_DATA.
* elf-bfd.h (ELF_LINK_FORCED_LOCAL): Define.
* elf.c (bfd_elf_print_symbol): Correct errors in last change.
* elflink.h (elf_link_add_object_symbols): Handle cases in which a
versioned symbol appears in both a regular and a shared object.
(elf_link_assign_sym_version): Set ELF_LINK_FORCED_LOCAL when
appropriate. Improve error message.
(struct elf_outext_info): Rename from elf_finfo_failed. Change
all uses. Add localsyms field.
(elf_bfd_final_link): When generating a shared library, call
elf_link_output_extsym to output all local symbols.
(elf_link_output_extsym): Handle symbols which were forced to
become local.
* elf-bfd.h (elf_symbol_type): Add version field.
* elfcode.h (elf_slurp_symbol_table): Set version field.
* elflink.h (elf_link_add_object_symbols): When creating an
indirect symbol for a default version symbol, set DEF_DYNAMIC if
appropriate. Set up an indirection from the nondefault version of
the symbol as well.
(NAME(bfd_elf,size_dynamic_sections)): Call
elf_link_assign_sym_version before checking whether there are any
versions. Always record the version name as a dynamic symbol.
Initialize counters.
(elf_link_assign_sym_version): After finding a version, see if a
symbol should be forced to local scope. Create a new version
definition if appropriate.
(elf_link_output_extsym): Correct indirect symbol handling.
* elf.c (bfd_elf_print_symbol): Print version information.
(bfd_section_from_shdr): Turn version sections into BFD sections.
(elf_fake_sections): Only copy cverdefs and cverrefs into sh_info
if sh_info is not already set.
(_bfd_elf_copy_private_section_data): Copy sh_info for version
sections.
* elflink.c (_bfd_elf_link_record_dynamic_symbol): Tell
_bfd_stringtab_add to copy the name into permanent memory if
appropriate.
_bfd_coff_compute_section_file_positions to return a boolean
value. Change all callers.
(coff_compute_section_file_positions): Change return type to
boolean. If the size of the last section changed, then output a
zero byte at the end of the file.
* libcoff.h: Rebuild.
PR 11806.
for at least 6 output symbols.
(xcoff_write_global_symbol): When emitting TOC entry relocs, also
emit a TC csect to represent the space they take up. For an XO
symbol, just emit a reference, not a csect.
PR 11793.
relocs. Replace them with generic PCREL_{8,16,32} relocs.
(elf32_mn10300_howto_table): Likewise.
(elf32_mn10300_reloc_map): Likewise.
(bfd_elf32_mn10300_reloc): Delete unused function.
Simplify the mn10300 port. Stuff I noticed while working on the mn10200.
* coff-tic80.c (rtype2howto): If passed a relocation type we don't
understand, just set the howto field to NULL, and the caller will
print an appropriate error message.
end-sanitize-tic80
* coffcode.h (coff_slurp_reloc_table): Pull duplicate declarations and
code fragment out of both legs of #ifdef RELOC_PROCESSING ... #endif
block. Use NULL for initializations of "ptr" rather than bare 0.
* coff-h8300.c: Fix typo in comment.
* coff-h8500.c: Ditto.
* coff-w65.c: Ditto
* coff-z8k.c: Ditto.
(find_target): New static function, broken out of
bfd_find_target.
(bfd_set_default_target): New function.
(bfd_find_target): Call find_target. When defaulting, use
bfd_default_vector[0] if it is not NULL.
* libbfd-in.h (bfd_default_vector): Adjust declaration.
* bfd-in2.h, libbfd.h: Rebuild.
_bfd_elf_is_local_label_name if not already defined.
* elf.c (_bfd_elf_is_local_label_name): New function.
* elf-bfd.h (_bfd_elf_is_local_label_name): Declare.
to _bfd_is_local_label_name.
(bfd_target): Likewise.
* syms.c (bfd_is_local_label): Define as function, not macro.
(bfd_is_local_name): Define.
* libbfd.c (bfd_generic_is_local_label_name): Rename from
bfd_generic_is_local_label, and take a string rather than a
symbol.
* libbfd-in.h (_bfd_nosymbols_bfd_is_local_label): Don't define.
(_bfd_nosymbols_bfd_is_local_label_name): Define.
(bfd_generic_is_local_label): Don't declare.
(bfd_generic_is_local_label_name): Declare.
* bfd-in2.h, libbfd.h: Rebuild.
* All backends: Change local_label to local_label_name.
(mips_elf_relocate_got_local): Change return type to boolean.
Don't assume that the first zero entry is unassigned; instead, use
assigned_gotno.
(mips_elf_relocate_section): Check return value of
mips_elf_relocate_got_local.
(mips_elf_create_got_section): Initialize assigned_gotno field.
name begins with ".note".
(map_sections_to_segments): Add a PT_NOTE segment for any loadable
section whose name begins with ".note".
(get_program_header_size): Corresponding change.
* elflink.h (elf_link_add_archive_symbols): If a default symbol is
not found, try looking it up again without the version name.
(elf_link_add_object_symbols): Always link against the dynamic
symbol table of a dynamic object. When linking against a dynamic
object, include version strings in symbol names, and set up
version information. Add indirect symbols for default versions.
(elf_link_create_dynamic_sections): Add special version sections.
(struct elf_assign_sym_version_info): Define.
(struct elf_find_verdep_info): Define.
(NAME(bfd_elf,size_dynamic_sections)): Add verdefs parameter. Set
up version sections.
(elf_adjust_dynamic_symbol): Ignore indirect symbols.
(elf_link_find_version_dependencies): New static function.
(elf_link_assign_sym_version): New static function.
(elf_link_renumber_dynsyms): New static function.
(struct elf_final_link_info): Add symver_sec field.
(elf_bfd_final_link): Initialize finfo.symver_sec. Don't count
local symbols of a dynamic object. Handle DT_VER* constants.
(elf_link_output_extsym): Simplify BFD_ASSERT checking for a
dynamic object. Skip indirect symbols from ELF objects. Remove
the version name before choosing a hash bucket. Write out the
version information if appropriate.
(elf_link_input_bfd): Check for DYNAMIC, not ET_DYN.
* bfd-in.h (bfd_elf32_size_dynamic_sections): Update declaration.
(bfd_elf64_size_dynamic_sections): Likewise.
* bfd-in2.h: Rebuild.
* elf-bfd.h (struct elf_link_hash_entry): Add verinfo field.
Change elf_link_hash_flags to unsigned short.
(ELF_LINK_HIDDEN): Define.
(struct elf_obj_tdata): Add fields dynversym_hdr, dynverref_hdr,
dynverdef_hdr, dynversym_section, dynverdef_section,
dynverref_section, cverdefs, cverrefs, verdef, verref.
(elf_dynversym, elf_dynverdef, elf_dynverref): Define.
(_bfd_elf_swap_verdef_in, _bfd_elf_swap_verdef_out): Declare.
(_bfd_elf_swap_verdaux_in, _bfd_elf_swap_verdaux_out): Declare.
(_bfd_elf_swap_verneed_in, _bfd_elf_swap_verneed_out): Declare.
(_bfd_elf_swap_vernaux_in, _bfd_elf_swap_vernaux_out): Declare.
(_bfd_elf_swap_versym_in, _bfd_elf_swap_versym_out): Declare.
(_bfd_elf_slurp_version_tables): Declare.
* elf.c (_bfd_elf_swap_verdef_in): New function.
(_bfd_elf_swap_verdef_out): Likewise.
(_bfd_elf_swap_verdaux_in, _bfd_elf_swap_verdaux_out): Likewise.
(_bfd_elf_swap_verneed_in, _bfd_elf_swap_verneed_out): Likewise.
(_bfd_elf_swap_vernaux_in, _bfd_elf_swap_vernaux_out): Likewise.
(_bfd_elf_swap_versym_in, _bfd_elf_swap_versym_out): Likewise.
(_bfd_elf_print_private_bfd_data): Add DT_VER* constants. Print
version information if there is any.
(_bfd_elf_link_hash_newfunc): Initialize verinfo field.
(bfd_section_from_shdr): Handle SHT_GNU_ver* section types.
(elf_fake_sections): Handle .gnu.version* section names.
(assign_section_numbers): Handle SHT_GNU_ver* section types.
(_bfd_elf_slurp_version_tables): New function.
* elflink.c (_bfd_elf_link_record_dynamic_symbol): Don't include
version name in string entered in dynamic hash table.
* elfcode.h: Include fnmatch.h.
* elf32-i386.c (elf_i386_relocate_section): Handle a dynamic
symbol which was forced to become local.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Likewise.
somewhat.
(mn10200_elf_relax_section): Correctly compute a symbol's value
when the symbol is local, but not in the same section as we are
relaxing. Implement abs24 -> abs16, imm24 -> imm16 and d24 -> d16
relaxing.
Another 1.3% size reduction for hello world. Only relaxing left todo is
imm16 -> imm8 and d16 -> d8 where applicable.
Store lower 16 bits of addend in R_M32R_HI16_[SU]LO insns.
Add small data area support (R_M32R_SDA16).
* reloc.c: Document BFD_RELOC_M32R_SDA16.
* bfd-in2.h,libbfd.h: Regenerated.
* reloc.c (BFD_RELOC_ALPHA_CODEADDR): New relocation for
openVMS/Alpha.
* evax.h (ALPHA_R_CODEADDR): New relocation.
* evax-alpha.c (ALPHA_R_CODEADDR): 64 bit procedure relocation for
openVMS/Alpha.
* evax-etir.c (ALPHA_R_CODEADDR): Output object code for this
relocation.
* bfd-in2.h, libbfd.h: Rebuild.
Restrict symbol length to 64 bytes, case preserving:
* evax-emh.c (_bfd_evax_write_emh): Remove case hacking.
* evax-misc.c (_bfd_evax_case_hack_symbol): Remove.
(_bfd_evax_length_hash_symbol): Added.
* evax-etir.c (_bfd_evax_write_etir): Call
_bfd_evax_length_hash_symbol before output of symbol.
* evax-egsd.c (_bfd_evax_write_egsd): Likewise.
* evax.h (flag_hash_long_names, flag_show_after_trunc): Remove.
* evax-emh.c: Output filename to object file without path.
* evax-egsd.c: New sections for local and global commons.
* evax-alpha.c, evax-emh.c, evax-egsd.c, evax-etir.c,
evax-misc.c, evax.h: Remove 8 bit characters from copyright
notices. Replace AXP with Alpha.
(struct mips_elf_link_hash_entry): Add new fields fn_stub,
need_fn_sub, call_stub, and call_fp_stub.
(struct mips_elf_link_hash_table): Add field mips16_stubs_seen.
(mips_elf_link_hash_newfunc): Initialize new fields.
(mips_elf_link_hash_table_create): Likewise.
(mips_elf_relocate_section): Redirect relocations to use mips16
stubs when appropriate.
(mips_elf_check_relocs): Attach stub sections to the appropriate
symbol. Set need_fn_stub when appropriate.
(mips_elf_always_size_sections): New static function.
(mips_elf_check_mips16_stubs): New static function.
(elf_backend_always_size_sections): Define.
* elf-bfd.h (struct elf_obj_tdata): Add local_stubs field.
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.
relocations against the text segment, look up the output name of
the reloc section.
* elf32-m68k.c (elf_m68k_size_dynamic_sections): Likewise.
* elf32-mips.c (mips_elf_size_dynamic_sections): Likewise.
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
* elf32-sparc.c (elf32_sparc_size_dynamic_sections): Likewise.
* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Likewise.
Use bfd_elf_generic_reloc as special function for all relocs.
(bfd_elf32_mn10200_reloc): Remove unnecessary function.
Working on relocs for the mn10200.
* coff-tic80.c (tic80coff_vec): Data byte order is big endian and
header byte order is little endian. Use correct bfd_get and
bfd_put routines for little endian headers.
* coffcode.h (coff_set_arch_mach_hook): Set arch to
bfd_arch_tic80 for TIC80_ARCH_MAGIC number.
(ALL_MACHINES): Add cpu-tic80.o
(cpu-tic80.o, coff-tic80.o): Add dependencies.
* coff-tic80.c: Add skeleton, cloned from another coff config.
* coffcode.h (coff_write_object_contents): Set magic to TIC80MAGIC
for TIc80.
mips16 symbol during the link.
(mips_elf_finish_dynamic_symbol): Subtract 1 from the value of a
mips16 symbol.
(mips_elf_link_output_symbol_hook): New static function.
(elf_backend_link_output_symbol_hook): Define.
symbol if the real definition is in the dynamic symbol table.
After finding the real definition, then, if it is dynamic, add the
weak symbol to the dynamic symbol table.
PR 11244.
even if SEC_ALLOC is not set.
* elf32-i386.c (elf_i386_check_relocs): Don't check SEC_ALLOC
when deciding whether to copy a reloc into a shared object.
(elf_i386_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_check_relocs): Likewise.
(elf32_sparc_relocate_section): Likewise.
* elf32-i386.c (elf_i386_check_relocs): Don't set SEC_ALLOC in a
reloc section if it is not set in the source section.
* elf32-sparc.c (elf32_sparc_check_relocs): Likewise.
* elf.c (bfd_section_from_shdr): Mark a reloc section associated
with a SEC_DEBUGGING section as SEC_DEBUGGING.
PR 11174.
mn10300-Info_howto_rel. Tweak reloc argument to be an
Elf32_Internal_Rela.
(USE_RELA): Define instead of USE_REL.
(elf_info_to_howto, elf_info_howto_rel): Corresponding changes.
* elf.c (_bfd_elf_link_hash_newfunc): Initialize other field.
(swap_out_syms): Set st_other from existing st_other field.
* elflink.h (elf_link_add_object_symbols): Store st_other in hash
table other field.
(elf_link_output_extsym): Set the other field from the global hash
table entry.
* elf32-mips.c (enum reloc_type): Add R_MIPS16_26.
(elf_mips16_jump_howto): New static variable.
(mips16_jump_reloc): New static function.
(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS16_JMP.
(mips_info_to_howto_rel): Handle R_MIPS16_26.
(mips_elf_relocate_section): Handle R_MIPS16_26. Handle R_MIPS_26
to a mips16 symbol.
* reloc.c (BFD_RELOC_MIPS16_JMP): Add to list of relocs.
* bfd-in2.h, libbfd.h: Rebuild.
* cpu-mips.c (arch_info_struct): Add mips:16 entry.
(enum reloc_type): Add more reloc types.
(elf32_mn10300_howto_table): Update for new reloc types.
(elf32_mn10300_reloc_map): Update for new reloc types.
* reloc.c: Add some new relocs for the mn10300 series.
* bfd-in2.h, libbfd.h: Rebuilt.
Last week's reloc work.
(sunos_link_hash_table_create): Initialize got_needed.
(sunos_create_dynamic_sections): Only set .got section size if it
is not already set. Set got_needed.
(bfd_sunos_size_dynamic_sections): Check got_needed. Only set
sdynptr, and only handle dynamic sections, if dynamic sections are
needed.
(sunos_scan_std_relocs): Pass false to create_dynamic_sections.
Initialize .got section.
(sunos_scan_ext_relocs): Likewise.
(sunos_write_dynamic_symbol): Set up PLT entry even if this is not
a dynamic symbol.
(sunos_finish_dynamic_link): Check got_needed. Only set up
dynamic linking information if needed.
PR 11074.
Store import file index in ldindx.
(xcoff_build_ldsyms): Assume that ldsym was not previously
allocated. For an imported symbol, copy ldindx into l_ifile.
R_V850_ZDAOFFSET and R_V850_TDAOFFSET. Fix various
fields in R_V850_TDAOFFSET.
(elf32_v850_bfd_final_link_relocate): Tweak pc-relative
relocs to work more like other relocs. Handle R_V850_TDAOFF
relocations.
v850 tda, sda & zda stuff.
(bfd_elf32_v850_reloc): Return an error if we get a reloc
we can't handle.
(elf32_v850_bfd_final_link_relocate): New function.
(v850_elf_relocation_section): Likewise.
(elf_backend_relocate_section): Define.
New-style linker for the v850 (necessary to handle zda, sda & tda).
sda & tda relocs seem to be working. No tda reloc support yet.
all sections that will be included in the output file.
(_bfd_generic_link_output_symbols): Discard symbols in sections
which are being discarded.
Fixes 4 failures in the g++ testsuite on the v850.
* reloc.c: Create a new BFD_RELOC_ALPHA_ELF_LITERAL. It was a
mistake to have reused the ECOFF LITERAL for ELF since they have
different semantics.
* elf64-alpha.c (elf_reloc_map): Map from ELF_LITERAL.
* bfd-in2.h, libbfd.h: Rebuild.
* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Trap .got
section overflow.
* elf64-alpha.c (elf64_alpha_relocate_section): Do not emit a
dynamic relocation for an undefweak symbol when we are building
a static executable.
(sunos_link_hash_table_create): Initialize got_base.
(bfd_sunos_size_dynamic_sections): If the .got section is more
than 0x1000 bytes, set __GLOBAL_OFFSET_TABLE_ and got_base to
0x1000.
(sunos_check_dynamic_reloc): Subtract got_base from a base
relative relocation.
PR 10684.
(m68kcoff_rtype_to_howto): New static function.
* cf-m68klynx.c (coff_m68k_lynx_rtype_to_howto): Add the section
VMA to the addend for a PC relative reloc.
* mpw-config.in: Likewise.
* configure: Rebuild.
* targmatch.sed: New file; a sed script to build targmatch.h from
config.bfd.
* config.bfd: Add #if, #endif, and comments for targmatch.h.
* targets.c: Include "fnmatch.h".
(struct targmatch): Define.
(bfd_target_match): Define by including targmatch.h.
(bfd_find_target): If the target is not found by name, search for
it as a configuration triplet.
* Makefile.in: Rebuild dependencies.
(BFD32_BACKENDS): Add aout-arm.o, aout-sparcle.o, hp300bsd.o,
i386dynix.o, m68k4knetbsd.o, and riscix.o.
(BFD32_BACKENDS_CFILES): Add aout-arm.c, aout-sparcle.c,
hp300bsd.c, i386dynix.c, m68k4knetbsd.c, and riscix.c.
(HFILES): Add targmatch.h. Also, alphabetize and reindent.
(CFILES): Remove i386dynix.c and hp300bsd.c.
(targmatch.h): New target.
(do_clean): Remove targmatch.h.
* configure.in: Add BFD_NEED_DECLARATION(getenv).
* acconfig.h: Add NEED_DECLARATION_GETENV.
* configure, config.in: Rebuild.
* sysdep.h: If NEED_DECLARATION_GETENV, declare getenv.
* aout-adobe.c (aout_adobe_object_p): Don't declare getenv.
openVMS/Alpha: Provide filename and case_hack flags via
symbol table from gas.
Add case_hack code for symbol output from vax/vms.
* evax-alpha.c (evax_initialize): Remove filename handling,
filename is provided via symbol table.
(evax_get_symtab): Use local symbol count when setting up table.
* evax-egsd.c (_bfd_evax_slurp_egsd): Print correct name when
debugging.
(_bfd_evax_write_egsd): Skip file name symbol.
* evax-emh.c (get_vms_time_string): Local function now.
(_bfd_evax_write_emh): Extract source filename and case_hack flags
from symbol table.
* evax_write_etir (_bfd_evax_write_etir): Pass all symbol names
through _bfd_evax_case_hack_symbol.
* evax-misc.c (hash_string, _bfd_evax_case_hack_symbol): New
functions.
(_bfd_evax_basename): Removed.
(_bfd_get_vms_time_string): Moved to evax-emh.c.
* evax.h (evax_private_data_struct): Remove filename.
(flag_hash_long_names, flag_show_after_trunc,
flag_no_hash_mixed_case, vms_name_mapping): New flags for
vms_case_hack.
link, adjust the symbol index of a base relative reloc. Don't
change the addend of a PC relative reloc if pcrel_offset is set.
* sunos.c (bfd_sunos_size_dynamic_sections): Don't do anything for
a relocateable link.
PR 10692.