Commit Graph

2586 Commits

Author SHA1 Message Date
Alexandre Oliva
e6deed0a00 * elf32-frv.c (elf32_frv_howto_table) <R_FRV_LABEL16>: Set
complain_on_overflow to signed.
2004-02-28 00:33:33 +00:00
H.J. Lu
b60d7a1a49 2004-02-27 H.J. Lu <hongjiu.lu@intel.com>
* elflink.h (sort_symbol): New.
	(elf_link_add_object_symbols): Use a sorted symbol array for
	weakdef.
2004-02-27 17:02:48 +00:00
Martin Schwidefsky
1c3ff0f2a5 * elf32-s390.c (allocate_dynrelocs): Use SYMBOL_REFERENCES_LOCAL
for pc relative relocs.
	(elf_s390_relocate_section): Likewise.
	* elf64-s390.c (allocate_dynrelocs): Use SYMBOL_REFERENCES_LOCAL
	for pc relative relocs.
	(elf_s390_relocate_section): Likewise.
2004-02-27 10:03:05 +00:00
H.J. Lu
de9811afe2 2004-02-26 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_check_relocs): Fix call to
	count_dyn_reloc.
2004-02-26 17:45:19 +00:00
H.J. Lu
ac33696c68 2004-02-25 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_dyn_reloc_entry): Add the reltext.
	field to track if a relocation is against readonly section.
	(count_dyn_reloc): Take a new argument for rent->reltext.
	(elfNN_ia64_check_relocs): Adjust call to count_dyn_reloc.
	(get_reloc_section): Don't set ia64_info->reltext here.
	(allocate_dynrel_entries): Set ia64_info->reltext here.
2004-02-26 03:54:06 +00:00
Alexandre Oliva
072c89031a * elf32-frv.c (FRV_SYM_LOCAL): Weak undefined doesn't imply local.
(_frv_emit_got_relocs_plt_entries): Decay relocation to protected
function's descriptor to symbol+offset, and map local undefweak
symbol to NULL function descriptor.
(elf32_frv_relocate_section): Likewise.
2004-02-24 16:39:01 +00:00
Nick Clifton
aca305d96d Add support for 64bit NETBSD cores 2004-02-23 15:25:20 +00:00
Jakub Jelinek
646411fba0 * elflink.h (size_dynamic_sections): If not adding DT_FLAGS and
DF_BIND_NOW is set in info->flags, create DT_BIND_NOW dynamic entry.
2004-02-23 09:01:58 +00:00
H.J. Lu
1de1a3173e 2004-02-21 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (_bfd_elf_merge_symbol): Properly handle undefined
	symbols with non-default visibility.
2004-02-21 23:05:13 +00:00
Danny Smith
3c9d0484ea * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Clear
IMAGE_SCN_MEM_WRITE on known sections only.
2004-02-21 06:16:02 +00:00
Jakub Jelinek
a876ecf9be * elf32-ppc.c (allocate_dynrelocs): Create dynsym for undef weak
symbols used in PIE relocs.
2004-02-20 17:36:36 +00:00
Jakub Jelinek
a8a6d7cef4 * elf32-sparc.c (elf32_sparc_finish_dynamic_sections): Clear
.plt sh_entsize.
2004-02-19 11:01:39 +00:00
Daniel Jacobowitz
d080fcd283 * configure.in: Update version to 2.15.90.
* configure: Regenerate.
2004-02-18 17:17:17 +00:00
Richard Sandiford
d25aed713b bfd/
* elfxx-mips.c (mips_elf_calculate_relocation): Use
	_bfd_elf_symbol_refs_local_p to decide whether to decay
	a GOT_PAGE/GOT_OFST pair to GOT_DISP/addend.
	(_bfd_mips_elf_check_relocs): Add a global GOT entry for GOT_PAGE
	relocs if the symbol wasn't defined by a regular object file.
	Don't check the symbol's dynindx.

ld/testsuite/
	* ld-mips/elf/elf-rel-xgot-{n32,n64-linux}.d: Update after 2004-02-02
	changes to the way large constants are added.
	* ld-mips/elf/elf-rel-got-{n32,n64-linux}.d: Likewise.  Adjust order
	of GOT entries after today's change to the handling of GOT_PAGE
	relocations.
2004-02-17 10:19:24 +00:00
Andrew Cagney
d7ce59e3ac 2004-02-16 Andrew Cagney <cagney@redhat.com>
* bfd-in.h (file_ptr, ufile_ptr): Configure type using
	@bfd_file_ptr@.
	* bfd-in2.h: Re-generate.
2004-02-16 18:46:40 +00:00
Andrew Cagney
ca0b76868a 2004-02-14 Andrew Cagney <cagney@redhat.com>
* configure.host (HDEFINES): When hppa*-*-hpux*, define
	_LARGEFILE64_SOURCE.
2004-02-14 15:38:20 +00:00
Andrew Cagney
340b6d9120 2004-02-13 Andrew Cagney <cagney@redhat.com>
* elf.c	(vma_page_aligned_bias): New function.
	(assign_file_positions_except_relocs)
	(assign_file_positions_for_segments): Replace broken modulo
	arithmetic with call to vma_page_aligned_bias.
2004-02-13 14:58:58 +00:00
Andrew Cagney
7c1927339f 2004-02-11 Andrew Cagney <cagney@redhat.com>
* bfd-in.h: Update copyright.
	(bfd_tell): Change return type to file_ptr.
	* bfd-in2.h: Re-generate.
	* cache.c: Update copyright.
	(bfd_cache_lookup_worker): Use real_fseek, do not cast offset
	parameter.
	(close_one): Use real_ftell.
	* bfdio.c: Update copyright.
	(real_ftell, real_fseek): New functions.
	(bfd_tell): Use real_fseek and real_ftell, change return type to
	file_ptr.
	(bfd_seek): Use real_ftell and real_fseek, change type of
	file_position to a file_ptr.
	* libbfd-in.h: Update copyright.
	(real_ftell, real_fseek): Declare.
	* libbfd.h: Re-generate.
2004-02-11 23:23:20 +00:00
Andrew Cagney
c1ea0c0914 * config.in: Re-generate. 2004-02-11 22:05:35 +00:00
Andrew Cagney
1012372a47 2004-02-11 Andrew Cagney <cagney@redhat.com>
* configure.in (AC_CHECK_FUNCS): Check for ftello, ftello64,
	fseeko and fseeko64.  Determine bfd_file_ptr.
	* configure: Re-generate.
2004-02-11 22:01:00 +00:00
Nick Clifton
3255318a04 Add support for relaxing the 32bit ldc/stc instructions. 2004-02-09 12:15:57 +00:00
Nick Clifton
0d5f99947b Catch GOT offsets for a symbol which have no associated GOT subsection. 2004-02-09 10:30:13 +00:00
Richard Sandiford
174fd7f955 * bfd-elf.h (elf_backend_name_local_section_symbols): New hook.
* elf.c (swap_out_syms): Use it to decide whether local section
	symbols should be named.
	* elfxx-target.h (elf_backend_name_local_section_symbols): New macro.
	* elfxx-mips.h (_bfd_mips_elf_name_local_section_symbols): Declare.
	(elf_backend_name_local_section_symbols): Define.
	* elfxx-mips.c (_bfd_mips_elf_name_local_section_symbols): New.
2004-02-09 08:04:00 +00:00
H.J. Lu
03609792ae 2004-01-30 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_relax_brl): New function.
	(elfNN_ia64_relax_section): Optimize brl to br during the relax
	finalize pass.
2004-01-30 23:13:28 +00:00
Alexandre Oliva
ea01195e38 * elf32-frv.c (elf32_frv_always_size_sections): Initialize pointer
to bfd_link_hash_entry passed by reference to
_bfd_generic_link_add_one_symbol.
2004-01-30 21:11:37 +00:00
H.J. Lu
838e70c548 2004-01-25 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_relocate_section): Disallow imm
	relocations against dynamic symbols.
2004-01-26 20:32:08 +00:00
Daniel Jacobowitz
4f199be3eb * elf32-arm.h (elf32_arm_check_relocs): Revert part of 2004-01-13
change.
2004-01-23 16:51:48 +00:00
Nick Clifton
28d39d1a3a Stop indexed move byte instructions from being relaxed. 2004-01-21 11:17:53 +00:00
Danny Smith
66bed356fc * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Don't remove
IMAGE_SCN_MEM_WRITE flag from .text section if WP_TEXT
	flag has been cleared.
2004-01-20 21:04:19 +00:00
Kazu Hirata
7e89635aac * coff-h8300.c: Add and adjust comments about relaxation.
* elf32-h8300.c: Likewise.
2004-01-19 17:02:45 +00:00
Kazu Hirata
e804e83606 * coff-h8300.c: Fix comment typos.
* elf32-h8300.c: Likewise.
2004-01-16 23:50:20 +00:00
Kazu Hirata
630a7b0ab7 * coff-h8300.c: Add comments about relaxation.
* elf32-h8300.c: Likewise.
2004-01-16 23:35:49 +00:00
Maciej W. Rozycki
f8b7303064 * gettext.m4: Quote names of macros to be defined by AC_DEFUN
throughout.

* acinclude.m4: Quote names of macros to be defined by AC_DEFUN
throughout.
* aclocal.m4: Regenerate.
* configure: Regenerate.
2004-01-14 13:41:37 +00:00
Ian Lance Taylor
32159579f0 * elf64-mips.c (mips_elf64_slurp_one_reloc_table): Call
mips_elf64_rtype_to_howto instead of using howto_table.

	* gas/mips/mips16-64.d: New test.
	* gas/mips/mips.exp: Run it.
2004-01-14 03:06:02 +00:00
Daniel Jacobowitz
c84cd8eead * elf32-arm.h (elf32_arm_final_link_relocate): Check that we created
the .plt section.
	(elf32_arm_check_relocs): Don't increment the PLT refcount for
	relocs which would not use the PLT.
2004-01-13 21:09:34 +00:00
Alan Modra
680a337845 * elf64-ppc.c (ppc64_elf_check_relocs): Ignore !SEC_ALLOC relocs.
(ppc64_elf_gc_sweep_hook): Likewise.
	(ppc64_elf_size_dynamic_sections): Test for .plt directly.
2004-01-13 00:31:07 +00:00
Nick Clifton
faca21e56e oops - add changeog entry for previous delta 2004-01-12 15:04:05 +00:00
Alan Modra
818a27acd6 * dwarf2.c: Convert to C90, remove unneeded casts and prototypes. 2004-01-12 05:34:16 +00:00
Kazu Hirata
96ef141947 * elf32-h8300.c: Fix formatting. 2004-01-11 08:05:10 +00:00
Kazu Hirata
babfd660dd * elf32-cris.c (cris_elf_gc_sweep_hook): Return early if no
dynamic object is present.  Declare r_symndx and h in an inner
	scope.
	* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
2004-01-11 07:40:24 +00:00
Daniel Jacobowitz
7359ea6525 * elf32-arm.h (struct elf32_arm_relocs_copied): Remove pc_count.
(elf32_arm_copy_indirect_symbol): Don't copy pc_count.
	(elf32_arm_final_link_relocate): Handle PLT32 and PC24 relocs
	identically.  Do not emit PC24 relocations for shared libraries.
	(elf32_arm_gc_sweep_hook): Handle PLT32 and PC24 relocs
	identically.  Don't adjust pc_count.
	(elf32_arm_check_relocs): Handle PLT32 and PC24 relocs identically.
	Set ELF_LINK_HASH_NEEDS_PLT for both.  Don't adjust pc_count; don't
	adjust count for branch relocations.
	(allocate_dynrelocs): Correct typo in call to
	WILL_CALL_FINISH_DYNAMIC_SYMBOL.  Never allocate space for
	PC24 or PLT32 relocs when linking.
2004-01-09 16:53:45 +00:00
Nick Clifton
44e8895283 Remainder of fixes for ARM WINCE support 2004-01-09 13:59:55 +00:00
Nick Clifton
1e7fef1d44 (coff_arm_relocate_section): Do not alter relocs that are not partial_inplace
during a relocatable link.
2004-01-08 16:46:56 +00:00
Kazu Hirata
4f075348c0 * elf32-m68k.c (elf_m68k_gc_sweep_hook): Terminate early
if no dynamic object is present.  Declare r_symndx and h in an
	inner scope.
2004-01-08 11:01:37 +00:00
H.J. Lu
de0d9f330b 2004-01-07 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_relax_section): Don't install
	trampoline if it is known out of range.
2004-01-07 21:34:24 +00:00
Alexandre Oliva
5153284539 2003-12-17 Alexandre Oliva <aoliva@redhat.com>
* elf32-frv.c (_frv_osec_readonly_p): New.
(_frv_emit_got_relocs_plt_entries): Don't emit rofixup for
undefweak symbol.
(_frv_count_got_plt_entries): Adjust expected count accordingly.
(elf32_frv_relocate_section): Likewise.  Error out if attempting
to emit rofixups or dynamic relocs in read-only segments.  Use
_bfd_elf_section_offset to adjust r_offsets in rofixups and
dynamic relocations.
2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_relocate_section): Compute dynamic
relocations or fixups involving merged sections correctly.  Avoid
crash when undefined symbol is referenced by R_FRV_32 or
R_FRV_FUNCDESC_VALUE.
2003-12-02  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_relocate_section): Add output_offset of
input section holding local symbol to addend of R_FRV_32 or
R_FRV_FUNCDESC_VALUE dynamic relocation.
2003-11-27  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_modify_segment_map): Add link info arg.
(elf32_frv_always_size_sections): Don't store pointer to
__stacksize symbol in sec_info.
(elf32_frv_modify_segment_map): Look it up here.
2003-11-26  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Emit the address
of the lazy PLT entry, not only its offset, as the low word of a
function descriptor.
2003-11-10  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_always_size_sections): Define __stacksize
if a hash table entry already exists but is not a definition.
2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (frv_elf_link_hash_table_create): Use bfd_zalloc.
(_frv_add_rofixup): Don't inline.
(_frv_emit_got_relocs_plt_entries): Use NULL as funcdesc address
for undefweak symbols.
(elf32_frv_relocate_section): Avoid crash while computing
relocation when linking with shared library.  Only emit rofixups
and dynamic relocations for alloc&load sections.  Mark binaries
with inter-segment relocations for relocation as a unit.
(_frv_create_got_section): Rename .rofixup.got to .rofixup.
(DEFAULT_STACK_SIZE): New.
(_frv_count_got_plt_entries): Fix thinko in deciding whether to
emit rofixups or dynamic relocs when linking dynamic non-PIE
executables.
(elf32_frv_size_dynamic_sections): Generate rofixup on PIEs and
shared libs too.  Reserve the last entry for the GOT pointer.
(elf32_frv_finish_dynamic_sections): Emit it.
(elf32_frv_always_size_sections): New.
(elf32_frv_modify_segment_map): New.
(elf32_frv_check_relocs): Reserve relocs32 space only in ALLOC
sections.
(frv_elf_merge_private_bfd_data): Clear PIC bit if FDPIC is set.
(frv_elf_print_private_bfd_data): Handle FDPIC and LIBPIC.
(elf_backend_always_size_sections): New.
(elf_backend_modify_segment_map): New.
2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
* config.bfd: Added frv-*-*linux*.
* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Use idx 0 for
ABS section, instead of crashing.
(elf32_frv_relocate_section): Don't crash before warning about
different segments in non-PIC relocation.
2003-10-17  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_relocate_section): Don't warn on LABEL24
relocs to undefweak symbols.
(elf32_frv_relocate_section): Ditto for undefined symbols.
2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_create_dynamic_sections): Make sure
gotfixup section was created.
2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_howto_table): Change GOT12,
FUNCDESC_GOT12, GOTOFF12 and FUNCDESC_GOTOFF12 to
complain_overflow_signed.
* elf32-frv.c (_frv_add_rofixup): Do not error out if contents
have not been allocated.
(_frv_emit_got_relocs_plt_entries): Return non-void.  Assert
privfd only if dynamic sections were created.
(elf32_frv_relocate_section): Compute gprel_segment, and use it
for GPREL relocs.  When linking relocatable FDPIC executables,
emit warnings for relocations that would be illegal on PIE or
shared libraries.  Emit rofixup for R_FRV_32 only if input object
is not FDPIC.
(_frv_create_got_section): Define _gp symbol in the rofixup
section.
(elf32_frv_finish_dynamic_sections): If rofixups needed but
dynamic sections missing, error out requesting -melf32frvfd.
2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Rearrange
computation of addends from section and global or local symbol
value.  Change return type to bfd_boolean, and return a failure if
a dynamic FUNCDESC or FUNCDESC_VALUE relocation that requires a
nonzero addend is required.
(elf32_frv_relocate_section): Likewise.  Print error for
unsupported nonzero addends.
2003-09-18  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (FRV_SYM_LOCAL): In the absence of dynamic sections,
force everything local.
(_frv_emit_got_relocs_plt_entries): Cope with NULL sec.
* elf32-frv.c (struct frv_elf_link_hash_table): Added sgotfixup.
(frv_gotfixup_section): New.
(FRV_SYM_LOCAL): Accept undefweak and local common symbols.
(struct frv_pic_relocs_info): Split relocs into relocs32, relocsfd
and relocsfdv.
(_frv_add_rofixup): New.
(_frv_emit_got_relocs_plt_entries): Generate fixups for non-PIE
fdpic executables.  Use FRV_SYM_LOCAL more widely to simplify and
improve some ugly conditions.
(elf32_frv_relocate_section): Likewise.  Reject inter-segment
relocations in fdpic.
(_frv_create_got_section): Create .rofixup.got section.
(struct _frv_dynamic_got_info): Added fixups.
(_frv_count_got_plt_entries): Account in-GOT relocations into
relocs32, relocsfd and relocsfdv.  Account them into relocs or
fixups, as appropriate.
(elf32_frv_size_dynamic_sections): Size rofixup section.  Simplify
sizing of gotrel.
(elf32_frv_finish_dynamic_sections): Verify that the right number
of relocations and fixups was generated.
(elf32_frv_check_relocs): Compute relocs32, relocsfd and
relocsfdv.
* elf32-frv.c (FRV_SYM_LOCAL): New macro, used instead of
SYMBOL_CALLS_LOCAL and SYMBOL_REFERENCES_LOCAL.
(FRV_FUNCDESC_LOCAL): New macro, used to decide whether a function
descriptor of a (formerly-)global symbol is local.
(struct frv_pic_relocs_info): Adjust comments.
(_frv_emit_got_relocs_plt_entries): Adjust.
(elf32_frv_relocate_section): Likewise.
(_frv_count_got_plt_entries): Likewise.
* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Don't add global
symbol's value to addend in the common preamble.  Decay dynamic
symbols to section+offset if they bind or call locally, for GOT
and FUNCDESC_VALUE, respectively.
(elf32_frv_relocate_section): Likewise.
(elf32_frv_check_relocs): Don't register as dynamic symbols of
internal or hidden visibility.
2003-09-17  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Get addend as
argument, so as to not call _bfd_elf_rel_local_sym to compute it.
(elf32_frv_relocate_section): Pass relocation addend in.  Use
original relocation addend to look up the got relocs/plt entries
table.  Do not call _bfd_elf_rel_local_sym.  Don't error out when
processing relocations that reference .scommon symbols.
2003-09-15  Alexandre Oliva  <aoliva@redhat.com>
Introduce support for dynamic linking.
* elf32-frv.c (R_FRV_FUNCDESC_VALUE): Mark it as 64 bits.
(elf32_frv_rel_32_howto, elf32_frv_rel_funcdesc_howto,
elf32_frv_rel_funcdesc_value_howto): New REL descriptors.
(frv_reloc_type_lookup): Return REL howtos for executables and
dynamic libraries.
(frv_info_to_howto_rel): New.
(struct frv_elf_link_hash_table): New.
(frv_hash_table, frv_got_section, frv_gotrel_section,
frv_plt_section, frv_pltrel_section, frv_relocs_info,
frv_got_initial_offset, frv_plt_initial_offset): New macros.
(frv_elf_link_hash_table_create): New.
(struct frv_pic_relocs_info): New.
(frv_pic_relocs_info_hash, frv_pic_relocs_info_eq): New.
(frv_pic_relocs_info_find): New.
(frv_pic_relocs_info_for_global, frv_pic_relocs_info_for_local):
New.
(FRV_LZPLT_BLOCK_SIZE, FRV_LZPLT_RESOLVE_LOC): New.
(_frv_add_dyn_reloc, _frv_osec_to_segment): New.
(_frv_emit_got_relocs_plt_entries): New.
(elf32_frv_relocate_section): Add support for dynamic linking.
Handle new relocations.
(_frv_create_got_section): New.
(elf32_frv_create_dynamic_sections): New.
(ELF_DYNAMIC_INTERPRETER): New.
(struct _frv_dynamic_got_info): New.
(_frv_count_got_plt_entries): New.
(struct _frv_dynamic_got_plt_info): New.
(_frv_compute_got_alloc_data): New.
(_frv_get_got_entry, _frv_get_fd_entry): New.
(_frv_assign_got_entries, _frv_assign_plt_entries): New.
(_frv_resolve_final_relocs_info): New.
(elf32_frv_size_dynamic_sections): New.
(elf32_frv_finish_dynamic_sections): New.
(elf32_frv_adjust_dynamic_symbol): New.
(elf32_frv_finish_dynamic_symbol): New.
(elf32_frv_check_relocs): Handle new relocs.  Explain how the
whole thing works.
(elf_info_to_howto_rel): Define.
(bfd_elf32_bfd_link_hash_table_create): Define.
(elf_backend_create_dynamic_sections): Define.
(elf_backend_adjust_dynamic_symbol): Define.
(elf_backend_size_dynamic_sections): Define.
(elf_backend_finish_dynamic_symbol): Define.
(elf_backend_finish_dynamic_sections): Define.
(elf_backend_want_got_sym): Define.
(elf_backend_got_header_size): Define.
(elf_backend_want_got_plt): Define.
(elf_backend_plt_readonly): Define.
(elf_backend_want_plt_sym): Define.
(elf_backend_plt_header_size): Define.
(elf_backend_may_use_rel_p): Define.
(elf_backend_may_use_rela_p): Define.
(elf_backend_default_use_rela_p): Define.
2003-08-08  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (R_FRV_FUNCDESC_VALUE, R_FRV_FUNCDESC_GOTOFF12,
R_FRV_FUNCDESC_GOTOFFHI, R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12,
R_FRV_GOTOFFHI, R_FRV_GOTOFFLO): New.
(frv_reloc_map): Map the corresponding BFD relocs to them.
(frv_reloc_type_lookup): ... and back to BFD relocs.
* reloc.c: New relocs.
* bfd-in2.h, libbfd.h: Rebuilt.
2003-08-04  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
R_FRV_FUNCDESC_GOTLO): New.
(frv_reloc_map): Map the corresponding BFD relocs to them.
(frv_reloc_type_lookup): ... and back to BFD relocs.
* reloc.c: New relocs.
* bfd-in2.h, libbfd.h: Rebuilt.
2004-01-06 19:18:59 +00:00
Maciej W. Rozycki
4301eeb1c7 * elf32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
targets to support pages of up to 64kB.
(elf32_bed): Redefine to get a separate backend data structure for
traditional targets.
* elf64-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
targets to support pages of up to 64kB.
(elf64_bed): Redefine to get a separate backend data structure for
traditional targets.
* elfn32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
targets to support pages of up to 64kB.
(elf32_bed): Redefine to get a separate backend data structure for
traditional targets.
2004-01-05 22:09:38 +00:00
Mark Kettenis
0647ed71ac * elf32-sparc.c (elf32_sparc_grok_psinfo): New function. 2004-01-04 09:24:27 +00:00
Nick Clifton
61adc1a4d5 Add support for FreeBSD cores 2004-01-02 17:39:51 +00:00
Nick Clifton
b50c15dce9 Add m68k-uclinux target 2004-01-02 16:37:12 +00:00
Alan Modra
c9e214e571 Split ChangeLog files. 2004-01-02 11:16:21 +00:00
Alan Modra
2627de8318 * elflink.h (elf_gc_sections): Warn when gc-sections option is ignored.
* elf32-h8300.c (elf32_h8_gc_mark_hook): New function.
	(elf32_h8_gc_sweep_hook): New function.
	(elf_backend_gc_mark_hook): Define.
	(elf_backend_gc_sweep_hook): Define.
	(elf_backend_can_gc_sections): Define.
2004-01-01 10:01:45 +00:00
Nick Clifton
6edf0760c5 Add support for m32r-linux target, including a RELA ABI and PIC. 2003-12-19 11:44:01 +00:00
Nick Clifton
c4bf77942d Do not mark .reloc sections as containing debug info. 2003-12-19 10:01:59 +00:00
Richard Sandiford
30ac9238df bfd/
* elf32-mips.c (elf_mips_howto_table_rel): Replace all uses of
	mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.  Use
	_bfd_mips_elf_hi16_reloc for R_MIPS_HI16 and R_MIPS_GNU_REL_HI16,
	_bfd_mips_elf_lo16_reloc for R_MIPS_LO16 and R_MIPS_GNU_REL_LO16,
	and _bfd_mips_elf_got16_reloc for R_MIPS_GOT16.  Change rightshift
	to 16 for R_MIPS_HI16 and R_MIPS_GNU_REL_HI16.
	(mips_elf_generic_reloc, struct mips_hi16, mips_elf_hi16_reloc)
	(mips_elf_lo16_reloc, mips_elf_got16_reloc): Delete.
	(_bfd_mips_elf32_gprel16_reloc): Remove special case.
	(mips_elf_gprel32_reloc, mips32_64bit_reloc): Likewise.

	* elf64-mips.c (mips_elf64_howto_table_rel): Replace all uses of
	mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.  Use
	_bfd_mips_elf_hi16_reloc for R_MIPS_HI16, _bfd_mips_elf_lo16_reloc
	for R_MIPS_LO16 and _bfd_mips_elf_got16_reloc for R_MIPS_GOT16.
	Change R_MIPS_HI16's rightshift to 16.
	(mips_elf64_howto_table_rela): Replace all uses of
	mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.
	Use _bfd_mips_elf_generic_reloc for R_MIPS_GOT16 as well.
	(mips_elf64_hi16_reloc, mips_elf64_got16_reloc): Delete.
	(mips_elf64_shift6_reloc): Remove special case.  Use
	_bfd_mips_elf_generic_reloc instead of returning bfd_reloc_continue.

	* elfn32-mips.c (prev_reloc_section): Delete.
	(prev_reloc_address, prev_reloc_addend): Delete.
	(elf_mips_howto_table_rel, elf_mips_howto_table_rela): As for
	elf64-mips.c
	(GET_RELOC_ADDEND, SET_RELOC_ADDEND): Delete.
	(mips_elf_generic_reloc, struct mips_hi16, mips_elf_hi16_reloc)
	(mips_elf_lo16_reloc, mips_elf_got16_reloc): Delete.
	(mips_elf_gprel16_reloc): Delete use of GET_RELOC_ADDEND.
	(mips_elf_literal_reloc, mips_elf_gprel32_reloc): Likewise.
	(mips16_jump_reloc, mips16_gprel_reloc): Likewise.
	(mips_elf_shift6_reloc): Likewise.  Delete use of SET_RELOC_ADDEND.

	* elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp): Use
	_bfd_relocate_contents to install an in-place addend.
	(mips_hi16): New structure.
	(mips_hi16_list): Moved from elf32-mips.c.
	(_bfd_mips_elf_hi16_reloc, _bfd_mips_elf_got16_reloc): New functions.
	(_bfd_mips_elf_lo16_reloc, _bfd_mips_elf_generic_reloc): New functions.
	(mips_elf_calculate_relocation): Assume addend is unshifted.
	(_bfd_mips_elf_relocate_section): Don't apply the howto rightshift
	on top of the usual high-part shift.  Don't shift the addend right
	before calling mips_elf_calculate_relocation.

	* elfxx-mips.h (_bfd_mips_elf_hi16_reloc): Declare.
	(_bfd_mips_elf_got16_reloc, _bfd_mips_elf_lo16_reloc): Declare.
	(_bfd_mips_elf_generic_reloc): Declare.

gas/
	* config/tc-mips.c (mips_need_elf_addend_fixup): Delete.
	(md_apply_fix3): Remove bfd_install_relocation workarounds.
	(tc_gen_reloc): Likewise. Factor handling of pc-relative relocations
	and treat fx_addnumber as relative to the relocation address.

gas/testsuite/
	* gas/mips/mips16-jalx.d: Use -mabi=o64.
	* gas/mips/mips16.d: Likewise.
	* gas/mips/elf-rel17.[sd]: New test.
	* gas/mips/mips.exp: Run it.
2003-12-18 10:23:10 +00:00
Nick Clifton
87cc7031ac Only skip one instance of each prefix character, if they are present. 2003-12-16 11:10:42 +00:00
Nick Clifton
25c80428af Ensure that correct flags are set on known PE section types. 2003-12-15 11:50:11 +00:00
Nick Clifton
d0a5adde99 Updated Romanian translation 2003-12-12 20:42:51 +00:00
Alan Modra
ac7bbf74d3 * elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Check for
NULL dyn_h.
2003-12-12 14:11:58 +00:00
Nick Clifton
03394ac999 (INCLUDE_SECTION_IN_SEGMENT): Skip PT_GNU_STACK segments. 2003-12-11 18:10:19 +00:00
Richard Sandiford
9719ad4149 * elfxx-mips.h, elfxx-mips.c, cpu-mips.c: Convert prototypes.
Remove casts that were only needed for K&R compatibility.
2003-12-08 20:04:34 +00:00
Alan Modra
754021d045 * elf-bfd.h (struct elf_backend_data): Remove "bfd *" and add
"elflink_hash_entry *" param to elf_backend_link_output_symbol_hook.
	Add "elflink_hash_entry *" param to elf_backend_output_arch_syms.
	* elflink.h (elf_link_output_sym): Add "elflink_hash_entry *" param,
	and pass to output_symbol_hook.
	(elf_bfd_final_link): Adjust elf_link_output_sym calls.
	(elf_link_output_extsym): Likewise.
	(elf_link_input_bfd): Likewise.
	* elf32-sh64.c (sh64_elf_link_output_symbol_hook): Adjust.
	* elf32-v850.c (v850_elf_link_output_symbol_hook): Likewise.
	* elf64-mmix.c (mmix_elf_link_output_symbol_hook): Likewise.
	* elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_link_output_symbol_hook): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_link_output_symbol_hook): Likewise.
	* elf64-sparc.c (sparc64_elf_output_arch_syms): Likewise.
	* elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Likewise.
	Validate dynh->h against h.
	* elf64-ppc.c (struct ppc_link_hash_entry): Add adjust_done bitfield.
	(link_hash_newfunc): Init it.
	(adjust_opd_syms): New function.
	(ppc64_elf_edit_opd): Set adjust_done when global .opd sym adjusted.
	Set opd.adjust for all .opd relocs.  Call adjust_opd_syms.
	(ppc64_elf_tls_optimize): Adjust possible .opd sym values here.
	(ppc64_elf_relocate_section): Also adjust syms not a multiple of 24.
	(ppc64_elf_output_symbol_hook): New function.
	(elf_backend_link_output_symbol_hook): Define.
2003-12-08 13:05:11 +00:00
Richard Sandiford
11a2be4ddc * elf32-mips.c, elfn32-mips.c, elf64-mips.c: Convert prototypes.
Remove casts that were only needed for K&R compatibility.
2003-12-07 21:24:28 +00:00
Nick Clifton
d3793eaa60 Fixes for use of ARM_26D reloc in arm-wince toolchain. 2003-12-05 11:30:18 +00:00
H.J. Lu
a070c2b16c 2003-12-04 H.J. Lu <hongjiu.lu@intel.com>
* elf32-ppc.c (ppc_elf_relax_section): Don't check relax_finalizing.
2003-12-04 22:48:20 +00:00
H.J. Lu
d9c458fcc1 bfd/
2003-12-04  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Use the
	need_relax_finalize field in link_info instead of
	relax_finalizing to check if the relax finalize pass is being
	done.

include/

2003-12-04  H.J. Lu  <hongjiu.lu@intel.com>

	* bfdlink.h (bfd_link_info): Change relax_finalizing to
	need_relax_finalize.

ld/

2003-12-04  H.J. Lu  <hongjiu.lu@intel.com>

	* emultempl/ia64elf.em (gld${EMULATION_NAME}_after_parse): Set
	link_info.need_relax_finalize to TRUE.

	* ldlang.c (lang_process): Use link_info.need_relax_finalize
	instead of link_info.relax_finalizing.
	* ldmain.c (main): Likewise.
2003-12-04 22:43:36 +00:00
Nick Clifton
d21356d8ba Change ARM26* to ARM_26* in comments to match definitions.
Replace hard-coded constants with appropriate definitions (ARM_26*).
2003-12-04 17:46:24 +00:00
Alan Modra
1a101a4220 * coff-i860.c (coff_i860_reloc_nyi): Return bfd_reloc_not_supported.
* elf-m10300.c (elf32_mn10300_finish_hash_table_entry): Warning fixes.
	(mn10300_elf_relax_section): Likewise.
	* nlm32-alpha.c (ONES): Define.
	(nlm32_alpha_howto_table): Use it to avoid warnings.
2003-12-04 12:08:42 +00:00
Alan Modra
66becf3266 * elf32-i386.c (elf_i386_object_p): Delete.
(elf_backend_object_p): Don't define.
	* elf32-s390.c (elf_s390_object_p): No need to alloc tdata here.
	* elf32-sh.c (sh_elf_object_p): Likewise.
	* elf32-sparc.c (elf32_sparc_object_p): Likewise.
	* elf64-alpha.c (elf64_alpha_object_p): Likewise.
	* elf64-s390.c (elf_s390_object_p): Likewise.
	* elf64-x86-64.c (elf64_x86_64_elf_object_p): Likewise.
2003-12-04 03:03:27 +00:00
Nick Clifton
8884595866 Add support for the M32R2 processor. 2003-12-03 17:38:48 +00:00
Nick Clifton
f8fc344381 Add vax-linux-gnu target 2003-12-03 15:07:17 +00:00
Alan Modra
6ad841a183 Rename bfd_link_hash_entry field "next" -> "und_next". 2003-12-02 23:00:00 +00:00
Nick Clifton
f9d1e83fed Add Romanian translation for bfd. 2003-12-02 10:49:10 +00:00
Alan Modra
9fa06c65f0 make "dep-am" 2003-12-02 08:14:35 +00:00
Nick Clifton
771e446b94 Set page_size to 1 instead of 0 in the case file alignment value is zero. 2003-12-01 18:46:21 +00:00
Kazu Hirata
1c3bed7b30 * coff-rs6000.c: Remove ARGSUSED and VARARGS.
* coff64-rs6000.c: Likewise.
	* coffcode.h: Likewise.
	* elf32-vax.c: Likewise.
	* hash.c: Likewise.
	* hppabsd-core.c: Likewise.
	* hpux-core.c: Likewise.
	* ihex.c: Likewise.
	* netbsd-core.c: Likewise.
	* osf-core.c: Likewise.
	* pdp11.c: Likewise.
	* ptrace-core.c: Likewise.
	* sco5-core.c: Likewise.
	* section.c: Likewise.
	* sunos.c: Likewise.
	* trad-core.c: Likewise.
2003-12-01 06:33:01 +00:00
Alan Modra
0eddce27a9 * elf-bfd.h (is_elf_hash_table): Take hash tab rather than info arg.
* elf.c (_bfd_elf_merge_sections): Adjust to suit.
	(_bfd_elf_link_just_syms): Likewise.
	(bfd_elf_get_needed_list): Likewise.
	(bfd_elf_get_runpath_list): Likewise.
	(_bfd_elf_link_hash_copy_indirect): Remove unneeded parens.
	* elf32-hppa.c (elf32_hppa_setup_section_lists): Don't check hash tab
	creator flavour.
	(elf32_hppa_set_gp): Look up output sections rather than using htab.
	* elf32-i960.c: Comment fix.  Formatting.
	* elf32-m32r.c (m32r_elf_add_symbol_hook): Use is_elf_hash_table
	rather than testing creator flavour.
	* elf32-sh64.c (sh64_elf_add_symbol_hook): Likewise.
	* elf64-sh64.c (sh64_elf64_add_symbol_hook): Likewise.
	* elflink.c (_bfd_elf_link_create_dynamic_sections): Adjust for
	is_elf_hash_table change.  Remove redundant test.
	(bfd_elf_record_link_assignment): Use is_elf_hash_table rather than
	testing creator flavour.
	(elf_link_record_local_dynamic_symbol): Adjust for is_elf_hash_table.
	(_bfd_elf_fix_symbol_flags): Likewise.
	(_bfd_elf_adjust_dynamic_symbol): Likewise.
	* elflink.h (elf_link_add_object_symbols): Likewise.  Remove redundant
	checks.  Use is_elf_hash_table rather than testing creator flavour.
	Use hash_table throughout in place of info->hash.
	(elf_add_dynamic_entry): Adjust for is_elf_hash_table change.
	(NAME(bfd_elf,size_dynamic_sections)): Likewise.  Remove redundant
	check.
	(elf_bfd_final_link): Adjust for is_elf_hash_table change.
	(elf_link_check_versioned_symbol): Use is_elf_hash_table rather than
	testing creator flavour.
	(elf_gc_sections): Add is_elf_hash_table check.
	(elf_gc_common_finalize_got_offsets): Likewise.
	(elf_bfd_discard_info): Adjust for is_elf_hash_table change.  Remove
	redundant check.
	* elfxx-ia64.c (elfNN_ia64_relax_section): Use is_elf_hash_table
	rather than testing creator flavour.
2003-12-01 06:28:24 +00:00
Kazu Hirata
7dee875eb1 * ChangeLog: Fix typos.
* ecoff.c: Fix comment typos.
	* ecofflink.c: Likewise.
	* format.c: Likewise.
	* hp300hpux.c: Likewise.
	* i386linux.c: Likewise.
	* ieee.c: Likewise.
	* m68klinux.c: Likewise.
	* mach-o.h: Likewise.
	* mipsbsd.c: Likewise.
	* oasys.c: Likewise.
	* opncls.c: Likewise.
	* peXXigen.c: Likewise.
	* reloc.c: Likewise.
	* reloc16.c: Likewise.
	* section.c: Likewise.
	* simple.c: Likewise.
	* som.c: Likewise.
	* som.h: Likewise.
	* sparclinux.c: Likewise.
	* srec.c: Likewise.
	* syms.c: Likewise.
	* targets.c: Likewise.
	* tekhex.c: Likewise.
	* versados.c: Likewise.
	* vms-gsd.c: Likewise.
	* vms-hdr.c: Likewise.
	* vms-misc.c: Likewise.
	* xcofflink.c: Likewise.
	* xsym.h: Likewise.
	* bfd-in2.h: Regenerate.
2003-11-30 18:40:41 +00:00
Christian Groessler
552585edcb * cpu-z8k.c: Convert to ISO C90.
* coff-z8k.c: Likewise.
2003-11-28 20:07:44 +00:00
Alexandre Oliva
c84fca4d18 * elf-bfd.h (elf_backend_data::elf_backend_modify_segment_map):
Add link info argument.
* elf32-i370.c (elf_backend_modify_segment_map): Likewise.
* elf32-ppc.c (ppc_elf_modify_segment_map): Likewise.
* elf32-xtensa.c (elf_xtensa_modify_segment_map): Likewise.
* elf64-hppa.c (elf64_hppa_modify_segment_map): Likewise.
* elfxx-ia64.c (elfNN_ia64_modify_segment_map): Likewise.
* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Likewise.
* elfxx-mips.h (_bfd_mips_elf_modify_segment_map): Likewise.
* elf.c (assign_file_positions_except_relocs,
assign_file_positions_for_segments): Likewise.  Adjust calls.
2003-11-27 16:43:25 +00:00
Mark Kettenis
7720ba9f5c * elf.c (elfcore_grok_netbsd_procinfo): Make a pseudosection out
of the note.
2003-11-27 12:28:35 +00:00
Richard Sandiford
0626d45128 * elfxx-mips.c (mips_elf_set_global_got_offset): Don't set no_fn_stub.
(mips_elf_set_no_stub): New function.
	(mips_elf_multi_got): Call it.
	(_bfd_mips_elf_finish_dynamic_symbol): If a relocation is needed for
	a secondary GOT entry, create an R_MIPS_32 or R_MIPS_64 relocation and
	use mips_elf_create_dynamic_relocation to deal with any compatibility
	issues.  Store the adjusted addend in the GOT slot.
2003-11-26 20:58:45 +00:00
Nick Clifton
955a76eb5f Skip N_EXCL stabs when procesing N_BINCL stabs. 2003-11-25 11:59:57 +00:00
Alan Modra
ee7de3e631 * elf64-ppc.c (ppc_type_of_stub): Disallow stubs other than
ppc_stub_plt_call to symbols defined in shared libs.
2003-11-25 02:14:25 +00:00
Jakub Jelinek
c6585bbb10 2003-11-22 Jakub Jelinek <jakub@redhat.com>
* elf-bfd.h (ELF_LINK_POINTER_EQUALITY_NEEDED): Define new flag.
	* elf.c (_bfd_elf_link_hash_copy_indirect): Copy it.
	* elf32-i386.c (elf_i386_copy_indirect_symbol): Likewise.
	(elf_i386_check_relocs): Set it.
	(elf_i386_finish_dynamic_symbol): If it is not set,
	clear st_value of SHN_UNDEF symbol.
2003-11-22 10:45:44 +00:00
Jim Blandy
43dd9340d4 * cpu-powerpc.c (powerpc_compatible): Any ISA in the PowerPC
family is a superset of <bfd_arch_rs6000,bfd_mach_rs6k>.
2003-11-20 18:42:21 +00:00
Martin Schwidefsky
90ced0dda1 * elf32-s390.c (elf_s390_relocate_section): Don't recalculate symbol
section for reloc output and subtract the output section's address
	from the addend when converting a relocation into one against a
	section symbol.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
2003-11-20 09:54:07 +00:00
Jim Wilson
55936540a7 Fix -pie core dump with .rela.opd section.
bfd/ChangeLog
	* elfxx-ia64.c (get_fptr): For fptr_rel, use dynobj not abfd.
	(elfNN_ia64_size_dynamic_sections): When stripping sections, check
	for ia64_info->rel_fptr_sec.
ld/ChangeLog
	* emulparams/elf64_ia64.sh (OTHER_PLT_RELOC_SECTIONS): Include
	.rela.opd if -pie.
2003-11-19 01:06:13 +00:00
Alan Modra
082c50f897 * elf64-ppc.c (toc_adjusting_stub_needed): Exit early if section
size is zero.
2003-11-18 04:14:15 +00:00
Daniel Jacobowitz
3addb0a9e8 * elf.c (_bfd_elf_link_hash_copy_indirect): Copy
ELF_LINK_HASH_NEEDS_PLT.  Fix formatting.
	* elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Likewise.
	* elf32-i386.c (elf_i386_copy_indirect_symbol): Likewise.
	* elf32-ppc.c (ppc_elf_copy_indirect_symbol): Likewise.
	* elf32-s390.c (elf_s390_copy_indirect_symbol): Likewise.
	* elf32-sh.c (sh_elf_copy_indirect_symbol): Likewise.
	* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise.
	* elf64-s390.c (elf_s390_copy_indirect_symbol): Likewise.
	* elf64-x86-64.c (elf64_x86_64_copy_indirect_symbol): Likewise.
	* elfxx-ia64.c (elfNN_ia64_hash_copy_indirect): Likewise.
	* elf32-xtensa.c (elf_xtensa_copy_indirect_symbol): Remove.
	(elf_backend_copy_indirect_symbol): Don't define.
2003-11-17 21:31:11 +00:00
Daniel Jacobowitz
caec41ff60 * elfxx-mips.c (mips_elf_merge_gots): Weaken assert for local
GOT entries.
2003-11-14 16:05:13 +00:00
Martin Schwidefsky
2eaa0d4f9f Fix typo in ChangeLog entry: s/R_390_RELAVITE/R_390_RELATIVE/. 2003-11-14 09:25:00 +00:00
Martin Schwidefsky
b5727d755e * elf32-s390.c (elf_s390_relocate_section): Only convert R_390_32
to R_390_RELAVITE. Convert the other relocations against local
	symbols to relocations against the start of the section.
	* elf64-s390.c (elf_s390_relocate_section): Only convert R_390_64
	to R_390_RELAVITE. Convert the other relocations against local
	symbols to relocations against the start of the section.
2003-11-13 15:56:50 +00:00
Nick Clifton
893c4fe299 Fix decision about when a .interp section should exist 2003-11-11 13:32:38 +00:00
Nick Clifton
ca6dee30a3 Add initial support for TLS sections in PE format files. 2003-11-10 17:04:55 +00:00
Alan Modra
9abc968f91 * elf32-ppc.c (ppc_elf_install_value): Delete.
(shared_stub_entry, stub_entry): Make them arrays of ints.
	Remove initial branch.
	(ppc_elf_relax_section): Write one branch around all trampolines
	instead.  Correct bogus R_PPC_PLTREL24 handling.  Correct
	branch range check.  Only use shared_stub_entry when shared.
	Test that branches can reach stubs.  Write trampolines out at
	end so that just one realloc is used.  Handle little-endian
	mode.  Move relevant code from ppc_elf_install_value to here.
	(ppc_elf_relocate_section): Move code handling RELAX32 from
	ppc_elf_install_value to here.
2003-11-06 14:30:11 +00:00
Alan Modra
f31a141e8d * elf32-ppc.c (ppc_elf_howto_raw); Add entry for R_PPC_RELAX32PC.
(ppc_elf_install_value): Handle R_PPC_RELAX32PC.  Merge duplicate
	cases.
	(shared_stub_entry): Correct opcode.
	(ppc_elf_relax_section): Generate R_PPC_RELAX32PC relocs.
	(ppc_elf_relocate_section): Handle them.
2003-11-06 02:58:40 +00:00
Alan Modra
8517fae7a5 * elf.c (_bfd_elf_rela_local_sym): Accept asection **, and return
updated section in case of merged section.
	* elf-bfd.h (_bfd_elf_rela_local_sym): Update declaration.
	* elf-hppa.h (elf_hppa_relocate_section): Adjust call.
	* elf-m10200.c (mn10200_elf_relocate_section): Likewise.
	* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
	* elf32-arm.h (elf32_arm_relocate_section): Likewise.
	* elf32-avr.c (elf32_avr_relocate_section): Likewise.
	* elf32-cris.c (cris_elf_relocate_section): Likewise.
	* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
	* elf32-frv.c (elf32_frv_relocate_section): Likewise.
	* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
	* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
	* elf32-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-i860.c (elf32_i860_relocate_section): Likewise.
	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
	* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
	* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (elf_s390_relocate_section): Likewise.
	* elf32-sh.c (sh_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf32-v850.c (v850_elf_relocate_section) Likewise.
	* elf32-vax.c (elf_vax_relocate_section): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
	* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
	* elf64-mmix.c (mmix_elf_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.

	* elf32-cris.c (cris_elf_relocate_section): Don't recalculate symbol
	section for reloc output.
	* elf32-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf32-vax.c (elf_vax_relocate_section): Likewise.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.

	* elf32-ppc.c (ppc_elf_relocate_section): Don't recalculate everything
	for R_PPC_RELAX32 reloc.  Don't bother checking ppc_elf_install_value
	return value.
	* elf64-ppc.c (ppc64_elf_relocate_section <R_PPC64_TOC>): Sanity check
	sec->id.
2003-11-05 13:17:09 +00:00
Alan Modra
a2b0fe9d4d * elf32-d10v.c (extract_rel_addend, insert_rel_addend): New functions.
(elf32_d10v_relocate_section): Use them to handle -r reloc
	adjustments, and in place of _bfd_elf_rela_local_sym.
2003-11-05 01:23:55 +00:00
Alan Modra
d3ec2be8f5 * cpu-iq2000.c (arch_info_struct): Warning fix. 2003-11-04 23:58:06 +00:00
Alan Modra
4fc8051d33 * elf32-hppa.c (ELIMINATE_COPY_RELOCS): Define.
(elf32_hppa_copy_indirect_symbol): Don't copy NON_GOT_REF on
	weakdefs.
	(elf32_hppa_check_relocs): Use ELIMINATE_COPY_RELOCS.
	(elf32_hppa_adjust_dynamic_symbol): Likewise.  Copy weakdef
	NON_GOT_REF.
	(allocate_dynrelocs): Use ELIMINATE_COPY_RELOCS and
	SYMBOL_CALLS_LOCAL.  Discard relocs for undef weak syms with
	non-default visibility.
	(elf32_hppa_relocate_section): Use ELIMINATE_COPY_RELOCS and
	SYMBOL_CALLS_LOCAL.
2003-11-04 23:52:58 +00:00
Alan Modra
eac93a98e5 * aout-target.h, aoutf1.h, bfdio.c, bfdwin.c: Update copyright date.
* coff-apollo.c, coff-sparc.c, coff-w65.c, coff-we32k.c: Ditto.
	* coff-z8k.c, coffgen.c, cpu-frv.c, cpu-h8500.c, cpu-hppa.c: Ditto.
	* cpu-ia64-opc.c, cpu-m10300.c, cpu-mips.c, cpu-msp430.c: Ditto.
	* cpu-rs6000.c, cpu-z8k.c, efi-app-ia32.c, elf32-am33lin.c: Ditto.
	* gen-aout.c, hash.c, hp300hpux.c, init.c, mach-o.c: Ditto.
	* nlm-target.h, nlm.c, som.h, stabs.c, sysdep.h, xsym.h: Ditto.
2003-11-04 11:30:54 +00:00
Alan Modra
140fae3fce * elf-m10300.c (_bfd_mn10300_elf_create_got_section): Fix
"dereferencing type-punned pointer" warnings.
2003-11-04 10:45:54 +00:00
Alan Modra
0f867abe4a * aout-adobe.c (aout_adobe_set_section_contents): Constify location.
* aoutx.h (NAME(aout,set_section_contents)): Ditto.
	* bfd-in2.h: Regenerate.
	* binary.c (binary_set_section_contents): Ditto.
	* bout.c (b_out_set_section_contents): Ditto.
	* coff-tic54x.c (tic54x_set_section_contents): Ditto.
	* coffcode.h (coff_set_section_contents): Ditto.
	* ecoff.c (_bfd_ecoff_set_section_contents): Ditto.
	* elf-bfd.h (_bfd_elf_set_section_contents): Ditto.
	* elf.c (_bfd_elf_set_section_contents): Ditto.
	* elfxx-mips.c (_bfd_mips_elf_set_section_contents): Ditto.
	* elfxx-mips.h (_bfd_mips_elf_set_section_contents): Ditto.
	* i386msdos.c (msdos_set_section_contents): Ditto.
	* ieee.c (ieee_set_section_contents): Ditto.
	* ihex.c (ihex_set_section_contents): Ditto.
	* libaout.h (NAME(aout,set_section_contents)): Ditto.
	* libbfd-in.h (_bfd_nowrite_set_section_contents): Ditto.
	(_bfd_generic_set_section_contents): Ditto.
	* libbfd.h: Regenerate.
	* libbfd.c (_bfd_generic_set_section_contents): Ditto.
	* libecoff.h (_bfd_ecoff_set_section_contents): Ditto.
	* libnlm.h (nlmNAME(set_section_contents)): Ditto.
	(struct nlm_backend_data <nlm_mangle_relocs>): Ditto.
	* mmo.c (mmo_set_section_contents): Ditto.
	* nlm32-alpha.c (nlm_alpha_mangle_relocs): Ditto.
	* nlm32-i386.c (nlm_i386_mangle_relocs): Ditto.
	* nlm32-ppc.c (nlm_powerpc_mangle_relocs): Ditto.
	* nlm32-sparc.c (nlm_sparc_mangle_relocs): Ditto.
	* nlmcode.h (nlm_set_section_contents): Ditto.
	* oasys.c (oasys_set_section_contents): Ditto.
	* pdp11.c (NAME(aout,set_section_contents)): Ditto.
	* ppcboot.c (ppcboot_set_section_contents): Ditto.
	* srec.c (srec_set_section_contents): Ditto.
	* targets.c (BFD_JUMP_TABLE_WRITE <_bfd_set_section_contents>): Ditto.
	* tekhex.c (tekhex_set_section_contents): Ditto.
	(move_section_contents): Ditto.
	* versados.c (versados_set_section_contents): Ditto.
	* vms-misc.c (_bfd_save_vms_section): Ditto.
	* vms.c (vms_set_section_contents): Ditto.
	* vms.h (_bfd_save_vms_section): Ditto.
2003-11-04 10:41:52 +00:00
Alan Modra
63bc6f6c39 * elf64-ppc.c (ppc_size_one_stub): Size relbrlt. Accept info arg
rather than htab.
	(ppc64_elf_size_stubs): Adjust ppc_size_one_stub traversal.  Zero
	relbrlt size.
	(ppc64_elf_build_stubs): Allocate space for relbrlt.
2003-11-04 08:51:36 +00:00
Alan Modra
e1918d2387 * bfd-in.h (_bfd_elf_tls_setup): Declare.
* bfd-in2.h: Regenerate.
	* elf-bfd.h (struct elf_link_tls_segment): Delete.
	(struct elf_link_hash_table): Add tls_sec and tls_size.
	* elf.c (_bfd_elf_link_hash_table_init): Init tls_sec and tls_size.
	* elflink.c (_bfd_elf_tls_setup): New function.
	* elflink.h (struct elf_final_link_info): Remove first_tls_sec.
	(elf_bfd_final_link): Don't set first_tls_sec here.  Update code
	saving tls segment info, round segment size up.
	(elf_link_output_extsym): Adjust code using tls segment info.
	(elf_link_input_bfd): Likewise.
	* elf32-i386.c (dtpoff_base, tpoff): Likewise.
	* elf32-s390.c (dtpoff_base, tpoff): Likewise.
	* elf32-sh.c (dtpoff_base, tpoff): Likewise.
	* elf32-sparc.c (dtpoff_base, tpoff): Likewise.
	* elf64-s390.c (dtpoff_base, tpoff): Likewise.
	* elf64-x86-64.c (dtpoff_base, tpoff): Likewise.
	* elfxx-ia64.c (elfNN_ia64_tprel_base): Likewise.
	(elfNN_ia64_dtprel_base): Likewise.
	* elf64-alpha.c (alpha_get_dtprel_base): Likewise.
	(alpha_get_tprel_base): Likewise.
	(struct alpha_relax_info): Remove tls_segment.
	(elf64_alpha_relax_got_load): Adjust invocation of
	alpha_get_dtprel_base and alpha_get_tprel_base.
	(elf64_alpha_relax_tls_get_addr): Likewise.
	(elf64_alpha_relax_section): Likewise.
	(elf64_alpha_relocate_section): Likewise.
	(elf64_alpha_relax_find_tls_segment): Delete.
	* elf32-ppc.c (struct ppc_elf_link_hash_table): Remove tls_sec.
	(ppc_elf_tls_setup): Call _bfd_elf_tls_setup.  Return section.
	(ppc_elf_relocate_section): Adjust to use elf.tls_sec.
	* elf32-ppc.h (ppc_elf_tls_setup): Update.
	* elf64-ppc.c (struct ppc_link_hash_table): Remove tls_sec.
	(ppc64_elf_tls_setup): Call _bfd_elf_tls_setup.  Return section.
	(ppc64_elf_tls_optimize): Adjust to use elf.tls_sec.
	(ppc64_elf_relocate_section): Likewise.
	* elf64-ppc.h (ppc64_elf_tls_setup): Update.

	* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Call
	_bfd_elf_tls_setup.
2003-11-04 06:16:39 +00:00
Daniel Jacobowitz
6f2f2c9d16 * elf-bfd.h (struct elf_backend_data): Remove plt_header_size.
* elf-m10300.c (elf_backend_plt_header_size): Don't define.
	* elf32-arm.h (elf_backend_plt_header_size): Don't define.
	* elf32-cris.c (elf_backend_plt_header_size): Don't define.
	* elf32-i386.c (elf_backend_plt_header_size): Don't define.
	* elf32-mips.c (elf_backend_plt_header_size): Don't define.
	* elf32-ppc.c (elf_backend_plt_header_size): Don't define.
	* elf32-s390.c (elf_backend_plt_header_size): Don't define.
	* elf32-sh.c (elf_backend_plt_header_size): Don't define.
	* elf32-sparc.c (elf_backend_plt_header_size): Don't define.
	* elf64-alpha.c (elf_backend_plt_header_size): Don't define.
	* elf64-hppa.c (elf_backend_plt_header_size): Don't define.
	* elf64-mips.c (elf_backend_plt_header_size): Don't define.
	* elf64-ppc.c (elf_backend_plt_header_size): Don't define.
	* elf64-s390.c (elf_backend_plt_header_size): Don't define.
	* elf64-sh64.c (elf_backend_plt_header_size): Don't define.
	* elf64-sparc.c (elf_backend_plt_header_size): Don't define.
	* elf64-x86-64.c (elf_backend_plt_header_size): Don't define.
	* elfn32-mips.c (elf_backend_plt_header_size): Don't define.
	* elfxx-ia64.c (elf_backend_plt_header_size): Don't define.
	* elfxx-target.h (elf_backend_plt_header_size): Don't define
	or include in target initializer.
2003-11-03 15:17:40 +00:00
Andrew Cagney
8530209598 2003-11-03 Andrew Cagney <cagney@redhat.com>
* section.c (bfd_set_section_contents): Make the "location" buffer
	constant.
	* bfd-in2.h: Re-generate.

Index: gdb/ChangeLog
2003-11-03  Andrew Cagney  <cagney@redhat.com>

	* exec.c (xfer_memory): Eliminate xfer_fn.
2003-11-03 14:44:08 +00:00
Andrew Cagney
fc0a224429 Index: sim/frv/ChangeLog
2003-10-30  Andrew Cagney  <cagney@redhat.com>

	* traps.c: Replace "struct symbol_cache_entry" with "struct
	bfd_symbol".

Index: sim/d10v/ChangeLog
2003-10-30  Andrew Cagney  <cagney@redhat.com>

	* simops.c: Replace "struct symbol_cache_entry" with "struct
	bfd_symbol".

Index: sim/common/ChangeLog
2003-10-30  Andrew Cagney  <cagney@redhat.com>

	* sim-trace.c, sim-base.h: Replace "struct symbol_cache_entry"
	with "struct bfd_symbol".

Index: ld/ChangeLog
2003-10-30  Andrew Cagney  <cagney@redhat.com>

	* emultempl/pe.em, pe-dll.c: Replace "struct symbol_cache_entry"
	with "struct bfd_symbol".

Index: bfd/ChangeLog
2003-10-30  Andrew Cagney  <cagney@redhat.com>

	* syms.c: Replace "struct symbol_cache_entry" with "struct
	bfd_symbol".
	* vms.h, targets.c, section.c, reloc.c, peicode.h: Ditto.
	* mipsbsd.c, elf.c, linker.c, elf-bfd.h, ecoff.c: Ditto.
	* cpu-z8k.c, cpu-ns32k.c, cpu-h8500.c, bfd.c, bfd-in.h: Ditto.
	* bfd-in2.h: Re-generate.
2003-10-31 05:32:46 +00:00
Jakub Jelinek
0aa92b58af * elfxx-ia64.c: Include objalloc.h, hashtab.h.
(struct elfNN_ia64_local_hash_entry): Remove root. Add id and r_sym
	fields.
	(struct elfNN_ia64_local_hash_table): Remove.
	(struct elfNN_ia64_link_hash_table): Change loc_hash_table's type
	to htab_t.  Add loc_hash_memory field.
	(elfNN_ia64_local_hash_table_init, elfNN_ia64_new_loc_hash_entry):
	Removed.
	(elfNN_ia64_local_htab_hash, elfNN_ia64_local_htab_eq): New
	functions.
	(elfNN_ia64_hash_table_create): Use hashtab.h hashtable for
	loc_hash_table.  Initialize loc_hash_memory.
	(elfNN_ia64_hash_table_free): New function.
	(elfNN_ia64_local_hash_lookup): Remove.
	(elfNN_ia64_local_dyn_sym_thunk): Change into htab_traverse
	callback.
	(elfNN_ia64_dyn_sym_traverse): Use htab_traverse.
	(get_local_sym_hash): Use hashtab.h hashtable for loc_hash_table.
	(bfd_elfNN_bfd_link_hash_table_free): Define.
2003-10-30 14:41:37 +00:00
Alan Modra
68b6ddd08f * elflink.c (_bfd_elf_link_record_dynamic_symbol): Modify versioned
symbol string in place.
2003-10-30 14:13:50 +00:00
Nick Clifton
3f8b3ef37b Check the correct arch_info object's mach field: all PowerPC machines are
supersets of the original rs6000, but not later rs6000 machines.
2003-10-30 12:01:08 +00:00
Alan Modra
482e2e3726 * dwarf2.c (struct attribute): Delete "unsnd", "snd" and "addr".
Add "val" and "sval" fields.
	(DW_STRING, DW_UNSND, DW_BLOCK, DW_SND, DW_ADDR): Delete.
	(read_attribute_value): Expand and adjust DW_* occurrences.
	(scan_unit_for_functions, parse_comp_unit): Likewise.
2003-10-30 09:50:02 +00:00
Nick Clifton
257e20bc32 Remove separate vxworks stanza; merge withother common ELF triples. 2003-10-30 09:05:14 +00:00
Alan Modra
ddb2b44229 * merge.c (struct sec_merge_sec_info): Update comment.
(struct sec_merge_hash_entry): Remove entsize.
	(sec_merge_hash_lookup): Only adjust alignment when creating.
	(sec_merge_emit): Remove register keyword.
	(cmplengthentry, last4_eq, last_eq): Delete.
	(strrevcmp, strrevcmp_align, is_suffix): New.
	(merge_strings): Use them to implement fast suffix merging.
	* elf-strtab.c (struct elf_strtab_hash_entry): Update comments.
	Make "len" signed.
	(_bfd_elf_strtab_add): Lose on >2G strings.
	(_bfd_elf_strtab_emit): Don't emit strings with len < 0.
	(cmplengthentry, last4_eq): Delete.
	(strrevcmp, is_suffix): New.
	(_bfd_elf_strtab_finalize): Rework to implement fast suffix merging.
2003-10-29 22:59:37 +00:00
Phil Blundell
5e681ec414 2003-10-29 Daniel Jacobowitz <drow@mvista.com>
* elf32-arm.h (elf32_arm_final_link_relocate): Move check for
        SEC_ALLOC.

2003-10-29  Philip Blundell  <philb@gnu.org>

	* elf32-arm.h (elf32_arm_plt0_entry, elf32_arm_plt_entry): New
	code sequence.
	(PLT_HEADER_SIZE): New.
	(struct elf32_arm_pcrel_relocs_copied): Rename to ...
	(struct elf32_arm_relocs_copied): ... this.  Count both
	pcrel and non-pcrel relocs.  All uses updated.
	(struct elf32_arm_link_hash_table): Add pointers to dynamic linker
	sections and symbol/section mapping cache.
	(create_got_section): New.
	(elf32_arm_create_dynamic_sections): New.
	(elf_backend_create_dynamic_sections): Use it.
	(elf32_arm_final_link_relocate): Support garbage collection of relocs.
	(elf32_arm_check_relocs): Likewise.
	(elf32_arm_adjust_dynamic_symbol): Likewise.
	(elf32_arm_copy_indirect_symbol): New.
	(elf32_arm_link_hash_table_create): Initialise new fields.
	(elf32_arm_gc_sweep_hook): Implement.
	(elf32_arm_discard_copies): Delete.
	(elf32_arm_finish_dynamic_symbol): Use new PLT code.
	(elf32_arm_finish_dynamic_sections): Likewise.
	(elf_backend_can_refcount): Define.
	(elf_backend_copy_indirect_symbol): Likewise.
	(elf_backend_plt_header_size): Set to PLT_HEADER_SIZE.
2003-10-29 22:33:26 +00:00
Alan Modra
d37c89e56f * elf64-ppc.c (elf_backend_grok_prstatus): Define.
(elf_backend_grok_psinfo): Define.
	(ppc64_elf_grok_prstatus, ppc64_elf_grok_psinfo): New functions.
2003-10-29 13:06:06 +00:00
Alan Modra
62f3bb11d4 * elf.c (_bfd_elfcore_make_pseudosection): Allow multiple
sections with the same name.
	(elfcore_grok_lwpstatus): Likewise.
	(elfcore_grok_win32pstatus): Likewise.
	(elfcore_grok_note): Likewise.
	(elfcore_grok_nto_status): Likewise.
	(elfcore_grok_nto_gregs): Likewise.
2003-10-29 11:15:24 +00:00
Daniel Jacobowitz
35a0f41580 * elf32-arm.h (elf32_arm_merge_private_bfd_data): Never skip dynamic
objects.
2003-10-27 17:33:44 +00:00
Richard Sandiford
e3d54347fe * elfxx-mips.c (mips_elf_create_got_section): Initialize global_gotno. 2003-10-24 15:18:29 +00:00
H.J. Lu
5e35cbc224 bfd/
2003-10-24  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Look up
	hash table for real symbols.

include/

2003-10-24  H.J. Lu  <hongjiu.lu@intel.com>

	* bfdlink.h (bfd_elf_version_expr): Add "symbol" and remove
	"wildcard".

ld/

2003-10-24  H.J. Lu  <hongjiu.lu@intel.com>

	* ldlang.c (lang_vers_match): Check "symbol" instead of
	"wildcard" and "pattern". Fix a typo.
	(lang_finalize_version_expr_head): Likewise.
	(lang_register_vers_node): Likewise.
	(realsymbol): New function.
	(lang_new_vers_pattern): Set "symbol" and remove "wildcard".

	* ldlex.l (V_IDENTIFIER): Allow '\\'.
2003-10-24 14:55:14 +00:00
Michael Snyder
9c3ed942dd 2003-10-23 Michael Snyder <msnyder@redhat.com>
* section.c (asection): Fix typo in comment.
2003-10-23 18:27:41 +00:00
Alan Modra
0d4792f716 * elf64-ppc.c (get_tls_mask): Add toc_symndx param, save toc
reloc symbol index to it.  Don't allow gd syms in shared libs
	to be optimized.
	(ppc64_elf_tls_optimize): Adjust get_tls_mask call.
	(ppc64_elf_size_stubs): Likewise.
	(ppc64_elf_relocate_section): Check that tls relocs are only used
	with tls syms, and similarly for non-tls.  Correct symbol used
	when optimizing toc tls code.
2003-10-23 09:02:33 +00:00
Nick Clifton
c9ac89782d (coff_swap_scnhdr_in): Only remove padding when processing an executable. 2003-10-22 15:12:58 +00:00
Jakub Jelinek
108ba30509 bfd/
* elflink.c (_bfd_elf_export_symbol): Adjust for globals and locals
	field changes.
	(_bfd_elf_link_assign_sym_version): Likewise.
	* elflink.h (size_dynamic_sections): Likewise.
include/
	* bfdlink.h (struct bfd_elf_version_expr): Remove match field.
	Add wildcard and mask fields.
	(BFD_ELF_VERSION_C_TYPE): Define.
	(BFD_ELF_VERSION_CXX_TYPE): Likewise.
	(BFD_ELF_VERSION_JAVA_TYPE): Likewise.
	(struct bfd_elf_version_expr_head): New.
	(struct bfd_elf_version_tree): Add match field.
	Change type of globals and locals fields
	to struct bfd_elf_version_expr_head.
ld/
	* ldlang.c: Include hashtab.h.
	(lang_vers_match_lang_c, lang_vers_match_lang_cplusplus,
	lang_vers_match_lang_java): Remove.
	(lang_vers_match): New function.
	(lang_new_vers_pattern): Initialize wildcard and mask
	fields, don't initialize match.
	(lang_new_vers_node): Use xcalloc.  Adjust for globals and
	locals field type changes.  Set match field.
	(version_expr_head_hash, version_expr_head_eq): New functions.
	(lang_finalize_version_expr_head): New function.
	(lang_register_vers_node): Call lang_finalize_version_expr_head.
	Search in hash table if not wildcard when looking for duplicates.
	* emultempl/ppc64elf.em (new_vers_pattern): Don't bother with
	duplicate checking.  Initialize all fields of dot_entry from entry
	with the exception of pattern and next.
2003-10-22 06:58:17 +00:00
Corinna Vinschen
af9ba62190 * archures.c (bfd_mach_sh4a, bfd_mach_sh4al_dsp, bfd_mach_sh4_nofpu,
bfd_mach_sh4a_nofpu): New machine types.
	* bfd-in2.h: Rebuilt.
	* cpu-sh.c (compatible): Remove unused function.
	(SH4A_NEXT, SH4AL_DSP_NEXT, SH4_NOFPU_NEXT, SH4A_NOFPU_NEXT): New.
	(arch_info_struct): Add sh4a, sh4al_dsp, sh4-nofpu and sh4a-nofpu.
	* elf32-sh.c (sh_elf_set_mach_from_flags): Handle them.
2003-10-21 15:49:45 +00:00
Nick Clifton
5a21e886d0 Fix up error messages for Maverick. 2003-10-21 14:20:40 +00:00
Nick Clifton
b749473bc4 Set the machine number as well as the architecture when converting from a
binary file to another file type.
2003-10-21 14:08:12 +00:00
Nick Clifton
3e60263266 Add ColfFire v4 support 2003-10-21 13:28:59 +00:00
Andrew Cagney
198beae2cf 2003-10-19 Andrew Cagney <cagney@redhat.com>
* targets.c: Replace "struct sec" with "struct bfd_section"
	* syms.c, sparclynx.c, section.c, opncls.c: Ditto.
	* libcoff-in.h, libbfd-in.h, elfxx-target.h: Ditto.
	* elf.c, coffgen.c, bfd.c, bfd-in.h, aoutf1.h: Ditto.
	* aout-tic30.c, aout-target.h:
	* bfd-in2.h, libcoff.h, libbfd.h: Regenerate.

Index: binutils/ChangeLog
2003-10-19  Andrew Cagney  <cagney@redhat.com>

	* coffgrok.h (coff_section): Replace 'struct sec" with "struct
	bfd_section".

Index: gdb/ChangeLog
2003-10-19  Andrew Cagney  <cagney@redhat.com>

	* symtab.c: Replace "struct sec" with "struct bfd_section".
	* objfiles.c, linespec.c, blockframe.c, block.c: Ditto.

Index: ld/ChangeLog
2003-10-19  Andrew Cagney  <cagney@redhat.com>

	* pe-dll.c: Replace "struct sec" with "struct bfd_section".

Index: sim/common/ChangeLog
2003-10-19  Andrew Cagney  <cagney@redhat.com>

	* sim-base.h: Replace "struct sec" with "struct bfd_section".
2003-10-20 14:38:46 +00:00
Hans-Peter Nilsson
f60ebe1430 Support linker relaxation of new R_MMIX_PUSHJ_STUBBABLE relocs.
* elf64-mmix.c (MAX_PUSHJ_STUB_SIZE): New macro.
	(struct _mmix_elf_section_data): New member pjs.
	(mmix_set_relaxable_size, mmix_elf_get_section_contents): New
	functions.
	(elf_mmix_howto_table): New entry for R_MMIX_PUSHJ_STUBBABLE.
	(mmix_reloc_map): Ditto.
	(mmix_elf_relocate_section): Handle R_MMIX_PUSHJ_STUBBABLE.
	(mmix_final_link_relocate, mmix_elf_check_common_relocs): Ditto.
	(mmix_elf_perform_relocation): Ditto.  Don't mark parameter addr
	unused.
	(mmix_elf_check_relocs): Move early return to after
	mmix_elf_check_common_relocs call.
	(mmix_elf_symbol_processing): Fix cut-and-pasto in head comment.
	(_bfd_mmix_before_linker_allocation): Rename from
	_bfd_mmix_prepare_linker_allocated_gregs.  All referers changed.
	Arrange to set the initial relaxable size of sections.
	(_bfd_mmix_after_linker_allocation): Rename from
	_bfd_mmix_finalize_linker_allocated_gregs.
	(mmix_elf_relax_section): Relax a R_MMIX_PUSHJ_STUBBABLE reloc.
	(bfd_elf64_get_section_contents): Define.
	* reloc.c: Add ENUMX for BFD_RELOC_MMIX_PUSHJ_STUBBABLE.
	* libbfd.h, bfd-in2.h: Regenerate.
2003-10-18 15:42:40 +00:00
Hans-Peter Nilsson
4e2147ff81 * reloc.c (bfd_generic_relax_section): Default-set
section->_cooked_size here.
	(bfd_generic_get_relocated_section_contents): Don't set it here.
	Explain why.
2003-10-17 23:03:44 +00:00
Dave Anglin
4b71bec021 * elf32-hppa.c (elf32_hppa_relocate_section): Skip relocation if
output section has been discarded.
2003-10-17 16:43:14 +00:00
Nick Clifton
d4e2de6bc2 Fix normal operation for h8300-coff target 2003-10-17 10:23:33 +00:00
Christopher Faylor
98a96df7f5 * peXXigen.c (_bfd_XXi_swap_aouthdr_out): Don't calculate image size for
sections which lack size info.
2003-10-17 03:30:27 +00:00
Danny Smith
2cefff799c * configure.host: Add __USE_MINGW_FSEEK to HDEFINES for
mingw32.
2003-10-17 02:15:53 +00:00
H.J. Lu
3e0e1ef196 2003-10-16 H.J. Lu <hongjiu.lu@intel.com>
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Also warn
	undefined patterns with '*'.
2003-10-16 21:05:32 +00:00
H.J. Lu
9da84788da 2003-10-16 H.J. Lu <hongjiu.lu@intel.com>
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't
	use the last CIE from a different section.
	(_bfd_elf_write_section_eh_frame): Don't pad beyond the raw
	size of the output section.
2003-10-16 21:04:04 +00:00
Roland McGrath
ac39399582 . 2003-10-16 18:55:52 +00:00
H.J. Lu
7aaa0689cc 2003-10-16 H.J. Lu <hongjiu.lu@intel.com>
* elf32-xtensa.c (xtensa_read_table_entries): The external size
	of entry is 8 bytes.
2003-10-16 15:25:54 +00:00
Andrew Cagney
6cee3f79e4 Index: doc/ChangeLog
2003-10-15  Andrew Cagney  <cagney@redhat.com>

	* bfdint.texi (BFD target vector symbols): Rename _get_symtab to
	_canonicalize_symtab.

2003-10-15  Andrew Cagney  <cagney@redhat.com>

	* targets.c (BFD_JUMP_TABLE_SYMBOLS): Replace NAME##_get_symtab
	with NAME##_canonicalize_symtab.
	* libcoff-in.h (coff_canonicalize_symtab): Update.
	* xsym.h (bfd_sym_canonicalize_symtab): Update.
	* elf-bfd.h (_bfd_elf_canonicalize_symtab): Update.
	* coffgen.c (coff_canonicalize_symtab): Update.
	* libbfd-in.h (_bfd_nosymbols_canonicalize_symtab): Update.
	* libnlm.h (nlmNAME(canonicalize_symtab)): Update.
	* ieee.c (ieee_vec): Update comment.
	* libecoff.h (_bfd_ecoff_canonicalize_symtab): Update.
	* mmo.c (mmo_canonicalize_symtab): Update.
	* nlm-target.h (nlm_canonicalize_symtab): Update.
	* nlmcode.h (nlm_canonicalize_symtab): Update.
	* i386msdos.c (msdos_canonicalize_symtab): Update.
	* hp300hpux.c (MY (canonicalize_symtab)): Update.
	* oasys.c (oasys_canonicalize_symtab): Update.
	* som.c (som_canonicalize_symtab): Update.
	* pef.c (bfd_pef_canonicalize_symtab): Update.
	* nlmcode.h (nlm_canonicalize_symtab): Update.
	* xsym.c (bfd_sym_canonicalize_symtab): Update.
	* vms.c (vms_canonicalize_symtab): Update.
	* versados.c (versados_canonicalize_symtab): Update.
	* mach-o.c (bfd_mach_o_canonicalize_symtab): Update.
	* ieee.c (ieee_canonicalize_symtab): Update.
	* pdp11.c (NAME(aout,canonicalize_symtab)): Update.
	* reloc.c: Update comment.
	* libaout.h (NAME(aout,canonicalize_symtab)): Update.
	* coff64-rs6000.c (aix5coff64_vec): Update.
	* coff64-rs6000.c (bfd_xcoff_aix5_backend_data): Update.
	* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Update.
	* aoutx.h (NAME(aout,canonicalize_symtab)): Update.
	* elfxx-target.h (bfd_elfNN_canonicalize_symtab): Update.
	* hp300hpux.c (MY_canonicalize_symtab): Update.
	* ecoff.c (_bfd_ecoff_canonicalize_symtab): Update.
	* aout-tic30.c (MY_canonicalize_symtab): Update.
	* aout-target.h (MY_canonicalize_symtab): Update.
	* ppcboot.c (ppcboot_canonicalize_symtab): Update.
	* elf.c (_bfd_elf_canonicalize_symtab): Update.
	* elfcode.h (elf_canonicalize_symtab): Update.
	* ihex.c (ihex_canonicalize_symtab): Update.
	* tekhex.c (tekhex_canonicalize_symtab): Update.
	* binary.c (binary_canonicalize_symtab): Update.
	* srec.c (srec_canonicalize_symtab): Update.
2003-10-16 04:11:10 +00:00
Kazu Hirata
6288878d4b * elf32-h8300.c (elf_reloc_map): Fix a comment typo. 2003-10-15 19:08:10 +00:00
Kaz Kojima
46e993b970 [bfd]
* elf32-sh.c (sh_elf_relocate_section): Handle R_SH_IMM_*_PCREL
	relocations.
	(sh_elf_check_relocs): Likewise.

	* elf32-sh64.c (elf_backend_merge_symbol_attribute): Define.
	(sh64_elf_merge_symbol_attribute): New.
	* elf64-sh64.c (elf_backend_merge_symbol_attribute): Define.
	(sh64_elf64_merge_symbol_attribute): New.

[ld/testsuite]
	* ld-sh/sh64/rd-sh64.exp: If the test matches *-dso.d, copy
	the output of linker to the file tmpdir/*-dso.so.
	* ld-sh/sh64/stobin-0-dso.d: New.
	* ld-sh/sh64/stobin-1.d: New.
	* ld-sh/sh64/stobin.s: New.
	* ld-sh/sh64/stolib.s: New.
2003-10-15 06:23:55 +00:00
Kaz Kojima
9bf7216d00 * elf-bfd.h (struct elf_backend_data): New function pointer member
elf_backend_merge_symbol_attribute.
	* elflink.h (elf_link_add_object_symbols): Adjust call to
	elf_backend_merge_symbol_attribute if the backend defined it.
        * elfxx-target.h (elf_backend_merge_symbol_attribute): New macro.
        (elfNN_bed): Add that to the initializer.
2003-10-14 22:43:10 +00:00
Bob Wilson
b614a7028d bfd ChangeLog:
2003-10-14  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (get_is_linkonce_section): Delete.
	(xtensa_is_property_section, xtensa_is_littable_section): Use
	XTENSA_INSN_SEC_NAME and XTENSA_LIT_SEC_NAME macros.  Do not recognize
	linkonce sections containing ".xt.insn" and ".xt.lit" substrings.
	(xtensa_get_property_section_name): Check section name instead of
	calling get_is_linkonce_section.  Remove unused bfd parameter.  Use
	XTENSA_INSN_SEC_NAME and XTENSA_LIT_SEC_NAME macros.  Never generate
	linkonce section names by appending ".xt.insn" or ".xt.lit".
	(xtensa_read_table_entries): Remove bfd argument in call to
	xtensa_get_property_section_name.  Free section name when done.
	(elf_xtensa_combine_prop_entries): Free leaking table.

gas ChangeLog:

2003-10-14  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (xtensa_create_property_segments): Remove bfd
	argument in call to xtensa_get_property_section_name.  Formatting.

include ChangeLog:

2003-10-14  Bob Wilson  <bob.wilson@acm.org>

	* elf/xtensa.h: Formatting.  Fix comments about property section
	names for linkonce sections.
2003-10-14 22:28:28 +00:00
Richard Sandiford
98a8deaf8a * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Don't add
DT_MIPS_LIBLIST or DT_MIPS_CONFLICT entries.
	(_bfd_mips_elf_finish_dynamic_symbol): Don't handle them.  Don't
	handle DT_MIPS_MSYM.  Set DT_RELSZ based on the number of relocations
	that were needed.
	(_bfd_mips_elf_modify_segment_map): Fix placement of PT_MIPS_OPTIONS.
	(_bfd_mips_elf_merge_private_bfd_data): Ignore EF_MIPS_UCODE.
2003-10-13 19:51:10 +00:00
H.J. Lu
3f7deb8a34 bfd/
2003-10-10  H.J. Lu  <hongjiu.lu@intel.com>

	* bfd-in.h (bfd_elf32_ia64_after_parse): New prototype.
	(bfd_elf64_ia64_after_parse): Likewise.
	* bfd-in2.h: Regenerated.

	* elfxx-ia64.c (oor_ip): New.
	(oor_branch_size): Likewise.
	(bfd_elfNN_ia64_after_parse): Likewise.
	(elfNN_ia64_relax_section): Use oor_ip if oor_branch_size
	equals sizeof (oor_ip).

ld/

2003-10-10  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (eelf64_ia64.c): Also depend on
	$(srcdir)/emultempl/ia64elf.em.
	* Makefile.in: Regenerated.

	* emulparams/elf64_ia64.sh (EXTRA_EM_FILE): Set to ia64elf.

	* emultempl/ia64elf.em: New.
2003-10-13 15:55:51 +00:00
Kaz Kojima
0c72ffe04b * elf64-sh64.c (sh_elf64_relocate_section): Tidy up for the
renumbering of some relocation numbers.
2003-10-13 05:11:30 +00:00
Alan Modra
8d6ad26e17 * coff-sh.c: Move definition of MAP and guard more code with
COFF_IMAGE_WITH_PE.
2003-10-11 13:08:44 +00:00
Alan Modra
16b79bec1d Oops. missed a line. 2003-10-11 12:33:50 +00:00
Alan Modra
a7f49d812f * section.c (bfd_get_section_size_before_reloc): Ignore reloc_done.
* bfd-in2.h: Regenerate.
2003-10-11 12:32:18 +00:00
H.J. Lu
ede6aaf391 2003-10-10 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Likewise.
2003-10-10 15:29:50 +00:00
H.J. Lu
a3aa444856 2003-10-09 H.J. Lu <hongjiu.lu@intel.com>
* cofflink.c: Include "safe-ctype.h".
	(coff_link_add_symbols): Use ISDIGIT instead of isdigit.
2003-10-09 18:15:59 +00:00
Dave Brolley
9c8ee6396f 2003-10-08 Dave Brolley <brolley@redhat.com>
On behalf of Michael Snyder  <msnyder@redhat.com>

        * archures.c: Add FRV fr550 machine.
        * cpu-frv.c: Ditto.
        * elf32-frv.c: Ditto.
        * bfd-in2.h: Regenerate.
2003-10-08 17:57:59 +00:00
Thiemo Seufer
6a69177919 * elfxx-mips.c (STUB_MOVE,STUB_LI16): Fix stub code
for non-SGI N64 ABI. Improve code consitency.
2003-10-08 17:36:19 +00:00
Nick Clifton
afa105f875 Include bfd_elf64_sparc_vec if BFD64 is enabled. 2003-10-08 13:50:23 +00:00
Alexandre Oliva
b15b52efa3 * elf32-frv.c (elf32_frv_howto_table): Set R_FRV_LABEL16's
rightshift to 2.
2003-10-07 19:17:23 +00:00
Nathan Sidwell
29ca8dc5bb bfd/Changelog:
* libbfd-in.h (_bfd_link_section_stabs): Add string offset
	parameter.
	* cofflink.c (coff_link_add_symbols): Deal with split stab
	sections.
	* elflink.h (elf_link_add_object_symbols): Deal with split stab
	sections.
	* stabs.c (_bfd_link_section_stabs): Add string offset parameter.
	* libbfd.h: Regenerated.
ld/ChangeLog:
	* ldwrite.c (unsplittable_name): New.
	(clone_section): Strip existing numeric suffix. Only truncate names
	for coff targets.
	(split_sections): Use unsplittable_name.
binutils/ChangeLog:
	* objdump.c (read_section_stabs): Just read one section, return
	pointer to it. Add size parameter.
	(print_section_stabs): Add string offset parameter. Adjust.
	(struct stab_section_names): Add string offset member.
	(find_stabs_sections): Correct check for split section suffix,
	adjust read_section_stabs and print_section_stabs calls.
	(dump_stabs_section): Clear string_offset, free string table.
2003-10-07 08:53:42 +00:00
Nathan Sidwell
cd339148de * coffcode.h (coff_set_alignment_hook): With PE_COFF reloc
overflow, set reloc start position to after the count
	reloc. Subtract one from num relocs. Give error on 0xffff relocs
	and no overflow.
	* cofflink.c (_bfd_coff_final_link): Deal with PE_COFF reloc
	overflow.
	* peXXigen.c (_bfd_XXi_swap_scnhdr_out): Do overflow if >=
	0xffff.
2003-10-07 08:49:11 +00:00
H.J. Lu
10cf14ea3d 2003-10-06 H.J. Lu <hongjiu.lu@intel.com>
* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Pad the
	last CIE/FDE if needed.
2003-10-06 18:10:48 +00:00
Nick Clifton
85cf2a8a15 Change target of hppa-netbsd port 2003-10-06 11:01:36 +00:00
Nick Clifton
4615568e51 Add i386-knetbsd-gnu triplet. 2003-10-06 09:12:39 +00:00
Christian Groessler
8b7cf393a5 2003-10-04 Christian Groessler <chris@groessler.org>
* coff-z8k.c (extra_case): Fix displacement length check for R_JR
	and R_CALLR.
2003-10-04 21:09:29 +00:00
Stephane Carrez
0a6a3ebe97 * elf32-m68hc1x.c: Update to ISO C90; replace PTR with void*.
* elf32-m68hc11.c: Likewise.
	* elf32-m68hc12.c: Likewise.
	* elf32-m68hc1x.h: Likewise.
2003-10-04 21:02:53 +00:00
Stephane Carrez
17e58af002 * elf32-m68hc1x.c (_bfd_m68hc11_elf_merge_private_bfd_data): Fix merge
of flags between HC12 and HCS12.
2003-10-04 20:07:24 +00:00
Nick Clifton
27c630ba7a Set SEC_EXCLUDE flag on sections which become empty after merging. 2003-10-04 10:19:26 +00:00
Jakub Jelinek
1fc0d17365 * elfxx-ia64.c (ia64_howto_table): Fix size of R_IA64_TPREL64[LM]SB,
R_IA64_DTPREL{32,64}[LM]SB and R_IA64_DTPMOD64[LM]SB.
2003-09-30 21:18:46 +00:00
Chris Demetriou
5f74bc130d [ bfd/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* archures.c (bfd_mach_mipsisa64r2): New define.
	* bfd-in2.h: Regenerate.
	* aoutx.h (NAME(aout,machine_type)): Handle bfd_mach_mipsisa64r2.
	* cpu-mips.c (I_mipsisa64r2): New enum value.
	(arch_info_struct): Add entry for I_mipsisa64r2.
	* elfxx-mips.c (_bfd_elf_mips_mach)
	(_bfd_mips_elf_print_private_bfd_data): Handle E_MIPS_ARCH_64R2.
	(mips_set_isa_flags): Add bfd_mach_mipsisa64r2 case.
	(mips_mach_extensions): Add entry for bfd_mach_mipsisa64r2.

[ binutils/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* readelf.c (get_machine_flags): Handle E_MIPS_ARCH_64R2.

[ gas/Changelog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* configure.in (mipsisa64r2, mipsisa64r2el, mipsisa64r2*): New CPUs.
	* configure: Regenerate.
	* config/tc-mips.c (imm2_expr): New variable.
	(md_assemble, mips16_ip): Initialize imm2_expr.
	(ISA_HAS_64BIT_REGS, ISA_HAS_DROR, ISA_HAS_ROR): Add ISA_MIPS64R2.
	(macro_build): Handle +A, +B, +C, +E, +F, +G, and +H format operands.
	(macro): Handle M_DEXT and M_DINS.
	(validate_mips_insn): Handle +E, +F, +G, +H, and +I format operands.
	(mips_ip): Likewise.
	(OPTION_MIPS64R2): New define.
	(md_longopts): New entry for -mips64r2 (OPTION_MIPS64R2).
	OPTION_ASE_BASE): Increase to compensate for OPTION_MIPS64R2.
	(md_parse_option): Handle OPTION_MIPS64R2.
	(s_mipsset): Handle setting "mips64r2" ISA.
	(mips_cpu_info_table): Add mips64r2.
	(md_show_usage): Document -mips64r2 option.
	* doc/as.texinfo: Docuemnt -mips64r2 option.
	* doc/c-mips.texi: Likewise.

[ gas/testsuite/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* gas/mips/cp0-names-mips64r2.d: New file.
	* gas/mips/cp0sel-names-mips64r2.d: New file.
	* gas/mips/elf_arch_mips64r2.d: New file.
	* gas/mips/hwr-names-mips64r2.d: New file.
	* gas/mips/mips32r2-ill-fp64.l: New file.
	* gas/mips/mips32r2-ill-fp64.s: New file.
	* gas/mips/mips64r2-ill.l: New file.
	* gas/mips/mips64r2-ill.s: New file.
	* gas/mips/mips64r2.d: New file.
	* gas/mips/mips64r2.s: New file.
	* gas/mips/mips.exp: Define "mips64r2" arch, and run new tests.

[ include/elf/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* mips.h (E_MIPS_ARCH_64R2): New define.

[ include/opcode/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* mips.h: Document +E, +F, +G, +H, and +I operand types.
	Update documentation of I, +B and +C operand types.
	(INSN_ISA64R2, ISA_MIPS64R2, CPU_MIPS64R2): New defines.
	(M_DEXT, M_DINS): New enum values.

[ ld/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* ldmain.c (get_emulation): Ignore "-mips64r2".

[ ld/testsuite/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* ld-mips-elf/mips-elf-flags.exp: Add tests for combinations
	with MIPS64r2.

[ opcodes/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* mips-dis.c (mips_arch_choices): Add entry for "mips64r2"
	(print_insn_args): Add handing for +E, +F, +G, and +H.
	* mips-opc.c (I65): New define for MIPS64r2.
	(mips_builtin_opcodes): Add "dext", "dextm", "dextu", "dins",
	"dinsm", "dinsu", "drotl", "drotr", "drotr32", "drotrv", "dsbh",
	and "dshd" for MIPS64r2.  Adjust "dror", "dror32", and "drorv" to
	be supported on MIPS64r2.
2003-09-30 16:17:15 +00:00
H.J. Lu
b59dd4a540 2003-09-29 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_hpux_backend_symbol_processing): New.
	Handle SHN_IA_64_ANSI_COMMON.
	(elf_backend_section_from_bfd_section): Defined.
2003-09-29 23:25:08 +00:00
H.J. Lu
243ef1e0a5 2003-09-26 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (elf_link_read_relocs_from_section): Add an argument
	of a pointer to section. Check bad symbol index.
	(_bfd_elf_link_read_relocs): Modify calls to
	elf_link_read_relocs_from_section.
2003-09-25 07:10:42 +00:00
DJ Delorie
d38eb334b6 * sh.h (R_SH_SWITCH8, R_SH_GNU_VTINHERIT, R_SH_GNU_VTENTRY,
R_SH_LOOP_START,R_SH_LOOP_END): Move to "reserved" spaces.
(R_SH_DIR16, R_SH_DIR8, R_SH_DIR8UL, R_SH_DIR8UW, R_SH_DIR8U,
R_SH_DIR8SW, R_SH_DIR8S, R_SH_DIR4UL, R_SH_DIR4UW, R_SH_DIR4U,
R_SH_PSHA, R_SH_PSHL): New.

* elf32-sh.c (sh_elf_howto_table): R_SH_SWITCH8,
R_SH_GNU_VTINHERIT, R_SH_GNU_VTENTRY,
R_SH_LOOP_START,R_SH_LOOP_END moved to "reserved" spaces,
R_SH_DIR16, R_SH_DIR8, R_SH_DIR8UL, R_SH_DIR8UW, R_SH_DIR8U,
R_SH_DIR8SW, R_SH_DIR8S, R_SH_DIR4UL, R_SH_DIR4UW, R_SH_DIR4U,
R_SH_PSHA, R_SH_PSHL added.
(sh_reloc_map): Add R_SH_DIR16 and R_SH_DIR8.
(sh_elf_relocate_section): Support new relocs.
2003-09-24 02:27:57 +00:00
Bob Wilson
f0578e28d6 * elf32-xtensa.c (elf_xtensa_relocate_section): Fix typo that clobbered
dynamic relocation offsets.
2003-09-23 20:23:55 +00:00
Alan Modra
010b84c1d3 * simple.c (bfd_simple_get_relocated_section_contents): Free the
hash table using _bfd_generic_link_hash_table_free.
2003-09-23 03:59:25 +00:00
Alan Modra
7dcb9820ee * elf-bfd.h (struct bfd_elf_special_section): Remove "suffix". Change
type of prefix_length and suffix_length to int.  Rename "attributes"
	to "attr".  Comment.
	(_bfd_elf_get_sec_type_attr): Update prototype.
	* elf.c (get_special_section): Rewrite.
	(_bfd_elf_get_sec_type_attr): Return struct rather than passing in
	attr and type pointers.
	(_bfd_elf_new_section_hook): Adjust for above.
	(special_sections): Merge suffix with prefix.  Set
	prefix_length for all entries.  Set suffix_length appropriately.
	* elf32-m32r.c (m32r_elf_special_sections): Likewise.
	* elf32-m68hc11.c (elf32_m68hc11_special_sections): Likewise.
	* elf32-m68hc12.c (elf32_m68hc12_special_sections): Likewise.
	* elf32-mcore.c (mcore_elf_special_sections): Likewise.
	* elf32-sh64.c (sh64_elf_special_sections): Likewise.
	* elf32-v850.c (v850_elf_special_sections): Likewise.
	* elf32-xtensa.c (elf_xtensa_special_sections): Likewise.
	* elf64-alpha.c (elf64_alpha_special_sections): Likewise.
	* elf64-hppa.c (elf64_hppa_special_sections): Likewise.
	* elf64-ppc.c (ppc64_elf_special_sections): Likewise.
	* elf64-sh64.c (sh64_elf64_special_sections): Likewise.
	* elfxx-ia64.c (elfNN_ia64_special_sections): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_special_sections): Likewise.
	* elf32-ppc.c (ppc_elf_special_sections): Likewise.  Fix .plt flags.
2003-09-23 00:40:49 +00:00
Daniel Jacobowitz
61bcf37398 * elf64-alpha.c (elf64_alpha_create_got_section): Initialize
->got if the section already exists.
2003-09-21 19:24:52 +00:00
Nathan Sidwell
8bfd78b3d0 * dwarf2.c (decode_line_info): Cope with an initially empty
filename table.
2003-09-19 09:01:53 +00:00
H.J. Lu
6726e1ea5d 2003-09-18 H.J. Lu <hongjiu.lu@intel.com>
* acinclude.m4: Include ../config/accross.m4.
	* aclocal.m4: Regenerated.

	* configure.host (HOST_64BIT_TYPE): Remove if it is set to long
	or long long.
	(HOST_U_64BIT_TYPE): Remove if it is set to unsigned long long.
	(host64): Remove if HOST_64BIT_TYPE is set to long.

	* configure.in (HOST_64BIT_TYPE): Set according to the size of
	long and long long.
	(HOST_U_64BIT_TYPE): Likewise.
	(host64): Likewise.
	* configure: Regenerated.
2003-09-19 03:55:40 +00:00
Alan Modra
5de3bf9096 * elf.c (elfcore_write_note): Don't use sizeof(Elf_External_note)
since some ABIs round up the size of the struct.
2003-09-19 02:08:35 +00:00
H.J. Lu
9e4d8df340 2003-09-18 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (_bfd_elf_merge_symbol): Allow type change if
	the old symbol is undefined and the new symbol is defined.
2003-09-18 19:01:46 +00:00
Andreas Schwab
228ce06419 * simple.c (bfd_simple_get_relocated_section_contents): Use
_bfd_generic_link_hash_table_create instead of
	bfd_link_hash_table_create.
2003-09-18 09:10:41 +00:00
H.J. Lu
fdbdabdda5 2003-09-10 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_special_sections): Mark all sections
	started with ".sbss" or "".sdata" as SHF_IA_64_SHORT.
2003-09-10 20:48:32 +00:00
Dave Anglin
a252afa4cd * elf32-hppa.c (struct elf32_hppa_link_hash_entry,
hppa_link_hash_newfunc, hppa_build_one_stub,
	elf32_hppa_adjust_dynamic_symbol, mark_PIC_calls, allocate_plt_static,
	allocate_dynrelocs, elf32_hppa_size_dynamic_sections,
	elf32_hppa_finish_dynamic_symbol): Remove pic_call field and all code
	for generating import stubs for calls to statically linked PIC
	functions.
	(hppa_type_of_stub): Don't generate an import stub for calls to
	statically linked pic functions.  Generate import stubs for calls
	in a shared object, to functions not in a regular file, and to
	defined weak functions.  Add new argument INFO.
	(hppa_build_one_stub): Don't undef ADDIL_DP.
	(elf32_hppa_check_relocs): Don't set SEC_HAS_GOT_REF flag.
	(elf32_hppa_size_stubs): Pass info to hppa_type_of_stub.
	(final_link_relocate): Change all DLTIND relocs to DPREL relocs in a
	non-shared link.  Convert instructions that use the the linkage table
	pointer, or a facsimile thereof, to use the global data pointer when
	the reloc has been changed.
2003-09-10 18:46:08 +00:00
Joel Brobecker
42acdc7c30 * archures.c: Add new machine names for hppa.
* bfd-in2.h: Regenerate.
        * cpu-hppa.c: Use the new machine names.
2003-09-08 16:46:02 +00:00
Stephane Carrez
2a0e29b406 * elf32-m68hc1x.h (struct m68hc11_elf_link_hash_table): Remove
all_local_syms member.
	* elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Use bfd_elf_get_elf_syms
	to get the local symbols.
2003-09-06 21:09:40 +00:00
Stephane Carrez
3f533aa9ec * elf32-m68hc12.c (elf32_m68hc12_special_sections): New for hc11.
(elf_backend_special_sections): Define.a

	PR savannah/4950:
	* elf32-m68hc11.c (elf32_m68hc11_special_sections): The .vectors
	section is read-only.
2003-09-06 20:55:50 +00:00
Nick Clifton
8ad30312ff Add binutils support for v850e1 processor 2003-09-04 11:04:38 +00:00
Nick Clifton
3922a8c154 Do not skip section symbols that are used in relocs. 2003-09-03 16:06:12 +00:00
Nick Clifton
13dfd2d039 Add *kfreebsd-gnu configuration support 2003-09-03 09:32:21 +00:00
Christian Groessler
1c0881ddd9 * elf32-i860.c (i860_howto_pc26_reloc): Finish relocation here
instead of returning bfd_reloc_continue.
2003-08-31 18:22:06 +00:00
Andreas Jaeger
ac0e732ef3 * merge.c: Update to ISO C90. 2003-08-31 10:07:47 +00:00
Ian Lance Taylor
49c97a80e3 * configure.in: Check for strtoull.
* bfd.c (bfd_scan_vma): Use strtoull when available.
	* configure, config.in: Regenerate.
2003-08-27 17:57:33 +00:00
Ian Lance Taylor
ec317fb157 * configure.in: Define and substitute BFD_HOST_LONG_LONG.
* bfd-in.h: Define BFD_HOST_LONG_LONG.  Test it rather than
	__GNUC__ when deciding whether to use long long for
	BFD_HOST_64_BIT.
	* configure, Makefile.in, doc/Makefile.in, bfd-in2.h: Regenerate.
2003-08-27 17:43:39 +00:00
Christian Groessler
d539b3aa78 2003-08-27 Christian Groessler <chris@groessler.org>
* elf32-i860.c (i860_howto_pc26_reloc, i860_howto_pc16_reloc,
	i860_howto_splitn_reloc, i860_howto_highadj_reloc): New
	functions.
	(elf32_i860_howto_table): Insert the new functions as
	'special_function's in the proper reloc type entries.
2003-08-27 13:28:42 +00:00
Richard Sandiford
73052b5e96 * elf32-frv.c (elf32_frv_relocate_section): Use
_bfd_elf_rela_local_sym.
2003-08-27 09:21:15 +00:00
Michael Snyder
2c848f79e9 2003-08-26 Michael Snyder <msnyder@redhat.com>
* cpu-frv.c: Remove unused enum.
2003-08-26 17:13:18 +00:00
Maciej W. Rozycki
980491e6d5 2003-08-25 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
* reloc.c: Fix documentation for MIPS ELF relocations.
libbfd.h: Regenerate.
bfd-in2.h: Regenerate.
2003-08-25 12:39:14 +00:00
Jason Eckhardt
6d1227b86c 2003-08-24 Jason Eckhardt <jle@rice.edu>
* coff-i860.c (CALC_ADDEND): Define to be a no-op.
2003-08-24 20:54:05 +00:00
Jason Eckhardt
f680ea79cc 2003-08-24 Jason Eckhardt <jle@rice.edu>
* elf32-i860.c (elf32_i860_relocate_pc16): Subtract 4 and
	shift by 2 before storing the relocated value.
2003-08-24 18:16:46 +00:00
Jason Eckhardt
c28b1c2869 2003-08-23 Jason Eckhardt <jle@rice.edu>
[bfd/ChangeLog]
        * coff-i860.c (coff_i860_reloc_nyi): New function.
	(howto_table): Add entries for relocations PAIR, HIGHADJ, HIGH,
	LOWn, SPLITn, and BRADDR.
	(RTYPE2HOWTO): Check that the r_type is within the howto_table
	before trying to access the entry.
	(coff_i860_rtype_to_howto): Likewise.
	(coff_i860_reloc_type_lookup): New function.
	(i860_reloc_processing): New function.
	(coff_bfd_reloc_type_lookup): Define macro.
	(RELOC_PROCESSING): Define macro.
	Minor formatting adjustments.

[include/coff/ChangeLog]
	* coff/i860.h (COFF860_R_PAIR, COFF860_R_LOW0, COFF860_R_LOW1,
	COFF860_R_LOW2, COFF860_R_LOW3, COFF860_R_LOW4, COFF860_R_SPLIT0,
	COFF860_R_SPLIT1, COFF860_R_SPLIT2, COFF860_R_HIGHADJ,
	COFF860_R_BRADDR): Define new relocation constants and document.
	Minor formatting adjustments.
2003-08-23 23:00:09 +00:00
Alan Modra
40a0491a90 * elflink.h (elf_link_add_object_symbols): Don't crash on NULL owner. 2003-08-23 04:10:34 +00:00