for a section even if it is not loaded.
Otherwise compiling this
static char bar; char *foo() { return &bar; }
without -fpic and then doing ld -shared OBJECT dumps core.
section VMA.
(_bfd_coff_link_input_bfd): Separate section VMA handling for
input and output files.
(_bfd_coff_generic_relocate_section): Check whether input file,
not output file, is a PE file.
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
name of R_RELLONG to "RELLONG". Set rightshift and complain for
M_PPCR.
(ppbase_reloc, glob15_reloc): New static functions.
(glob16_reloc, local16_reloc): New static functions.
(rtype2howto): Handle all relocation types.
(coff_tic80_relocate_section): New static function.
(coff_relocate_section): Define to coff_tic80_relocate_section.
* Makefile.in (coff-tic80.o): Depends upon include/coff/tic80.h.
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.
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