aboutsummaryrefslogtreecommitdiff
path: root/ld
AgeCommit message (Collapse)AuthorFilesLines
2005-05-17binutils/Daniel Jacobowitz3-2/+9
* doc/Makefile.am (config.texi): Don't use $<. * doc/Makefile.in: Regenerated. ld/ * Makefile.am (ldver.texi): Don't use $<. * Makefile.in: Regenerated. gas/ * doc/Makefile.am (gasver.texi): Don't use $<. * doc/Makefile.in: Regenerated.
2005-05-17 * Makefile.am (AM_MAKEINFOFLAGS, TEXI2DVI): Explicitly includeDaniel Jacobowitz3-4/+10
$(srcdir) before $(BFDDIR)/doc. * Makefile.in: Regenerated.
2005-05-17bfd/H.J. Lu10-89/+431
2005-05-17 H.J. Lu <hongjiu.lu@intel.com> PR 797 * elf32-i386.c (elf_i386_size_dynamic_sections): Also remove empty sdynbss section. * elf64-x86-64.c (elf64_x86_64_size_dynamic_sections): Likewise. ld/ 2005-05-17 H.J. Lu <hongjiu.lu@intel.com> PR 797 * ldexp.c (exp_fold_tree_1): Renamed from exp_fold_tree and take take a bfd_boolean, mark_used. Ignore assert failure if mark_used is TRUE. (exp_fold_tree) Call exp_fold_tree_1 with mark_used == FALSE. (exp_fold_tree_no_dot): Updated to take a bfd_boolean, mark_used and pass down. (fold_unary): Likewise. (fold_binary): Likewise. (fold_trinary): Likewise. (exp_binop): Add FALSE to call to exp_fold_tree_no_dot. (exp_trinop): Likewise. (exp_unop): Likewise. (exp_nameop): Likewise. (exp_get_vma): Likewise. (exp_get_fill): Likewise. (exp_get_abs_int): Likewise. (fold_name): Likewise. Set SEC_KEEP in output section flags. (exp_mark_used_section): New. * ldexp.h (exp_mark_used_section): New. * ldlang.c (lang_output_section_statement_lookup_1): Set the ignored field to FALSE. (lang_mark_used_section_1): New. (lang_mark_used_section): Call lang_mark_used_section_1. (strip_excluded_output_sections): Call lang_mark_used_section and check for unused sections. (lang_size_sections_1): Skip an output section if it should be ignored. (lang_do_assignments_1): Likewise. (lang_process): Don't call lang_mark_used_section here. * ldlang.h (lang_output_section_statement_type): Change all_input_readonly to bitfield. Add ignored. ld/testsuite/ 2005-05-17 H.J. Lu <hongjiu.lu@intel.com> PR 797 * empty-aligned.d: New file. * empty-aligned.exp: Likewise. * empty-aligned.s: Likewise. * empty-aligned.t: Likewise.
2005-05-17(GENERATE_PIE_SCRIPT): Define as "yes".Nick Clifton3-0/+8
2005-05-17ldlang.c (print_assignment): Do not rely upon a valid result having a sectionNick Clifton2-2/+13
associated with it. elf32-arm.c (elf32_arm_final_link_relocate): Gracefully handle the situation where a symbols's section is not known but a section relative R_ARM_RELATIVE reloc has to be generated for the Symbian OS.
2005-05-17* ldlang.c (Scan_for_self_assignment): Check an assignment tree toNick Clifton3-9/+119
see if the same value is being used on the rhs as on the lhs. (print_assignment): Call scan_for_self_assignment and if it returns true, do no display the result of the computation but instead just the final value of the symbol on the lhs. * ld.texinfo: Document this behaviour and provide an example of when it will happen.
2005-05-15./Daniel Jacobowitz8-3977/+10179
* ylwrap: Import from Automake 1.9.5. binutils/ * acinclude.m4: Remove obsolete code. * configure.in: Update AC_PREREQ. * doc/Makefile.am (binutils_TEXINFOS): Define. (config.texi): Depend on distributed files instead of built files. (binutils.dvi, binutils.info): Remove unnecessary rules. (DISTCLEANFILES): Remove. (install-data-local): Renamed from install. (info-local): Renamed from info. * Makefile.in, aclocal.m4, config.in, configure, doc/Makefile.in: Regenerated. gas/ * Makefile.am (m68k-parse.c, itbl-parse.c): Update ylwrap invocation. * Makefile.in: Regenerated. ld/ * Makefile.am (AM_MAKEINFOFLAGS): Define. (TEXI2DVI): Define. (ldver.texi): Depend on distributed files instead of built files. (ld.info): Include $(srcdir) in the rule target. Remove actions. (ld.dvi): Remove actions. (MAINTAINERCLEANFILES): Add configdoc.texi. (CONFIG_STATUS_DEPENDENCIES): Add bfd/configure.in. (install-data-local): Renamed from install. (Makefile): Remove explicit dependency. * acinclude.m4: Remove obsolete code. * configure.in: Update AC_PREREQ. Remove extra $CONFIG_SHELL. * Makefile.in, aclocal.m4, config.in, configure: Regenerated. gdb/ * Makefile.in (.y.c): Update ylwrap invocation.
2005-05-12Update FSF addressesNick Clifton133-157/+157
2005-05-12 * scripttempl/elfxtensa.sc: Sync up with elf.sc.Bob Wilson3-31/+73
* emulparams/elf32xtensa.sh (PLT, GOT): Define.
2005-05-11 * ld-undefined/undefined.exp: xfail xtensa-*-*.Bob Wilson2-0/+6
2005-05-11 * ldgram.y: Add SPECIAL token.Alan Modra7-13/+135
(sect_constraint): Handle SPECIAL. * ldlang.c (lang_output_section_find_1): Don't match SPECIAL. (map_input_to_output_sections): Likewise. * ldlex.l (SPECIAL): Define. * emulparams/elf32ppc.sh (DATA_GOT, SDATA_GOT, SEPARATE_GOTPLT, GOT, PLT, GOTPLT): Define. * emultempl/ppc32elf.em (old_plt, old_got): New static vars. (ppc_after_open): New function. (PARSE_AND_LIST_PROLOGUE): Define OPTION_OLD_LPT and OPTION_OLD_GOT. (PARSE_AND_LIST_LONGOPTS): Add "bss-plt" and "sdata-got". (PARSE_AND_LIST_OPTIONS): Document them. (PARSE_AND_LIST_ARGS_CASES): Handle them. (LDEMUL_AFTER_OPEN): Define. * scripttempl/elf.sc (PLT): Don't override existing define. (DATA_GOT, SDATA_GOT): Define and use to enable alternate got placement rather than using NO_SMALL_DATA. Emit GOTPLT for RELRO_NOW.
2005-05-10 * scripttempl/elf.sc (DATA_SEGMENT_RELRO_GOTPLT_END): Delete.Alan Modra2-9/+10
(DATA_SEGMENT_RELRO_END): Use SEPARATE_GOTPLT value. (GOTPLT): Remove DATA_SEGMENT_RELRO_GOTPLT_END. Place after DATA_SEGMENT_RELRO_END in script.
2005-05-102005-05-09 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-0/+7
* emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols): Don't use a removed section.
2005-05-102005-05-09 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-1/+8
* ldmain.c (reloc_overflow): Use output_bfd if the symbol is defined in the ABS section.
2005-05-07bfd/Alan Modra7-31/+42
* elf-bfd.h (struct elf_backend_data): Remove got_symbol_offset. * elfxx-target.h (elf_backend_got_symbol_offset): Delete. * elflink.c (_bfd_elf_create_got_section): Use zero in place of got_symbol_offset. * elf-m10300.c (_bfd_mn10300_elf_create_got_section): Likewise. * elf32-frv.c (_frv_create_got_section): Likewise. * elf32-i370.c (i370_elf_finish_dynamic_sections): Delete ppc code. (elf_backend_got_symbol_offset): Don't define. * elf64-ppc.c (elf_backend_got_symbol_offset): Don't define. * elf32-ppc.c (struct ppc_elf_link_hash_table): Add got_header_size and got_gap. (ppc_elf_create_got): Tidy. (ppc_elf_create_dynamic_sections): Don't set SEC_IN_MEMORY for .plt. (ppc_elf_check_relocs): Reduce string comparisons by using elf.hgot. (ppc_elf_gc_sweep_hook): Likewise. (ppc_elf_relocate_section): Likewise. (ppc_elf_finish_dynamic_symbol): Likewise. (allocate_got): New function. (allocate_dynrelocs): Use allocate_got. (ppc_elf_size_dynamic_sections): Likewise. Delay tlsld_got allocation so that local got can refcount it. Set got_header_size. (ppc_elf_relocate_section): Use value of elf.hgot rather than hard- coded 4. (ppc_elf_finish_dynamic_sections): Likewise. (elf_backend_got_symbol_offset): Don't define. (elf_backend_got_header_size): Ditto. ld/testsuite/ * ld-powerpc/tlsexe32.d: Update for changed got layout. * ld-powerpc/tlsexe32.g: Likewise. * ld-powerpc/tlsexe32.r: Likewise. * ld-powerpc/tlsso32.d: Likewise. * ld-powerpc/tlsso32.g: Likewise. * ld-powerpc/tlsso32.r: Likewise.
2005-05-072005-05-06 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-1/+6
* emultempl/elf32.em (gld${EMULATION_NAME}_provide_init_fini_syms): Put back !link_info.relocatable.
2005-05-06Mention PR.H.J. Lu1-0/+1
2005-05-062005-05-06 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-1/+6
* emultempl/elf32.em (gld${EMULATION_NAME}_provide_init_fini_syms): Just check link_info.executable.
2005-05-06Update the address and phone number of the FSF organization in the GPL noticesNick Clifton2-44/+98
2005-05-05bfd/H.J. Lu2-0/+6
2005-05-05 H.J. Lu <hongjiu.lu@intel.com> * elflink.c (_bfd_elf_provide_section_bound_symbols): Use "__bss_start" instead of "_edata" as fallback. ld/ 2005-05-05 H.J. Lu <hongjiu.lu@intel.com> * scripttempl/elf.sc: Document the usage of __bss_start.
2005-05-052005-05-05 Paul Brook <paul@codesourcery.com>Paul Brook7-8/+70
bfd/ * config.bfd: Use bfd_elf32_i386_vxworks_vec for i?86-*-vxworks. * configure.in: Add bfd_elf32_i386_vxworks_vec. i386 targets need elf-vxworks.lo. * configure: Regenerate. * Makefile.am (BFD32_BACKENDS): Add elf-vxworks.lo. (BFD32_BACKENDS_CFILES): Add elf-vxworks.c. (elf32-i386.lo): Depend on elf-vxworks.h. (elf-vxworks.lo): New rule. * Makefile.in: Regenerate. * elf-bfd.h (elf_backend_data): Update type of elf_backend_emit_relocs. (_bfd_elf_link_output_relocs): Update prototype. * elflink.c (_bfd_elf_link_output_relocs): Always use bed->elf_backend_emit_relocs when outputting relocations. * elfxx-target.h (elf_backend_emit_relocs): Default to _bfd_elf_link_output_relocs. * targets.c (bfd_elf32_i386_vxworks_vec): Declare. (_bfd_target_vector): Add bfd_elf32_i386_vxworks_vec. * elf32-i386.c: Add elf32-i386-vxworks target BFD. (elf_i386_plt0_entry): Remove padding. (elf_i386_pic_plt0_entry): Ditto. (PLTRESOLVE_RELOCS_SHLIB, PLTRESOLVE_RELOCS): Define. (PLT_NON_JUMP_SLOT_RELOCS): Define. (elf_i386_link_hash_table): Add srelplt2, hgot, hplt, is_vxworks and plt0_pad_byte fields. (elf_i386_link_hash_table_create): Zero them. (elf_i386_create_dynamic_sections): Create static relocation section. (allocate_dynrelocs): Allocate space for static PLT relocations. (elf_i386_size_dynamic_sections): Save shortcuts to PLT and GOT symbols. Give PLT symbols function type. Don't strip PLT sections if we have exported symbols from them. (elf_i386_finish_dynamic_symbol): Fill in VxWorks PLT static relocation section. Don't mark _GLOBAL_OFFSET_TABLE_ as absolute on VxWorks. (elf_i386_finish_dynamic_sections): Allow different pad bytes. Add relocation for GOT location. Fill in PLT static relocations. (elf_i386_vxworks_link_hash_table_create): New function. (elf_i386_vxworks_link_output_symbol_hook): New function. * elf-vxworks.h: New file. gas/ * config/tc-i386.h (ELF_TARGET_FORMAT): Define for TE_VXWORKS. gas/testsuite/ * gas/i386/i386.exp: Don't run divide test on vxworks. ld/ * Makefile.am: Add eelf_i386_vxworks. * Makefile.in: Regenerate. * configure.tgt: Make i?86-*-vxworks use targ_emul=elf_i386_vxworks. * emulparams/elf_i386_vxworks.sh: New file. * emulparams/vxworks.sh: New file. * scripttempl/elf.sc: Add DATA_END_SYMBOLS and ETEXT_NAME.
2005-05-05Replace linux-gnu with linux-* to allow for versions of Linux which do not useNick Clifton3-6/+12
glibc.
2005-05-052005-05-05 Paul Brook <paul@codesourcery.com>Paul Brook6-0/+33
gas/testsuite/ * lib/gas-defs.exp (regexp_diff): Pass test if last line is "#...". ld/testsuite/ * lib/ld-lib.exp (regexp_diff): Pass test if last line is "#...". * ld-elfweak/elfweak.exp: Run size2.d. * ld-elfwaek/size2.d: New file. * ld-elfwaek/size2a.s: New file. * ld-elfwaek/size2b.s: New file.
2005-05-04bfd/H.J. Lu2-29/+7
2005-05-04 H.J. Lu <hongjiu.lu@intel.com> * bfd-in.h (_bfd_elf_provide_section_bound_symbols): New. * bfd-in2.h: Regenerated. * elflink.c (bfd_elf_set_symbol): New. (_bfd_elf_provide_symbol): Call it. (_bfd_elf_provide_section_bound_symbols): New. ld/ 2005-05-04 H.J. Lu <hongjiu.lu@intel.com> * emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols): Call _bfd_elf_provide_section_bound_symbols.
2005-05-04bfd/Alan Modra14-25/+99
* section.c (struct bfd_section): Replace link_order_head and link_order_tail with map_head and map_tail union. (STD_SECTION): Update. (_bfd_strip_section_from_output): Delete. * aoutx.h: Update throughout for above changes. * coff-ppc.c: Likewise. * cofflink.c: Likewise. * ecoff.c: Likewise. * elf-eh-frame.c: Likewise. * elf-m10300.c: Likewise. * elf.c: Likewise. * elf32-arm.c: Likewise. * elf32-cris.c: Likewise. * elf32-hppa.c: Likewise. * elf32-i386.c: Likewise. * elf32-m32r.c: Likewise. * elf32-m68hc1x.c: Likewise. * elf32-m68k.c: Likewise. * elf32-ppc.c: Likewise. * elf32-s390.c: Likewise. * elf32-sh.c: Likewise. * elf32-vax.c: Likewise. * elf32-xtensa.c: Likewise. * elf64-alpha.c: Likewise. * elf64-hppa.c: Likewise. * elf64-ppc.c: Likewise. * elf64-s390.c: Likewise. * elf64-sh64.c: Likewise. * elf64-x86-64.c: Likewise. * elflink.c: Likewise. * elfxx-ia64.c: Likewise. * elfxx-mips.c: Likewise. * elfxx-sparc.c: Likewise. * linker.c: Likewise. * merge.c: Likewise. * pdp11.c: Likewise. * xcofflink.c: Likewise. * elflink.c (bfd_boolean bfd_elf_size_dynsym_hash_dynstr): Split out from bfd_elf_size_dynamic_sections. * bfd-in.h (bfd_boolean bfd_elf_size_dynsym_hash_dynstr): Declare. * bfd-in2.h: Regenerate. ld/ * ldemul.c: Include bfdlink.h. (ldemul_before_allocation): Assume before_allocation is non-zero. (before_allocation_default): Call strip_excluded_output_sections. * ldlang.c (stripped_excluded_sections): New variable. (lang_add_section): Build input section list for each output section, attached via map_head and map_tail pointers. (strip_excluded_output_sections): Make global. Traverse the input section lists to find which output sections can go. Clear link_order pointers and set stripped_excluded_sections. (lang_process): Call strip_excluded_output_sections. * ldlang.h (strip_excluded_output_sections): Declare. * ldwrite.c: Update throuhout for link_order_head -> map_head change. * emultempl/aix.em (before_allocation): Call strip_excluded_output_sections. * emultempl/armcoff.em (before_allocation): Likewise. * emultempl/beos.em (before_allocation): Likewise. * emultempl/linux.em (before_allocation): Likewise. * emultempl/pe.em (before_allocation): Likewise. * emultempl/sunos.em (before_allocation): Likewise. * emultempl/elf32.em (before_allocation): Likewise. Call bfd_elf_size_dynsym_hash_dynstr too. * emultempl/lnk960.em (lnk960_before_allocation): Delete. (ld_lnk960): Use before_allocation_default.
2005-05-03bfd/H.J. Lu3-63/+91
2005-05-02 H.J. Lu <hongjiu.lu@intel.com> * bfd.c (bfd): Remove section_tail and add section_last. (bfd_preserve): Likewise. (bfd_preserve_save): Likewise. (bfd_preserve_restore): Likewise. * opncls.c (_bfd_new_bfd): Likewise. * coffcode.h (coff_compute_section_file_positions): Updated. (coff_compute_section_file_positions): Likewise. * elf.c (assign_section_numbers): Likewise. * elf32-i370.c (i370_elf_size_dynamic_sections): Likewise. * elf64-mmix.c (mmix_elf_final_link): Likewise. * elfxx-ia64.c (elfNN_ia64_object_p): Likewise. * elfxx-mips.c (_bfd_mips_elf_link_hash_table_create): Likewise. * sunos.c (sunos_add_dynamic_symbols): Likewise. * xcofflink.c (_bfd_xcoff_bfd_final_link): Likewise. * ecoff.c (bfd_debug_section): Initialize prev. * section.c (bfd_section): Add prev. (bfd_section_list_remove): Updated. (bfd_section_list_append): New. (bfd_section_list_insert_after): New. (bfd_section_list_insert_before): New. (bfd_section_list_insert): Removed. (bfd_section_removed_from_list): Updated. (STD_SECTION): Initialize prev. (bfd_section_init): Updated. (bfd_section_list_clear): Updated. * bfd-in2.h: Regenerated. gas/ 2005-05-02 H.J. Lu <hongjiu.lu@intel.com> * write.c (write_object_file): Use bfd_section_double_list_remove to remove sections. ld/ 2005-05-02 H.J. Lu <hongjiu.lu@intel.com> * emultempl/elf32.em (gld${EMULATION_NAME}_strip_empty_section): Updated for bfd_section_list_remove change. * ldlang.c (lang_insert_orphan): Likewise. (strip_excluded_output_sections): Likewise. (sort_sections_by_lma): New. (lang_check_section_addresses): Sort the sections before checking addresses.
2005-04-29 * configure.tgt: Add h8300*-*-rtemscoff.Daniel Jacobowitz2-2/+7
Switch h8300*-*-rtems* to elf.
2005-04-28 * ldgram.y (lang_memory_region_type): Make static.Ben Elliston9-23/+30
(ldgram_want_filename): Likewise. * ldemul.c (ld_emulation): Make static. * ldfile.h (ldfile_find_command_file): Remove extern. * ldfile.c (ldfile_find_command_file): Make static. * ldlang.h (unique_section_list): Remove extern declaration. * ldlang.c (unique_section_list): Make static. * mri.h (symbol_truncate): Remove extern declaration. * mri.c (symbol_truncate): Make static. (order, only_load, address, alias): Likewise. (alignment, subalignment): Likewise.
2005-04-282005-04-27 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-1/+20
* emultempl/elf32.em (gld${EMULATION_NAME}_provide_bound_symbols): Use the first SEC_ALLOC section which isn't SEC_READONLY or the last SEC_ALLOC section if such a section doesn't exist.
2005-04-26* ld-fastcall/fastcall.exp: Don't run on i*86-*-openbsd*.Mark Kettenis2-1/+3
2005-04-26* ld-srec/srec.exp (run_srec_test): Deal with ProPolice onMark Kettenis2-1/+13
*-*-openbsd*.
2005-04-25bfd/H.J. Lu4-3/+9
2005-04-25 H.J. Lu <hongjiu.lu@intel.com> PR 858 * elflink.c (elf_link_input_bfd): Make non-debugging reference to discarded section an error. ld/testsuite/ 2005-04-25 H.J. Lu <hongjiu.lu@intel.com> * ld-discard/extern.d: Expect error. * ld-discard/start.d: Likewise. * ld-discard/static.d: Likewise.
2005-04-24* configure.host: Add *-*-openbsd support.Mark Kettenis2-0/+13
2005-04-19bfd/Alan Modra2-4/+5
* elf32-ppc.c (ppc_elf_check_relocs): Don't bother with dynamic relocs in non-SEC_ALLOC sections. (ppc_elf_gc_sweep_hook): Likewise. (ppc_elf_relax_section): Likewise. (ppc_elf_relocate_section): Likewise. ld/testsuite/ * ld-powerpc/reloc.d: Update to suit removal of non-alloc relocs.
2005-04-15 * bfd/bfd-in.h (bfd_elf32_arm_set_target_relocs): Update prototype.Julian Brown3-2/+31
* bfd/bfd-in2.h: Regenerate. * bfd/elf32-arm.c (elf32_arm_link_hash_table): New field, 'use_blx'. (elf32_arm_link_hash_table_create): Initialise fix_v4bx, use_blx. (bfd_elf32_arm_set_target_relocs): Handle use_blx. (elf32_arm_final_link_relocate): Use Thumb BLX for R_ARM_THM_PC22 relocations if requested to. (allocate_dynrelocs): Don't count size of omitted Thumb stubs based on use_blx rather than symbian_p. (elf32_arm_finish_dynamic_symbol): Don't output Thumb PLT stubs if use_blx is in effect. (elf32_arm_symbian_link_hash_table_create): Enable use_blx by default for SymbianOS. * ld/ld.texinfo: Document --use-blx. * ld/emultempl/armelf.em (use_blx): New variable. (arm_elf_create_output_section_statements): Communicate value of use_blx to bfd. (PARSE_AND_LIST_PROLOGUE): Add OPTION_USE_BLX. (PARSE_AND_LIST_OPTIONS): Add --use-blx option. (PARSE_AND_LIST_ARGS_CASES): Add OPTION_USE_BLX case.
2005-04-15 * ld-d10v/default_layout.d: Update for unused section removal.Alan Modra2-5/+5
2005-04-14bfd/Alan Modra5-190/+210
* Makefile.am (NO_WERROR): Define. * warning.m4: New file * acinclude.m4: Include warning.m4. * configure.in: Invoke AM_BINUTILS_WARNINGS. * Makefile.in: Regenerate. * configure: Regenerate. bfd/doc/ * Makefile.in: Regenerate. binutils/ * Makefile.am (NO_WERROR): Define. Use instead of -Wno-error. * configure.in: Include ../bfd/warning.m4 contents. * Makefile.in: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. gas/ * Makefile.am (NO_WERROR): Define. Use instead of -Wno-error. * acinclude.m4: Include ../bfd/warning.m4. * configure.in: Invoke AM_BINUTILS_WARNINGS. * Makefile.in: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. gprof/ * Makefile.am (NO_WERROR): Define. * acinclude.m4: Include ../bfd/warning.m4. * configure.in: Invoke AM_BINUTILS_WARNINGS. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. ld/ * Makefile.am (NO_WERROR): Define. Use instead of -Wno-error. * configure.in: Include ../bfd/warning.m4 contents. * Makefile.in: Regenerate. * configure: Regenerate. opcodes/ * Makefile.am (NO_WERROR): Define. * configure.in: Invoke AM_BINUTILS_WARNINGS. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate.
2005-04-132005-04-14 David S. Miller <davem@davemloft.net>Jakub Jelinek16-37/+976
bfd/ Add TLS support for 64-bit Sparc ELF. * elf64-sparc.c (sparc64_elf_dyn_relocs, sparc64_elf_link_hash_entry, sparc64_elf_obj_tdata): New structs. (GOT_UNKNOWN, GOT_NORMAL, GOT_TLD_GD, GOT_TLD_IE, sparc64_elf_hash_entry, sparc64_elf_tdata, sparc64_elf_local_got_tls_type): New defines. (sparc64_elf_mkobject): New function. (sparc64_elf_link_hash_table): Add members for dynamic linker sections PLT, RELPLT, DYNBSS, and RELBSS. Add tls_ldm_got uion to track TLS GOT references. Add sym_sec to cache mappings from local sym to section. (link_hash_newfunc): New function. (sparc64_elf_bfd_link_hash_table_create): Rename to sparc64_elf_link_hash_table_create for consistency. Pass link_hash_newfunc to _bfd_elf_link_hash_table_init. (sparc64_elf_create_dynamic_sections): Initialize new section members of sparc64_elf_link_hash_table. Only init srelbss if not-shared. (sparc64_elf_copy_indirect_symbol, sparc64_elf_tls_transition): New functions. (SPARC_NOP): Define. (sparc64_elf_build_plt, sparc64_elf_plt_entry_offset, sparc64_elf_plt_ptr_offset): Delete. (sparc64_plt_entry_build): New function to build PLT entries gradually instread of all at once at the end of linking. (sparc64_elf_check_relocs): Delete dynobj, sgot, and srelgot local vars. Get them from sparc64_elf_hash_table instead. Check early on if r_symndx is in bounds. Handle TLS transitions. Account for TLS GOT references and DF_STATIC_TLS, as needed. For TLS relocs, record the tls_type in either sparc64_elf_local_got_tls_type or sparc64_elf_hash_entry as appropriate. For R_SPARC_TLS_{GD,LDM}_CALL, emit a reference to the __tls_get_addr symbol. For PLT relocs, track references via h->plt.refcount. When R_SPARC_{PC10,PC22,PC_HH22,PC_HM10, PC_LM22} and h not-NULL, set h->non_got_ref. For global data symbol references, count the number of relocations needed for that symbol. For default switch case, don't error, this lets the TLS relocs not explicitly handled by this function get accepted. (sparc64_elf_gc_mark_hook, sparc64_gc_sweep_hook): New functions. (sparc64_elf_adjust_dynamic_symbol): Remove dynobj local var, get it from sparc64_elf_hash_table. Store the real PLT offset in h->plt.offset, and build PLT entries one at a time. Also get .dynbss section pointer from htab. (allocate_dynrelocs, readonly_dynrelocs, sparc64_omit_section_dynsym): New functions. (sparc64_elf_omit_section_dynsym): Use these new functions as helpers. (dtpoff_base, tpoff): New functions. (sparc64_elf_relocate_section): Kill dynobj, sgot, and splt locals, get them from sparc64_elf_hash_table. Handle TLS relocations and refcounting in main relocation loop. (sparc64_elf_finish_dynamic_symbol): Use sparc64_elf_link_hash_table. Build PLT entries as we see them. Handle TLS GOT relocations. (sparc64_elf_finish_dynamic_sections): Get sgot and dynobj from sparc64_elf_hash_table. Initialize only PLT header not all entries since we not build PLT entries one by one. (elf_backend_copy_indirect_symbol, bfd_elf64_mkobject, elf_backend_gc_mark_hook, elf_backend_gc_sweep_hook, elf_backend_can_gc_sections, elf_backend_can_refcount): Define. ld/testsuite/ * ld-selective/sel-dump.exp: Do not exclude sparc64-*. * ld-selective/selective.exp: Likewise. * ld-sparc/sparc.exp: Add {32,64}-bit prefix to test names so we know which one is failing. Run sparc64 TLS tests on multi-arch sparc platforms. * ld-sparc/tls64.sd, ld-sparc/tlssunbin64.dd, ld-sparc/tlssunbin64.rd, ld/testsuite/ld-sparc/tlssunbin64.sd, ld-sparc/tlssunbin64.td, ld-sparc/tlssunnopic64.dd, ld-sparc/tlssunnopic64.rd, ld-sparc/tlssunnopic64.sd, ld-sparc/tlssunpic64.dd, ld-sparc/tlssunpic64.rd, ld-sparc/tlssunpic64.sd, ld-sparc/tlssunpic64.td): Update now that sparc64 ELF does support TLS.
2005-04-13bfd/H.J. Lu3-0/+22
2005-04-13 Daniel Jacobowitz <dan@codesourcery.com> * elflink.c (elf_link_input_bfd): Update check for removed sections. ld/testsuite/ 2005-04-13 H.J. Lu <hongjiu.lu@intel.com> * ld-elf/empty.d: New file. * ld-elf/empty.s: Likewise.
2005-04-12bfd/Alan Modra4-10/+36
* Makefile.am: Run "make dep-am". * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * libcoff.h: Regenerate. bfd/doc/ * Makefile.in: Regenerate. binutils/ * Makefile.am: Run "make dep-am". (syslex.o, sysinfo.o, arparse.o, arlex.o): Add -Wno-error to command. (sysroff.o, defparse.o, deflex.o): Likewise. (nlmheader.o, rcparse.o, rclex.o): Likewise. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * config.in: Regenerate. * configure: Regenerate. gas/ * Makefile.am: Run "make dep-am". * Makefile.in: Regenerate. ld/ * Makefile.am: Run "make dep-am". (ldgram.o, ldlex.o, deffilep.o): Add -Wno-error to command. * Makefile.in: Regenerate. * config.in: Regenerate.
2005-04-112005-04-11 David S. Miller <davem@davemloft.net>Jakub Jelinek5-27/+34
* elf32-sparc.c (elf32_sparc_relocate_section, R_SPARC_TLS_LDO_{HIX22,LOX10}): When not shared, transition to R_SPARC_TLS_LE_{HIX22,LOX10}. (elf32_sparc_relocate_section, R_SPARC_TLS_{LDO,LE}_HIX22): Only xor relocation with 0xffffffff if R_SPARC_TLS_LE_HIX22. (elf32_sparc_relocate_section, R_SPARC_TLS_{LDO,LE}_LOX10): Only or 0x1c00 into relocation if R_SPARC_TLS_LE_HIX22. * ld-sparc/tlssunbin32.dd: Update for TLS relocation fixes. * ld-sparc/tlssunbin32.rd: Likewise. * ld-sparc/tlssunbin32.sd: Likewise. * ld-sparc/tlssunpic32.dd: Likewise.
2005-04-11 * emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): IgnoreAlan Modra2-0/+16
as_needed libs that were not needed. (gld${EMULATION_NAME}_check_needed): Likewise.
2005-04-07Include ldexp.h and ldlang.h so that ldfile.h can use the lang_input_statementNick Clifton2-0/+7
type.
2005-04-062005-04-06 Jakub Jelinek <jakub@redhat.com>Jakub Jelinek4-67/+486
* ldlang.c: Formatting. (walk_wild_consider_section): Remember return value from wildcardp. (is_simple_wild): Use strcspn instead of 2 strpbrk calls and strlen. (wild_spec_can_overlap): Use strcspn instead of strpbrk and strlen. 2005-04-06 Robert O'Callahan <rocallahan@novell.com> * ld.h (lean_section_userdata_type): Remove. (fat_section_userdata_type): Remove file field. (SECTION_USERDATA_SIZE): Remove. * ldlang.c (init_os): Eliminate initialization of unused lean_section_userdata_type. * ldlang.h (callback_t, walk_wild_section_handler_t): New typedefs. (struct lang_wild_statement_struct): Add walk_wild_section_handler and handler_data fields. * ldlang.c (callback_t): Removed. (walk_wild_consider_section, walk_wild_section_general, section_iterator_callback, find_section, is_simple_wild, match_simple_wild, walk_wild_section_specs1_wild0, walk_wild_section_specs1_wild1, walk_wild_section_specs2_wild1, walk_wild_section_specs3_wild2, walk_wild_section_specs4_wild2, wild_spec_can_overlap, analyze_walk_wild_section_handler): New functions. (lang_add_wild): Call analyze_walk_wild_section_handler. (walk_wild_section): Renamed to walk_wild_section_general and created a wrapper function. (section_iterator_callback_data): New typedef.
2005-04-04Add a check for <unistd.h> providing a prototype for getopt() which is ↵Nick Clifton7-18/+77
compatible with the one in include/getopt.h. If so then define HAVE_DECL_GETOPT.
2005-03-30 * bfd/bfd-in.h (bfd_elf32_is_arm_mapping_symbol_name): Add prototype.Julian Brown4-6/+13
* bfd/bfd-in2.h: Regenerate. * bfd/elf32-arm.c (elf32_arm_is_target_special_symbol): Rename call to bfd_elf32_is_arm_mapping_symbol_name. (elf32_arm_output_symbol_hook): Likewise. (arm_elf_find_function): Likewise, and include STT_NOTYPE in test for mapping symbols. (is_arm_mapping_symbol_name): Function moved from here... * bfd/cpu-arm.c (bfd_elf32_is_arm_mapping_symbol_name): ...to here, renamed and made global. * gas/config/tc-arm.c (mapping_state): Change documentation in function comment to cross-reference spec instead. Change type of mapping symbols to BSF_NO_TYPE. (arm_adjust_symtab): Don't change type of mapping symbols here. * gas/testsuite/gas/arm/mapping.d: Update expected output. * ld/testsuite/ld-arm/arm-app-abs32.d: Likewise. * ld/testsuite/ld-arm/arm-app.d: Likewise. * ld/testsuite/ld-arm/mixed-app.d: Likewise.
2005-03-29bfd/Daniel Jacobowitz10-2/+127
* bfd-in2.h, libbfd.h: Regenerated. * reloc.c: Add ARM TLS relocations. * elf32-arm.c (elf32_arm_howto_table): Add dynamic TLS relocations. (elf32_arm_tls_gd32_howto, elf32_arm_tls_ldo32_howto) (elf32_arm_tls_ldm32_howto, elf32_arm_tls_le32_howto) (elf32_arm_tls_ie32_howto): New. (elf32_arm_howto_from_type): Support TLS relocations. (elf32_arm_reloc_map): Likewise. (elf32_arm_reloc_type_lookup): Likewise. (TCB_SIZE): Define. (struct elf32_arm_obj_tdata): New. (elf32_arm_tdata, elf32_arm_local_got_tls_type): Define. (elf32_arm_mkobject): New function. (struct elf32_arm_relocs_copied): Add pc_count. (elf32_arm_hash_entry, GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD) (GOT_TLS_IE): Define. (struct elf32_arm_link_hash_table): Add tls_ldm_got. (elf32_arm_link_hash_newfunc): Initialize tls_type. (elf32_arm_copy_indirect_symbol): Copy pc_count and tls_type. (elf32_arm_link_hash_table_create): Initialize tls_ldm_got. (dtpoff_base, tpoff): New functions. (elf32_arm_final_link_relocate): Handle TLS relocations. (IS_ARM_TLS_RELOC): Define. (elf32_arm_relocate_section): Warn about TLS mismatches. (elf32_arm_gc_sweep_hook): Handle TLS relocations and pc_count. (elf32_arm_check_relocs): Detect invalid symbol indexes. Handle TLS relocations and pc_count. (elf32_arm_adjust_dynamic_symbol): Check non_got_ref. (allocate_dynrelocs): Handle TLS. Bind REL32 relocs to local calls. (elf32_arm_size_dynamic_sections): Handle TLS. (elf32_arm_finish_dynamic_symbol): Likewise. (bfd_elf32_mkobject): Define. gas/ * config/tc-arm.c (arm_parse_reloc): Add TLS relocations. (md_apply_fix3): Mark TLS symbols. (tc_gen_reloc): Handle TLS relocations. (arm_fix_adjustable): Ignore TLS relocations. (s_arm_elf_cons): Support expressions after decorated symbols. gas/testuite/ * gas/arm/tls.s, gas/arm/tls.d: New files. * gas/arm/arm.exp: Run TLS test. include/elf/ * arm.h: Add TLS relocations. ld/testsuite/ * ld-arm/tls-lib.s, ld-arm/tls-lib.d, ld-arm/tls-lib.r, ld-arm/tls-app.s, ld-arm/tls-app.d, ld-arm/tls-app.r: New files. * ld-arm/arm-lib.ld, ld-arm/arm-dyn.ld: Increase data segment alignment. * ld-arm/arm-elf.exp: Run TLS tests.
2005-03-29 * emultempl/elf32.em (gld${EMULATION_NAME}_layout_sections_again):Alan Modra4-68/+108
New function, extracted from static void gld${EMULATION_NAME}_finish. (gld${EMULATION_NAME}_strip_empty_sections): Likewise. (gld${EMULATION_NAME}_provide_init_fini_syms): Likewise. * emultempl/ppc64elf.em: Revert last change. (ppc_layout_sections_again): Use gld${EMULATION_NAME}_layout_sections_again. (ppc_finish): Don't call gld${EMULATION_NAME}_finish. Instead call gld${EMULATION_NAME}_strip_empty_sections and gld${EMULATION_NAME}_provide_init_fini_syms. * emultempl/hppaelf.em: Similarly.
2005-03-29 * emultempl/ppc64elf.em (need_laying_out): Delete. Remove all refs.Alan Modra3-30/+6
(ppc_finish): Don't call bfd_elf_discard_info. * emultempl/hppaelf.em: Similarly.
2005-03-28gas/H.J. Lu2-2/+7
2005-03-28 David Mosberger <davidm@hpl.hp.com> H.J. Lu <hongjiu.lu@intel.com> PR 803 NEWS: Mention "-mtune=[itanium1|itanium2]". * config/tc-ia64.c (md): Add tune. (md_parse_option): Accepted "-mtune=[itanium1|itanium2]". (md_show_usage): Add "-mtune=[itanium1|itanium2]". (extra_goodness): Prefer M- and I-unit NOPs for itanium2. F and B unit NOPs are discouraged for McKinley-derived cores. (md_begin): Don't hardcode the "extra_goodness()" function in the comment... (ia64_init): Set md.tune to itanium2. * doc/as.texinfo: Add -mtune=[itanium1|itanium2]". * doc/c-ia64.texi: Likewise. gas/testsuite/ 2005-03-28 H.J. Lu <hongjiu.lu@intel.com> PR 803 * gas/ia64/dv-imply.d: Pass -mtune=itanium1 to as. * gas/ia64/dv-mutex.d : Likewise. * gas/ia64/dv-safe.d: Likewise. * gas/ia64/dv-srlz.d.nop: Likewise. * gas/ia64/ldxmov-1.d: Likewise. * gas/ia64/opc-b.d: Likewise. * gas/ia64/opc-f.d: Likewise. * gas/ia64/opc-i.d: Likewise. * gas/ia64/opc-m.d: Likewise. * gas/ia64/operand-or.d: Likewise. * gas/ia64/pcrel.d: Likewise. * gas/ia64/pseudo.d: Likewise. * gas/ia64/tls.d: Likewise. ld/testsuite/ 2005-03-28 H.J. Lu <hongjiu.lu@intel.com> PR 803 * ld-ia64/ia64.exp: Pass -mtune=itanium1 to as.