aboutsummaryrefslogtreecommitdiff
path: root/bfd
AgeCommit message (Collapse)AuthorFilesLines
2008-12-18 Backport link test fix from upstream Libtool:Ralf Wildenhues1-39/+54
* libltdl.m4 (_LT_SYS_DYNAMIC_LINKER, _LT_LINKER_SHLIBS): Add cache variables to tests that require the linker to work. For shlibpath_overrides_runpath, this also changes the semantics to let the result from the C compiler take precedence. compiler take precedence. binutils/ * configure: Regenerate. opcodes/ * configure: Regenerate. bfd/ * configure: Regenerate. gas/ * configure: Regenerate. gprof/ * configure: Regenerate. ld/ * configure: Regenerate.
2008-12-18daily updateAlan Modra1-1/+1
2008-12-17 (cris_elf_relocate_section) <R_CRIS_8, R_CRIS_16, R_CRIS_32>: Add missingHans-Peter Nilsson2-1/+3
gate h != NULL for h->def_regular test.
2008-12-17 * elf32-cris.c (elf_cris_copy_indirect_symbol): Return withoutHans-Peter Nilsson2-0/+10
action for symbols other than bfd_link_hash_indirect.
2008-12-17daily updateAlan Modra1-1/+1
2008-12-16daily updateAlan Modra1-1/+1
2008-12-15 * elf32-cris.c (elf_cris_copy_indirect_symbol): New function.Hans-Peter Nilsson2-0/+34
(elf_backend_copy_indirect_symbol): Define to above.
2008-12-15 * elf32-cris.c (struct elf_cris_pcrel_relocs_copied): New memberHans-Peter Nilsson2-68/+140
r_type. Fix formatting. (cris_elf_relocate_section) <R_CRIS_8_PCREL, R_CRIS_16_PCREL> <R_CRIS_32_PCREL>: Also break early if the symbol doesn't get emitted as a dynamic one. (cris_elf_check_relocs) <R_CRIS_7, R_CRIS_16, R_CRIS_32>: Fork from PCREL relocs code and simplify; don't fall through. <R_CRIS_8_PCREL, R_CRIS_16_PCREL, R_CRIS_32_PCREL>: Simplify for pcrel only. For non-local or overridable symbols in a DSO, always keep count of relocs, not just when -Bsymbolic. Don't emit message nor mark as TEXTREL here. (elf_cris_discard_excess_dso_dynamics): Emit warning and mark as TEXTREL here, if there are nondiscarded pcrel relocs.
2008-12-15 * elf32-cris.c (elf_cris_got_elt_size) <symtab_hdr>: InitializeHans-Peter Nilsson2-1/+9
using ibfd, not abfd.
2008-12-15daily updateAlan Modra1-1/+1
2008-12-14daily updateAlan Modra1-1/+1
2008-12-13daily updateAlan Modra1-1/+1
2008-12-12daily updateAlan Modra1-1/+1
2008-12-11 PR 7041Alan Modra2-2/+8
* elf64-ppc.c (func_desc_adjust): Correct logic making fake function descriptors. Similarly correct making function descriptors dynamic.
2008-12-11daily updateAlan Modra1-1/+1
2008-12-10bfd/Alan Modra3-73/+114
* elf32-spu.h (struct spu_elf_params): Add num_regions. * elf32-spu.c (spu_elf_auto_overlay): Handle multiple overlay regions. ld/ * emultempl/spuelf.em (params): Init new field. (OPTION_SPU_NUM_REGIONS): Define. (PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add --num-regions. (PARSE_AND_LIST_ARGS_CASES): Handle --num-regions.
2008-12-10bfd/Alan Modra3-231/+253
* elf32-spu.g (struct spu_elf_params, enum _ovly_flavour): New. (spu_elf_setup): Declare. (spu_elf_create_sections, spu_elf_size_stubs): Update prototype. (spu_elf_build_stubs, spu_elf_check_vma): Likewise. * elf32-spu.c (struct spu_link_hash_table): Add "params". Remove various other fields now in "params". Adjust code throughout. (struct call_info, struct function_info): Move earlier in file. (struct spu_elf_stack_info): Likewise. (spu_elf_setup): New function. (spu_elf_create_sections): Remove args other than "info". (spu_elf_size_stubs, spu_elf_build_stubs, spu_elf_check_vma): Likewise. (maybe_needs_stubs): Remove "output_bfd" arg. Adjust all calls. (interesting_section): Similarly with "obfd" arg. (needs_ovl_stub): Adjust output_section test. (allocate_spuear_stubs): Likewise. (OVL_STUB_SIZE): Don't define. (ovl_stub_size): New function, use in place of OVL_STUB_SIZE. (build_stub): Test params->ovly_flavour rather than OVL_STUB_SIZE. (spu_elf_auto_overlay): Remove args other than "info". Make use of size returned from spu_elf_load_ovl_mgr. (spu_elf_stack_analysis): Remove args other than "info". (spu_elf_relocate_section): Tidy setting of "ea". ld/ * emultempl/spuelf.em (params): New var, used instead of various others. Adjust use throughout file. (spu_after_open): Call spu_elf_setup. (spu_place_special_section): Tidy. (spu_elf_load_ovl_mgr): Return total size of sections loaded. Move code setting overlay section alignment to.. (spu_before_allocation): ..here.
2008-12-10 * elf32-spu.c (define_ovtab_symbol): Don't abort on symbolsAlan Modra2-12/+24
defined in linker scripts. (discover_functions): Consider STT_SECTION symbols too. (collect_lib_sections): Don't cut short call tree traversal when function size is too large.
2008-12-10 * elf32-spu.c (find_function_stack_adjust): Don't limit numberAlan Modra2-12/+58
of insns scanned. Correct sp tests. Handle "fsmbi" and "andbi". (mark_detached_root): New function. (build_call_tree): Call it. (sort_calls): Don't do void* arithmetic.
2008-12-10daily updateAlan Modra1-1/+1
2008-12-09bfdTom Tromey2-1/+6
* pef.c (bfd_pef_parse_traceback_table): Add parens to placate gcc 4.4. binutils * srconv.c (wr_hd): Add parens to placate gcc 4.4.
2008-12-092008-12-09 Tristan Gingold <gingold@adacore.com>Tristan Gingold2-1/+11
* cpu-avr.c (compatible): Makes avr-6 compatible only with itself.
2008-12-09daily updateAlan Modra1-1/+1
2008-12-08daily updateAlan Modra1-1/+1
2008-12-07daily updateAlan Modra1-1/+1
2008-12-06daily updateAlan Modra1-1/+1
2008-12-05daily updateAlan Modra1-1/+1
2008-12-042008-12-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>Andreas Krebbel2-0/+8
* elf64-s390.c (elf_s390_check_relocs): Initialize htab->elf.dynobj if necessary.
2008-12-04daily updateAlan Modra1-1/+1
2008-12-03include/elf/Nick Clifton10-82/+304
* common.h (STT_IFUNC): Define. elfcpp/ * elfcpp.h (enum STT): Add STT_IFUNC. bfd/ * syms.c (struct bfd_symbol): Add new flag BSF_INDIRECT_FUNCTION. Remove redundant flag BFD_FORT_COMM_DEFAULT_VALUE. Renumber flags to remove gaps. (bfd_print_symbol_vandf): Return 'i' for BSF_INDIRECT_FUNCTION. (bfd_decode_symclass): Likewise. * elf.c (swap_out_syms): Translate BSF_INDIRECT_FUNCTION into STT_IFUNC. (elf_find_function): Treat STT_IFUNC in the same way as STT_FUNC. (_bfd_elf_is_function_type): Likewise. * elf32-arm.c (arm_elf_find_function): Likewise. (elf32_arm_adjust_dynamic_symbol): Likewise. (elf32_arm_swap_symbol_in): Likewise. (elf32_arm_additional_program_headers): Likewise. * elf32-i386.c (is_indirect_symbol): New function. (elf_i386_check_relocs): Also generate dynamic relocs for relocations against STT_IFUNC symbols. (allocate_dynrelocs): Likewise. (elf_i386_relocate_section): Likewise. * elf64-x86-64.c (is_indirect_symbol): New function. (elf64_x86_64_check_relocs): Also generate dynamic relocs for relocations against STT_IFUNC symbols. (allocate_dynrelocs): Likewise. (elf64_x86_64_relocate_section): Likewise. * elfcode.h (elf_slurp_symbol_table): Translate STT_IFUNC into BSF_INDIRECT_FUNCTION. * elflink.c (_bfd_elf_adjust_dynamic_reloc_section): Add support for STT_IFUNC symbols. (get_ifunc_reloc_section_name): New function. (_bfd_elf_make_ifunc_reloc_section): New function. * elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs field. * bfd-in2.h: Regenerate. gas/ * config/obj-elf.c (obj_elf_type): Add support for STT_IFUNC type. * doc/as.texinfo: Document new feature. * NEWS: Mention new feature. gas/testsuite/ * gas/elf/type.s: Add test of STT_IFUNC symbol type. * gas/elf/type.e: Update expected disassembly. * gas/elf/elf.exp: Update grep of symbol types. ld/ * NEWS: Mention new feature. * pe-dll.c (process_def_file): Replace use of redundant BFD_FORT_COMM_DEFAULT_VALUE with 0. * scripttempl/elf.sc: Add .rel.ifunc.dyn and .rela.ifunc.dyn sections. ld/testsuite/ * ld-mips-elf/reloc-1-n32.d: Updated expected output for reloc descriptions. * ld-mips-elf/reloc-1-n64.d: Likewise. * ld-i386/ifunc.d: New test. * ld-i386/ifunc.s: Source file for the new test. * ld-i386/i386.exp: Run the new test.
2008-12-03daily updateAlan Modra1-1/+1
2008-12-022008-12-02 Tristan Gingold <gingold@adacore.com>Tristan Gingold2-0/+10
* config.bfd: Add x86_64-*-darwin*
2008-12-02daily updateAlan Modra1-1/+1
2008-12-01daily updateAlan Modra1-1/+1
2008-11-30daily updateAlan Modra1-1/+1
2008-11-29 * hpux-core.c: Don't include sys/file.h.Dave Anglin2-1/+4
2008-11-29daily updateAlan Modra1-1/+1
2008-11-28 * aoutx.h (NAME): Add case statements for bfd_mach_mips14000,Thiemo Seufer6-0/+27
bfd_mach_mips16000. * archures.c (bfd_architecture): Add .#defines for bfd_mach_mips14000, bfd_mach_mips16000. * bfd-in2.h: Regenerate. * cpu-mips.c: Add enums I_mips14000, I_mips16000. (arch_info_struct): Add refs to R14000, R16000. * elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips14000, bfd_mach_mips16000. (mips_mach_extensions): Map R14000, R16000 to R10000. * config/tc-mips.c (hilo_interlocks): Handle CPU_R14000, CPU_R16000. (mips_cpu_info_table): Add r14000, r16000. * doc/c-mips.texi: Add entries for 14000, 16000. * mips-dis.c (mips_arch_choices): Add r14000, r16000. * mips.h: Define CPU_R14000, CPU_R16000. (OPCODE_IS_MEMBER): Include R14000, R16000 in test.
2008-11-28daily updateAlan Modra1-1/+1
2008-11-27 * Add PIC support for CR16 target.M R Swami Reddy6-112/+1665
* elf32-cr16.c (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT): New macros (cr16_elf_howto_table): Add entries for for R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT. (cr16_reloc_map): Ditto (_bfd_cr16_elf_create_got_section): New function to create GOT section. (_bfd_cr16_elf_create_dynamic_sections): New function to create dynamic section. (_bfd_cr16_elf_adjust_dynamic_symbol): New function to adjust symbol defined by dynamic object. (_bfd_cr16_elf_size_dynamic_sections): New function to find the size of dynamic section. (_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic symbols. (_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic sections. (bfd_cr16_elf32_create_embedded_relocs): New function to create embedded relocs in .emreloc section in memory for .data.rel section. (_bfd_cr16_elf_reloc_type_class): New function for classify reloc types. (cr16_elf_check_relocs): New function for checking reloc types in first phase. (cr16_elf_final_link_relocate): Update for handling the new reloc types R_CR16_GOT_REGREL20 and R_CR16_GOTC_REGREL20. (elf32_cr16_relax_section): Update relax implementation. * reloc.c (bfd_reloc_code_type): Add entries for R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT. * bfd-in.h (bfd_boolean bfd_cr16_elf32_create_embedded_relocs): Declared * libbfd.h, bfd-in2.h: Regenerate.
2008-11-27daily updateAlan Modra1-1/+1
2008-11-26include/Alan Modra4-35/+54
PR 7047 * bfdlink.h (struct bfd_elf_version_expr): Delete "symbol". Add "literal". bfd/ PR 7047 * configure.in: Bump version. * configure: Regenerate. * elflink.c (_bfd_elf_link_assign_sym_version): Continue matching against version nodes when a global match is a wildcard. Similarly continue matching on local wildcard matches, rather than only continuing for "*". Have any global wildcard match override a local wildcard match. Correct logic hiding unversioned symbol. (bfd_elf_size_dynamic_sections): Update for changes to struct bfd_elf_version_expr. ld/ PR 7047 * emultempl/ppc64elf.em (gld${EMULATION_NAME}_new_vers_pattern): Update for changes to struct bfd_elf_version_expr. * ldlang.c (lang_vers_match, version_expr_head_hash): Likewise. (version_expr_head_eq, lang_finalize_version_expr_head): Likewise. (lang_register_vers_node): Likewise. (lang_new_vers_pattern): Likewise. Ensure "literal" is set when no glob chars found in "pattern". (realsymbol): Correct backslash quote logic. * ld.texinfo (VERSION): Warn about global wildcards.
2008-11-26daily updateAlan Modra1-1/+1
2008-11-25 * configure.in: Deactivate large-file support on native x86-solarisJoel Brobecker3-6/+14
as well unless the user explicitly requested it. * configure: Regenerate.
2008-11-25bfd:Joseph Myers2-2/+9
* elf32-arm.c (elf32_arm_final_link_relocate): Do not turn branches to undefine weak symbols into branches to the next instruction if creating PLT entries for those symbols. ld/testsuite: * ld-arm/thumb2-bl-undefweak.d, ld-arm/thumb2-bl-undefweak.s: New. * ld-arm/arm-elf.exp: Run thumb2-bl-undefweak test.
2008-11-25 * elflink.c (is_reloc_section): New function. Returns true if theNick Clifton23-727/+289
given name matches the name of the reloc-containing section associated with the given section. (get_dynamic_reloc_section_name): New function. Computes the name of the section that contains the dynamic relocs associated with the given section. (_bfd_elf_get_dynamic_reloc_section): New function. Returns a pointer to the section containing the dynamic relocs associated with the given section. (_bfd_elf_make_dynamic_reloc_section): New function. Creates a section to contain the dynamic relocs associated with a given section. * elf-bfd.h: Prototype the new functions. * elf-m10300.c (mn10300_elf_check_relocs): Use new functions. (mn10300_elf_final_link_relocs): Likewise. * elf32-arm.c (reloc_section_p): Delete - replaced by new functions. (elf32_arm_final_link_relocate): Use new functions. (elf32_arm_check_relocs): Likewise. * elf32-cris.c (cris_elf_relocate_section): Likewise. (elf_cris_check_relocs): Likewise. * elf32-hppa.c (elf32_hppa_check_relocs): Likewise. * elf32-i370.c (i370_elf_check_relocs): Likewise. (i370_elf_relocate_section): Likewise. * elf32-i386.c (elf_i386_check_relocs): Likewise. * elf32-m32r.c (m32r_elf_relocate_section): Likewise. (m32r_elf_check_relocs): Likewise. * elf32-m68k.c (elf_m68k_check_relocs): Likewise. * elf32_ppc.c (ppc_elf_check_relocs): Likewise. (ppc_elf_relocate_section): Likewise. * elf32-s390.c (elf_s390_check_relocs): Likewise. * elf32-sh.c (sh_elf_relocate_section): Likewise. (sh_elf_check_relocs): Likewise. * elf32-vax.c (elf_vax_check_relocs): Likewise. (elf_vax_relocate_section): Likewise. * elf64-alpha.c (elf64_alpha_check_relocs): Likewise. * elf64-ppc.c (ppc64_elf_check_relocs): Likewise. * elf64-s390.c (elf_s390_check_relocs): Likewise. * elf64-sh64.c (sh_elf64_relocate_section): Likewise. * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise. * elf32-bfin.c (bfin_check_relocs): Remove redundant local variable 'sreloc'. (bfin_relocate_section): Likewise. * elf32-v850.c (v850_elf_check_relocs): Likewise.
2008-11-25 Implement TLS for CRIS.Hans-Peter Nilsson2-72/+905
* elf32-cris.c: Include limits.h. (TLSHOWTO16): Redefine in terms of and move contents to... (TLSHOWTO16X): New macro. (TLSHOWTO16S, LGOT_REG_NDX, LGOT_DTP_NDX, LGOT_ALLOC_NELTS_FOR) (elf_cris_hash_entry): New macros. (cris_elf_howto_table): Make R_CRIS_16_DTPREL, R_CRIS_16_GOT_TPREL, R_CRIS_16_TPREL check overflow for signed, not unsigned values. (cris_info_to_howto_rela): Make r_type a enum elf_cris_reloc_type, not unsigned int. (struct elf_cris_link_hash_entry): New members reg_got_refcount, tprel_refcount, and dtp_refcount. (struct elf_cris_link_hash_table): New member dtpmod_refcount. (elf_cris_link_hash_newfunc): Initialize new members. (elf_cris_link_hash_table_create): Similar. (cris_final_link_relocate, elf_cris_reloc_type_class): Use a temporary variable when testing the relocation type. (cris_elf_gc_mark_hook): Ditto. Add default case where needed. (cris_elf_gc_sweep_hook): Ditto. Handle reference-counting for the new assembly-generated relocs. Rewrite refcount handling to set temporary variables to pointers to reloc-specific variables and entry size and common code for the update. (additional_relocation_error_msg_count): New variable. (cris_elf_relocate_section): Use a function-local variable srelgot for the .rela.got section instead of looking it up for every need. Make r_type a enum elf_cris_reloc_type, not int. Actually set symname for non-local symbols. Handle new assembly-generated relocs. For overflow, emit additional messages for the new 16-bit relocs as well as R_CRIS_16_GOTPLT and R_CRIS_16_GOT. (elf_cris_finish_dynamic_symbol): Use elf_cris_finish_dynamic_symbol instead of plain casts. Check new hash entry member reg_got_refcount when checking whether to emit a GOT entry. (elf_cris_finish_dynamic_sections): Update head comment to warn about emitting relocs here. Use a temporary variable when testing the relocation type. (elf_cris_discard_excess_program_dynamics) (elf_cris_adjust_gotplt_to_got): Handle reference counting change regarding h->reg_got_refcount. (cris_elf_check_relocs): Rewrite refcount handling to set temporary variables and entry size and common code for the update for local symbols. Use new macro elf_cris_hash_entry. Adjust allocation for change in reference counting of GOT entries for local symbols. (elf_cris_size_dynamic_sections): Adjust calculated size of .got.plt and .rela.got if we need a GOT entry for a R_CRIS_DTPMOD relocation. (elf_cris_got_elt_size): New function. (elf_backend_got_elt_size): Define.
2008-11-25daily updateAlan Modra1-1/+1
2008-11-24daily updateAlan Modra1-1/+1
2008-11-23daily updateAlan Modra1-1/+1