Commit Graph

3207 Commits

Author SHA1 Message Date
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
Alan Modra 203b46ca20 daily update 2003-11-03 23:00:05 +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
Alan Modra 8211433f2c daily update 2003-11-02 23:00:05 +00:00
Alan Modra 9759a9ac06 daily update 2003-11-01 23:00:05 +00:00
Alan Modra b1ace735e1 daily update 2003-10-31 23:00:05 +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
Alan Modra 3084807aa6 daily update 2003-10-30 23:00:05 +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 fa7ac28171 daily update 2003-10-29 23:00:04 +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
Alan Modra d8f18674f1 daily update 2003-10-28 23:00:05 +00:00
Alan Modra a0a8e3c341 daily update 2003-10-27 23:00:05 +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
Alan Modra ed7c52e939 daily update 2003-10-26 23:00:05 +00:00
Alan Modra 113e515c81 daily update 2003-10-25 23:00:07 +00:00
Alan Modra a4fa9f2bc9 daily update 2003-10-25 00:00:05 +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
Alan Modra 40d631c6d7 daily update 2003-10-24 00:00:08 +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
Alan Modra 5bb8077b7f daily update 2003-10-23 00:00:21 +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
Alan Modra a9b7fca23b daily update 2003-10-22 00:00:05 +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
Alan Modra da1f243748 daily update 2003-10-21 00:00:05 +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
Alan Modra e7d715e575 daily update 2003-10-20 00:00:06 +00:00
Alan Modra 1230028fd9 daily update 2003-10-19 00:00:05 +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
Alan Modra 3c8d2541fe daily update 2003-10-18 00:00:05 +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