aboutsummaryrefslogtreecommitdiff
path: root/bfd/elfxx-ia64.c
AgeCommit message (Collapse)AuthorFilesLines
2003-12-04bfd/H.J. Lu1-4/+4
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-01 * elf-bfd.h (is_elf_hash_table): Take hash tab rather than info arg.Alan Modra1-1/+1
* 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-11-27 * elf32-arm.h: Fix comment typos.Kazu Hirata1-5/+5
* elf32-d30v.c: Likewise. * elf32-dlx.c: Likewise. * elf32-h8300.c: Likewise. * elf32-i370.c: Likewise. * elf32-ip2k.c: Likewise. * elf32-m68hc11.c: Likewise. * elf32-mcore.c: Likewise. * elf32-ppc.c: Likewise. * elf32-s390.c: Likewise. * elf32-sh.c: Likewise. * elf32-v850.c: Likewise. * elf32-xtensa.c: Likewise. * elf64-alpha.c: Likewise. * elf64-hppa.c: Likewise. * elf64-mips.c: Likewise. * elf64-mmix.c: Likewise. * elf64-ppc.c: Likewise. * elf64-sparc.c: Likewise. * elflink.c: Likewise. * elflink.h: Likewise. * elfn32-mips.c: Likewise. * elfxx-ia64.c: Likewise. * elfxx-mips.c: Likewise.
2003-11-27* elf-bfd.h (elf_backend_data::elf_backend_modify_segment_map):Alexandre Oliva1-2/+3
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-19Fix -pie core dump with .rela.opd section.Jim Wilson1-2/+11
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-17 * elf.c (_bfd_elf_link_hash_copy_indirect): CopyDaniel Jacobowitz1-1/+2
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-05 * elf.c (_bfd_elf_rela_local_sym): Accept asection **, and returnAlan Modra1-2/+3
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-04 * bfd-in.h (_bfd_elf_tls_setup): Declare.Alan Modra1-7/+5
* 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-03 * elf-bfd.h (struct elf_backend_data): Remove plt_header_size.Daniel Jacobowitz1-1/+0
* 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-10-30 * elfxx-ia64.c: Include objalloc.h, hashtab.h.Jakub Jelinek1-85/+86
(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-13bfd/H.J. Lu1-7/+39
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-09-30 * elfxx-ia64.c (ia64_howto_table): Fix size of R_IA64_TPREL64[LM]SB,Jakub Jelinek1-8/+8
R_IA64_DTPREL{32,64}[LM]SB and R_IA64_DTPMOD64[LM]SB.
2003-09-292003-09-29 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-0/+20
* elfxx-ia64.c (elfNN_hpux_backend_symbol_processing): New. Handle SHN_IA_64_ANSI_COMMON. (elf_backend_section_from_bfd_section): Defined.
2003-09-23 * elf-bfd.h (struct bfd_elf_special_section): Remove "suffix". ChangeAlan Modra1-6/+3
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-102003-09-10 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-2/+2
* elfxx-ia64.c (elfNN_ia64_special_sections): Mark all sections started with ".sbss" or "".sdata" as SHF_IA_64_SHORT.
2003-08-222003-08-22 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-0/+2
* elfxx-ia64.c (elfNN_ia64_create_dynamic_sections): Align the .got section at 8 bytes.
2003-08-20Better handking for unresolved symbolsNick Clifton1-44/+11
2003-08-11 * elf32-i386.c (elf_i386_relocate_section): Make undefined symbolsJakub Jelinek1-1/+1
fatal if -pie. * elf32-s390.c (elf_s390_relocate_section): Likewise. * elf32-sparc.c (elf32_sparc_relocate_section): Likewise. * elf64-alpha.c (elf64_alpha_relocate_section): Likewise. * elf64-ppc.c (ppc64_elf_relocate_section): Likewise. * elf64-s390.c (elf_s390_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-ppc.c (ppc_elf_relocate_section): Likewise. (ppc_elf_relocate_section) <case R_PPC_RELAX32>: Issue fatal error on undefined symbols if -pie. * elf32-sh.c (sh_elf_relocate_section): Likewise.
2003-08-07 * elfxx-target.h: Remove PTR cast.Alan Modra1-2/+2
* targets.c (bfd_target): Make backend_data const void *. * elf-bfd.h: Constify all occurrences of struct elf_backend_data. * elf-m10300.c: Likewise. * elf.c: Likewise. * elf32-hppa.c: Likewise. * elf32-i386.c: Likewise. * elf32-m68hc1x.c: Likewise. * elf32-ppc.c: Likewise. * elf32-s390.c: Likewise. * elf32-sh.c: Likewise. * elf32-sh64.c: Likewise. * elf32-sparc.c: Likewise. * elf32-xtensa.c: Likewise. * elf64-mips.c: Likewise. * elf64-ppc.c: Likewise. * elf64-s390.c: Likewise. * elf64-sh64.c: Likewise. * elf64-sparc.c: Likewise. * elf64-x86-64.c: Likewise. * elfcode.h: Likewise. * elfcore.h: Likewise. * elflink.c: Likewise. * elflink.h: Likewise. * elfxx-ia64.c: Likewise. * elfxx-mips.c: Likewise. * elfxx-mips.h: Likewise. * elf.c (prep_headers): Remove useless check for null backend_data. * bfd-in2.h: Regenerate.
2003-08-012003-08-01 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-0/+4
* elfxx-ia64.c (get_got): Align the .got section at 8 bytes.
2003-08-012003-08-01 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-1/+1
* elfxx-ia64.c (elfNN_ia64_finish_dynamic_symbol): Use ElfNN_External_Rela instead of Elf64_External_Rela.
2003-07-25bfd/H.J. Lu1-0/+11
2003-07-25 H.J. Lu <hongjiu.lu@intel.com> * elf-bfd.h (bfd_elf_special_section): New. (elf_backend_data): Add special_sections, a pointer to bfd_elf_special_section. (elf_section_type). New. (elf_section_flags): New. (_bfd_elf_get_sec_type_attr): New. * elf.c (_bfd_elf_make_section_from_shdr): Always use the real section type/flags. (special_sections): New. (get_special_section): New. (_bfd_elf_get_sec_type_attr): New. (_bfd_elf_new_section_hook): Check special_section to set elf_section_type and elf_section_flags. (elf_fake_sections): Don't use section name to set ELF section data. * elf32-m32r.c (m32r_elf_special_sections): New. (elf_backend_special_sections): Defined. * elf32-m68hc11.c (elf32_m68hc11_special_sections): New. (elf_backend_special_sections): Defined. * elf32-mcore.c (mcore_elf_special_sections): New. (elf_backend_special_sections): Defined. * elf32-ppc.c (ppc_elf_special_sections): New. (elf_backend_special_sections): Defined. * elf32-sh64.c (sh64_elf_special_sections): New. (elf_backend_special_sections): Defined. * elf32-v850.c (v850_elf_special_sections): New. (elf_backend_special_sections): Defined. * elf32-xtensa.c (elf_xtensa_special_sections): New. (elf_backend_special_sections): Defined. * elf64-alpha.c (elf64_alpha_special_sections): New. (elf_backend_special_sections): Defined. * elf64-hppa.c (elf64_hppa_special_sections): New. (elf_backend_special_sections): Defined. * elf64-ppc.c (ppc64_elf_special_sections): New. (elf_backend_special_sections): Defined. * elf64-sh64.c (sh64_elf64_special_sections): New. (elf_backend_special_sections): Defined. * elfxx-ia64.c (elfNN_ia64_special_sections): New. (elf_backend_special_sections): Defined. * elfxx-mips.c (_bfd_mips_elf_special_sections): New. * elfxx-mips.h (_bfd_mips_elf_special_sections): New. (elf_backend_special_sections): Defined. * elfxx-target.h (elf_backend_special_sections): New. Default to NULL. (elfNN_bed): Initialize special_sections. * section.c (bfd_abs_section): Remove const. (bfd_und_section): Likewise. (bfd_com_section): Likewise. (bfd_ind_section): Likewise. gas/ 2003-07-25 H.J. Lu <hongjiu.lu@intel.com> * config/obj-elf.c (special_sections): Removed. (obj_elf_change_section): Call _bfd_elf_get_sec_type_attr. Set elf_section_type and elf_section_flags. (elf_frob_file): Set SHT_GROUP. * config/obj-elf.h (obj_sec_set_private_data): New. * config/tc-alpha.h (ELF_TC_SPECIAL_SECTIONS): Removed. * config/tc-ia64.h: Likewise. * config/tc-m32r.h: Likewise. * config/tc-m68hc11.h: Likewise. * config/tc-mcore.h: Likewise. * config/tc-mips.h: Likewise. * config/tc-ppc.h: Likewise. * config/tc-sh64.h: Likewise. * config/tc-v850.h: Likewise. * config/tc-xtensa.h: Likewise. * config/tc-v850.h (SHF_V850_GPREL): Removed. (SHF_V850_EPREL): Likewise. (SHF_V850_R0REL): Likewise. * subsegs.c (subseg_get): Call obj_sec_set_private_data if it is defined. include/elf/ 2003-07-25 H.J. Lu <hongjiu.lu@intel.com> * v850.h (SHF_V850_GPREL): New. (SHF_V850_EPREL): Likewise. (SHF_V850_R0REL): Likewise.
2003-07-212003-07-21 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-1/+1
* elfxx-ia64.c (elfNN_ia64_size_dynamic_sections): Mark output_bfd unused to silence gcc.
2003-07-18 * elflink.c (_bfd_elf_dynamic_symbol_p): New.Richard Henderson1-46/+21
* elf-bfd.h (_bfd_elf_dynamic_symbol_p): Declare it. (SYMBOL_REFERENCES_LOCAL, SYMBOL_CALLS_LOCAL): Use it. * elf32-xtensa.c (xtensa_elf_dynamic_symbol_p): Likewise. * elf64-alpha.c (alpha_elf_dynamic_symbol_p): Likewise. * elf64-hppa.c (elf64_hppa_dynamic_symbol_p): Likewise. * elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Likewise. Update all callers to provide the relocation being resolved.
2003-07-16 * config.bfd, configure.host, configure.in: Remove ia64-aix support.Richard Henderson1-193/+16
* elfxx-ia64.c, targets.c: Likewise.
2003-07-16 * elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Properly return falseRichard Henderson1-5/+4
for symbols defined locally plus -Bsymbolic. Tidy logic.
2003-07-102003-07-10 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-1/+1
* elfxx-ia64.c (IA64_HOWTO): Set dst_mask to -1 instead of -1LL.
2003-07-102003-07-09 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-1/+1
* elfxx-ia64.c (IA64_HOWTO): Set dst_mask to -1LL.
2003-07-04bfd/Jakub Jelinek1-24/+102
* elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add rel_fptr_sec. (elfNN_ia64_dynamic_symbol_p): Change info->shared into !info->executable. (get_fptr): For -pie create .opd as writable section and create .rela.opd as well. (elfNN_ia64_check_relocs): Change info->shared into !info->executable. (allocate_fptr): Likewise. (allocate_dynrel_entries): Account for a relative reloc for -pie @fptr(). Don't account for a relative reloc if -pie want_ltoff_fptr for undefweak symbol. Account for an IPLT reloc in .rela.opd section if -pie. (set_got_entry): Don't create a relative reloc if -pie want_ltoff_fptr for undefweak symbol. (set_fptr_entry): Emit an IPLT reloc in .rela.opd for -pie. (elfNN_ia64_relocate_section): Emit a relative reloc for -pie @fptr(). * elfxx-ia64.c (elfNN_ia64_relocate_section): Issue undefined_symbol even if -pie. * elf32-i386.c (elf_i386_relocate_section): Likewise. * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise. * elf64-sparc.c (sparc64_elf_relocate_section): Likewise. * elf64-s390.c (elf_s390_relocate_section): Likewise. * elf64-ppc.c (ppc64_elf_relocate_section): Likewise. * elf64-alpha.c (elf64_alpha_relocate_section): Likewise. * elf32-sparc.c (elf32_sparc_relocate_section): Likewise. * elf32-s390.c (elf_s390_relocate_section): Likewise. * elf32-ppc.c (ppc_elf_relocate_section): Likewise. ld/ * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Don't include .opd if -pie. (OTHER_READWRITE_SECTIONS): Include .opd if -pie. * scripttempl/elf.sc: Use SHLIB_DATA_ADDR instead of DATA_ADDR if -pie.
2003-06-25Correct spelling of "relocatable".Alan Modra1-5/+5
2003-06-172003-06-17 Roland McGrath <roland@redhat.com>H.J. Lu1-1/+1
* elfxx-ia64.c (elfNN_ia64_relocate_section): Support segment-relative relocation between different segments.
2003-05-30bfd/Jakub Jelinek1-2/+2
* elflink.h (elf_link_add_object_symbols): Use !info->executable instead of info->shared where appropriate. (bfd_elfNN_size_dynamic_sections, elf_link_output_extsym): Likewise. * elflink.c (_bfd_elf_create_got_section): Likewise. (_bfd_elf_link_create_dynamic_sections): Likewise. (_bfd_elf_link_assign_sym_version): Likewise. * elf32-i386.c (elf_i386_size_dynamic_sections): Create .interp section and DT_DEBUG dynamic tag even for position independent executables. * elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise. * elf32-s390.c (elf_s390_size_dynamic_sections: Likewise. * elf64-ppc.c (ppc64_elf_size_dynamic_sections: Likewise. * elf64-s390.c (elf_s390_size_dynamic_sections: Likewise. * elf64-x86-64.c (elf64_x86_64_size_dynamic_sections: Likewise. * elfxx-ia64.c (elfNN_ia64_size_dynamic_sections: Likewise. * elf32-sparc.c (elf32_sparc_size_dynamic_sections: Likewise. * elf64-alpha.c (elf64_alpha_size_dynamic_sections: Likewise. * elf64-sparc.c (sparc64_elf_size_dynamic_sections: Likewise. include/ * bfdlink.h (struct bfd_link_info): Add pie and executable bits. ld/ * lexsup.c (OPTION_PIE): Define. (ld_options): Add -pie and --pic-executable options. (parse_args): Handle OPTION_PIE. * ldmain.c (main): Initialize link_info.pie and link_info.executable. * genscripts.sh: Generate PIE scripts. * ld.texinfo: Document -pie and --pic-executable options. * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): (gld${EMULATION_NAME}_place_orphan): Likewise. (gld${EMULATION_NAME}_get_script): Include PIE scripts. * scripttempl/elf.sc: In PIE scripts set . the same way as in shared scripts. * emulparams/elf_i386.sh (GENERATE_PIE_SCRIPT): Set to yes. * emulparams/elf64_ia64.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf32ppc.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf64ppc.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf_x86_64.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf_s390.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf32_sparc.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf64_sparc.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf64alpha.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf64_s390.sh (GENERATE_PIE_SCRIPT): Likewise. * emulparams/elf_i386.sh (GENERATE_PIE_SCRIPT): Likewise.
2003-05-09 * cpu-arm.c (arm_check_note): Warning fix.Alan Modra1-2/+2
* elf32-iq2000.c (iq2000_elf_check_relocs): Warning fixes. Arrange to keep relocs if edited. (iq2000_elf_print_private_bfd_data): Return TRUE. * elfxx-ia64.c (elfNN_ia64_relax_section): Use ELFNN_R_SYM, not ELF64_R_SYM. (elfNN_ia64_relax_ldxmov): Warning fix. * xtensa-isa.c (xtensa_add_isa): Warning fix. * xtensa-modules.c (get_num_opcodes): Warning fix.
2003-05-09 * elflink.c (_bfd_elf_link_create_dynamic_sections): Move fromAlan Modra1-2/+2
elflink.h. Replace LOG_FILE_ALIGN with bed->s->log_file_align. (_bfd_elf_create_dynamic_sections): Use bed->s->log_file_align. (bfd_elf_record_link_assignment): Move from elflink.h. (_bfd_elf_merge_symbol): Likewise. (_bfd_elf_add_default_symbol): Likewise. (_bfd_elf_export_symbol): Likewise. (_bfd_elf_link_find_version_dependencies): Likewise. (_bfd_elf_link_assign_sym_version): Likewise. (_bfd_elf_link_read_relocs): Likewise. (_bfd_elf_link_size_reloc_section): Likewise. (_bfd_elf_fix_symbol_flags): Likewise. (_bfd_elf_adjust_dynamic_symbol): Likewise. (_bfd_elf_link_sec_merge_syms): Likewise. (elf_link_read_relocs_from_section): Likewise. Use bed->s->sizeof_rel and bed->s->sizeof_rela. (_bfd_elf_link_output_relocs): Likewise. * elf-bfd.h (struct elf_size_info): Rename file_align to log_file_align. (struct elf_info_failed): Move from elflink.h. (struct elf_assign_sym_version_info): Likewise. (struct elf_find_verdep_info): Likewise. (_bfd_elf_create_dynamic_sections): Delete duplicate declaration. (_bfd_elf_merge_symbol, _bfd_elf_add_default_symbol, _bfd_elf_export_symbol, _bfd_elf_link_find_version_dependencies, _bfd_elf_link_assign_sym_version, _bfd_elf_link_create_dynamic_sections, _bfd_elf_link_read_relocs, _bfd_elf_link_size_reloc_section, _bfd_elf_link_output_relocs, _bfd_elf_fix_symbol_flags, _bfd_elf_adjust_dynamic_symbol, _bfd_elf_link_sec_merge_syms): Declare. (bfd_elf32_link_create_dynamic_sections): Don't declare. (_bfd_elf32_link_read_relocs): Likewise. (bfd_elf64_link_create_dynamic_sections): Likewise. (_bfd_elf64_link_read_relocs): Likewise. * elflink.h: Move lots o' stuff elsewhere. * bfd-in.h (bfd_elf32_record_link_assignment): Don't declare. (bfd_elf64_record_link_assignment): Likewise. (bfd_elf_record_link_assignment): Declare. * bfd-in2.h: Regenerate. * elfcode.h (elf_link_create_dynamic_sections): Don't declare. (NAME(_bfd_elf,size_info)): Adjust for log_file_align. * elf.c (_bfd_elf_init_reloc_shdr): Adjust for bed->s->log_file_align. (assign_file_positions_for_segments): Likewise. (assign_file_positions_except_relocs): Likewise. (swap_out_syms, elfcore_write_note): Likewise. * elf-m10200.c: Adjust for changed function names. * elf-m10300.c: Likewise. * elf32-arm.h: Likewise. * elf32-h8300.c: Likewise. * elf32-hppa.c: Likewise. * elf32-ip2k.c: Likewise. * elf32-m32r.c: Likewise. * elf32-m68hc11.c: Likewise. * elf32-m68hc1x.c: Likewise. * elf32-m68k.c: Likewise. * elf32-mips.c: Likewise. * elf32-ppc.c: Likewise. * elf32-sh.c: Likewise. * elf32-v850.c: Likewise. * elf32-xtensa.c: Likewise. * elf64-alpha.c: Likewise. * elf64-hppa.c: Likewise. * elf64-mmix.c: Likewise. * elf64-ppc.c: Likewise. * elf64-sh64.c: Likewise. * elfxx-ia64.c: Likewise. * elfxx-mips.c: Likewise. (MIPS_ELF_LOG_FILE_ALIGN): Use log_file_align. * elf64-alpha.c (alpha_elf_size_info): Adjust for log_file_align. * elf64-hppa.c (hppa64_elf_size_info): Likewise. * elf64-mips.c (mips_elf64_size_info): Likewise. * elf64-s390.c (s390_elf64_size_info): Likewise. * elf64-sparc.c (sparc64_elf_size_info): Likewise.
2003-05-082003-05-07 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-3/+12
* elfxx-ia64.c (_bfd_elf_link_hash_hide_symbol): Also clear the want_plt field. (elfNN_ia64_relocate_section): Don't do dynamic symbol lookup for symbols with non-default visibility.
2003-05-05bfd/H.J. Lu1-8/+26
2003-05-04 H.J. Lu <hjl@gnu.org> * elf32-i386.c (allocate_dynrelocs): Don't allocate dynamic relocation entries for weak undefined symbols with non-default visibility. (elf_i386_relocate_section): Initialize the GOT entries and skip R_386_32/R_386_PC32 for weak undefined symbols with non-default visibility. * elfxx-ia64.c (allocate_fptr): Don't allocate function descriptors for weak undefined symbols with non-default visibility. (allocate_dynrel_entries): Don't allocate relocation entries for symbols resolved to 0. (set_got_entry): Don't install dynamic relocation for weak undefined symbols with non-default visibility. (set_pltoff_entry): Likewise. * elflink.h (elf_fix_symbol_flags): Hide weak undefined symbols with non-default visibility. (elf_link_output_extsym): Don't make weak undefined symbols with non-default visibility dynamic. ld/testsuite/ 2003-05-04 H.J. Lu <hjl@gnu.org> * ld-elfvsb/main.c: Updated. * ld-elfvsb/sh1.c: Likewise.
2003-04-29bfd/H.J. Lu1-2/+15
2003-04-28 H.J. Lu <hjl@gnu.org> * elfxx-ia64.c (elfNN_ia64_relax_section): Relax ldxmov during the relax finalize pass. * section.c (struct sec): Add need_finalize_relax and remove flag11. (STD_SECTION): Update struct sec initializer. * bfd-in2.h: Regenerated. include/ 2003-04-28 H.J. Lu <hjl@gnu.org> * bfdlink.h (bfd_link_info): Add relax_finalizing. ld/ 2003-04-28 H.J. Lu <hjl@gnu.org> * ldlang.c (lang_process): Add the relax finalize pass. * ldmain.c (main): Initialize link_info.relax_finalizing to FALSE.
2003-04-092003-04-09 H.J. Lu <hjl@gnu.org>H.J. Lu1-1/+0
* elf64-alpha.c (elf64_alpha_relocate_section): Don't return FALSE for undefined symbols. * elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
2003-04-01 * simple.c (bfd_simple_get_relocated_section_contents): AddDaniel Jacobowitz1-3/+12
parameter symbol_table. Optionally use it instead of the symbol table from the bfd. Save and restore output offsets and output sections around bfd_get_relocated_section_contents. Fix a memory leak. (simple_save_output_info, simple_restore_output_info): New functions. * bfd-in2.h: Regenerate. * dwarf2.c (read_abbrevs): Use bfd_simple_get_relocated_section_contents instead of bfd_get_section_contents. (decode_line_info): Likewise. (_bfd_dwarf2_find_nearest_line): Likewise. Don't call find_rela_addend. (find_rela_addend): Remove. * elfxx-ia64.c (elfNN_ia64_reloc): Weaken sanity check for debugging sections. (elfNN_ia64_hash_table_create): Create the hash table with malloc, not bfd_zalloc.
2003-03-27 * elfxx-ia64.c (elfNN_ia64_relax_section): Reset self_dtpmod_offsetJakub Jelinek1-0/+1
to -1 before recomputing got offsets.
2003-03-202003-03-20 H.J. Lu <hjl@gnu.org>H.J. Lu1-0/+4
* elfxx-ia64.c (elfNN_ia64_relax_section): Don't try relax for non-ELF outputs.
2003-03-18 * elfxx-ia64.c (elfNN_ia64_relax_section): Handle relaxationJakub Jelinek1-4/+10
againt mergeable sections. Take r_addend into account when caching trampolines.
2003-03-18 * elfxx-ia64.c (get_dyn_sym_info): Return NULL gracefully forRichard Henderson1-1/+5
local symbols that have no dyninfo.
2003-03-032003-03-03 H.J. Lu <hjl@gnu.org>H.J. Lu1-31/+0
* elfxx-ia64.c (USE_BRL): Removed. (oor_ip): Removed.
2003-03-01 * elfxx-ia64.c (elfNN_ia64_relax_section): Correct boundsRichard Henderson1-2/+2
for ltoff22x relaxation.
2003-02-28 * elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add want_gotx;Richard Henderson1-215/+346
(elfNN_ia64_check_relocs): Set it. (allocate_global_data_got): Check it. (allocate_local_got): Likewise. (allocate_dynrel_entries): Likewise. (elfNN_ia64_relax_ldxmov): New. (elfNN_ia64_relax_section): Handle LTOFF22X, LDXMOV. (elfNN_ia64_choose_gp): Split out from ... (elfNN_ia64_final_link): ... here.
2003-02-17Fix the behaviour of --allow-shlib-undefined, so that it does what it claimsNick Clifton1-4/+3
to do. Add an inverse switch. Update the documentation.
2003-02-04bfdAlan Modra1-2/+1
* elf-bfd.h (enum elf_link_info_type): Remove. (struct bfd_elf_section_data): Move sec_info_type, use_rela_p fields to struct sec. Remove linkonce_p field. (elf_linkonce_p): Delete. (elf_discarded_section): Update for sec_info_type change. * section.c (struct sec): Add sec_info_type, use_rela_p, has_tls_reloc, flag11, flag12, flag13, flag14, flag15, flag16, flag20, flag24. (ELF_INFO_TYPE_NONE): Define. (ELF_INFO_TYPE_STABS): Define. (ELF_INFO_TYPE_MERGE): Define. (ELF_INFO_TYPE_EH_FRAME): Define. (ELF_INFO_TYPE_JUST_SYMS): Define. (STD_SECTION): Update struct sec initializer. * ecoff.c (bfd_debug_section): Likewise. * elf.c: Likewise. Update occurrences of sec_info_type and use_rela_p. * elflink.h: Likewise. * elf-eh-frame.c: Likewise. * elf64-alpha.c: Likewise. * elfxx-ia64.c: Likewise. * elfxx-mips.c: Likewise. * bfd-in2.h: Regenerate. * elf32-sparc.c (sec_do_relax): Use elf_section_data macro rather than referring to used_by_bfd. * elf64-sparc.c (sec_do_relax): Likewise. * elf64-mmix.c (mmix_elf_section_data): Likewise. * elfxx-mips.c (mips_elf_section_data): Likewise. * ieee.c (ieee_slurp_section_data): Use ieee_per_section macro. (ieee_get_section_contents): Likewise. (ieee_new_section_hook): Formatting. (ieee_canonicalize_reloc): Remove commented out code. * mmo.c (mmo_section_data): Define. Use throughout file. * oasys.c (oasys_get_section_contents): Use oasys_per_section macro. gas * config/obj-elf.c (obj_elf_change_section): Set SEC_LINK_ONCE and SEC_LINK_DUPLICATES_DISCARD directly rather than using elf_linkonce_p.
2003-01-17 * elfxx-ia64.c (elfNN_ia64_relocate_section): HandleJakub Jelinek1-4/+13
R_IA64_TPREL64[LM]SB against non-global symbol properly. * ld-ia64/tlspic1.s: Add tests for IE in shared libraries. * ld-ia64/tlspic.rd: Adjust. * ld-ia64/tlspic.dd: Adjust. * ld-ia64/tlspic.sd: Adjust.
2003-01-16 * elfxx-ia64.c (struct elfNN_ia64_link_hash_table): AddJakub Jelinek1-6/+37
self_dtpmod_done and self_dtpmod_offset. (allocate_global_data_got): Only use one got entry for all dtpmod relocs against local symbols. (allocate_dynrel_entries): Only need .rela.got entry for dtpmod against global symbol. (elfNN_ia64_size_dynamic_sections): Initialize self_dtpmod_offset. Reserve space in .rela.got for the local dtpmod entry. (set_got_entry): Initialize the common local dtpmod .got entry. (elfNN_ia64_relocate_section): Handle R_IA_64_DTPREL64LSB and R_IA_64_DTPREL64MSB. * config/tc-ia64.c (ia64_cons_fix_new): Handle @dtprel() in data. * ld-ia64/ia64.exp: New. * ld-ia64/tlsbin.dd: New test. * ld-ia64/tlsbinpic.s: New test. * ld-ia64/tlsbin.rd: New test. * ld-ia64/tlsbin.s: New test. * ld-ia64/tlsbin.sd: New test. * ld-ia64/tlsbin.td: New test. * ld-ia64/tlsg.s: New test. * ld-ia64/tlsg.sd: New test. * ld-ia64/tlslib.s: New test. * ld-ia64/tlspic1.s: New test. * ld-ia64/tlspic2.s: New test. * ld-ia64/tlspic.dd: New test. * ld-ia64/tlspic.rd: New test. * ld-ia64/tlspic.sd: New test. * ld-ia64/tlspic.td: New test.