Commit Graph

4689 Commits

Author SHA1 Message Date
Julian Brown 33c6a8fcd6 * elf32-arm.c (arm_build_one_stub): Use the hash entry of the
symbol a stub entry is derived from, not the entry for the stub
	itself, in call to elf32_arm_final_link_relocate.
2009-07-10 14:57:00 +00:00
H.J. Lu 1d77084592 bfd/
2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (_bfd_elf_get_synthetic_symtab): Remove leading zeros
	when reporting  addends.


ld/testsuite/

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

	* ld-ifunc/ifunc-1-local-x86.d: Updated.
	* ld-ifunc/ifunc-1-x86.d: Likewise.Likewise.
	* ld-ifunc/ifunc-2-local-x86-64.d: Likewise.Likewise.
	* ld-ifunc/ifunc-2-x86-64.d: Likewise.
	* ld-ifunc/ifunc-3a-x86.d: Likewise.Likewise.
2009-07-10 14:03:03 +00:00
Alan Modra 52cfded73c * elf32-spu.c (spu_elf_size_stubs): Do set up soft-icache manager
data even when no stubs.
	(spu_elf_place_overlay_data, spu_elf_build_stubs): Adjust.
2009-07-10 14:00:38 +00:00
Alan Modra e054468f6c STT_GNU_IFUNC support for PowerPC. 2009-07-10 12:19:58 +00:00
Alan Modra 041de40dc8 * elf.c (_bfd_elf_get_synthetic_symtab): Report addends. 2009-07-10 10:33:19 +00:00
Alan Modra 7ae26bc141 * elf-bfd.h (struct elf_link_hash_entry): Clarify ref_regular
and ref_regular_nonweak comment.
	* elflink.c (elf_link_output_extsym): Special case ifunc syms
	when def_regular, not ref_regular.
	(elf_link_add_object_symbols): Don't set needs_plt on ifunc syms,..
	* elf32-i386.c (elf_i386_check_relocs): ..set it here instead..
	* elf64-x86-64.c (elf64_x86_64_check_relocs): ..and here.
2009-07-10 10:04:20 +00:00
Alan Modra 9c4d0c1fb8 * elf32-spu.c (mark_functions_via_relocs): Init broken_cycle field
of malloc'd struct call_info.
	(pasted_function): Likewise, priority too.
2009-07-09 10:58:06 +00:00
Alan Modra 2fc6d3b012 * elf32-spu.c (spu_elf_auto_overlay): Take into account section
alignment when packing sections into overlays.
2009-07-07 03:26:47 +00:00
Dave Korn 9e1f7c0e44 2009-07-03 Cary Coutant <ccoutant@google.com>
* dwarf2.c (decode_line_info): Ignore DW_LNE_set_discriminator.
2009-07-03 17:02:43 +00:00
Dave Korn 4a7688702f 2009-07-03 Dave Korn <dave.korn.cygwin@gmail.com>
* coffcode.h (sec_to_styp_flags):  Partially revert (functional
	changes only) earlier patch:-

  2009-06-25  Kai Tietz  <kai.tietz@onevision.com>

	  * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
	  give .debug and .reloc data characteristics.
	  (DOT_RELOC): New define for .reloc section string.
	  (coff_write_object_contents): Use DOT_RELOC instead of string.
2009-07-03 16:07:38 +00:00
Tom Tromey 848f574829 * aoutx.h (aout_get_external_symbols): Declare 'amt' locally.
* bfdwin.c (bfd_free_window): Cast to unsigned long.
2009-07-02 17:08:51 +00:00
H.J. Lu dda46a2716 Update ChangeLog entries. 2009-07-01 21:29:23 +00:00
Nick Clifton efde2f2ce4 * bfd/bfd.m4 (BFD_HAVE_TIME_TYPE_MEMBER,
BFD_HAVE_SYS_STAT_TYPE_MEMBER): New config functions.
        * bfd/configure.in: Use them.
        * bfd/configure: Regenerate.
        * bfd/config.in: Regnerate.
        * bfd/vmsutil.c: Include sysdep.h, remove ansidecl.h.
        #define _BSD_SOURCE. Add comments.
        (vms_file_stats_name): Calculate creation date based on available
        runtime data. Return 1 for version instead of 0.
2009-07-01 15:02:28 +00:00
Nick Clifton e1ec24c6f3 PR 10072
* elf32-arm.c (elf32_arm_final_link_relocate): Add code to handle
        to R_ARM_THM_PC8 relocation.
2009-07-01 14:48:26 +00:00
Nick Clifton 2709f5702f * elf-m10300.c (mn10300_elf_relax_section): Allow for the
different uses of the relocations addend when a symbol is in a
        merged section.
2009-06-29 11:55:13 +00:00
H.J. Lu 83b89087cf bfd/
2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10337
	* elf.c (bfd_section_from_shdr): Don't change sh_link for
	SHT_REL/SHT_RELA sections on executable nor shared library.
	Treat SHT_REL/SHT_RELA sections with sh_link set to SHN_UNDEF
	as a normal section.

ld/testsuite/

2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10337
	* ld-ifunc/binutils.exp: New.
2009-06-27 16:07:10 +00:00
Nick Clifton be7035c6b8 * elf-m10300.c (mn10300_elf_relax_section): Handle non-section
symbols with SEC_MERGE flag.
2009-06-25 15:36:45 +00:00
Kai Tietz bdeb4032ea 2009-06-25 Kai Tietz <kai.tietz@onevision.com>
* coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
        give .debug and .reloc data characteristics.
        (DOT_RELOC): New define for .reloc section string.
        (coff_write_object_contents): Use DOT_RELOC instead of string.
2009-06-25 13:39:27 +00:00
Tristan Gingold b32e07d7d7 2009-06-25 Tristan Gingold <gingold@adacore.com>
* mach-o-target.c (bfd_mach_o_get_dynamic_symtab_upper_bound)
	(bfd_mach_o_canonicalize_dynamic_symtab)
	(bfd_mach_o_get_synthetic_symtab): Defines.
	(TARGET_NAME_BACKEND): Add bfd_mach_o_print_thread entry.
	(TARGET_NAME): Use Mach-O specific functions for dynamic.

	* mach-o-i386.c (bfd_mach_o_i386_swap_reloc_in): Fix howto indexes
	for scattered relocations.
	(bfd_mach_o_i386_print_thread): New function.
	(bfd_mach_o_print_thread): Define.

	* mach-o.c (text_section_names_xlat): Add an entry for __const.
	(bfd_mach_o_canonicalize_one_reloc, bfd_mach_o_canonicalize_relocs):
	New functions extracted from ...
	(bfd_mach_o_canonicalize_reloc): ... This.  Simplified.
	(bfd_mach_o_get_dynamic_reloc_upper_bound): New function.
	(bfd_mach_o_canonicalize_dynamic_reloc): New function.
	(bfd_mach_o_i386_flavour_string): Adjusted after enum renaming.
	(bfd_mach_o_ppc_flavour_string): Reindentation.  Add 64 bits cases.
	(bfd_mach_o_scan_read_dylinker): Do not create a section anymore.
	Set name_str field.
	(bfd_mach_o_scan_read_dylib): Ditto.
	(bfd_mach_o_scan_read_thread): Set mdata at declaration.  Add comments,
	reindent.
	(bfd_mach_o_scan_read_dysymtab): Set mdata at declaration.  Correctly
	decode isym and flags on little endian targets.  Set dysymtab field.
	(bfd_mach_o_scan_start_address): Adjust for enum names.
	(bfd_mach_o_lookup_section): Do not look for segments anymore.
	(bfd_mach_o_print_section): Display bfd section name.
	(bfd_mach_o_print_segment): Display none if no name.
	(bfd_mach_o_print_dysymtab): Display next index for local, external
	and undefined symbols.
	(bfd_mach_o_bfd_print_private_bfd_data): Adjust code by using name_str.
	Display dylinker name. Display thread and unixthread commands content.
	(bfd_mach_o_print_thread): New macro.

	* mach-o.h (bfd_mach_o_mach_header_magic): Align numbers.
	(bfd_mach_o_ppc_thread_flavour): Ditto.
	(bfd_mach_o_i386_thread_flavour): Ditto.
	(BFD_MACH_O_PPC_THREAD_STATE_NONE): New enum.
	(BFD_MACH_O_x86_THREAD_STATE_NONE): Replaces
	BFD_MACH_O_THREAD_STATE_NONE.
	(bfd_mach_o_segment_command): Remove segment field.
	(bfd_mach_o_thread_flavour): Field offset is now unsigned long.
	(bfd_mach_o_dylinker_command): Remove section field, add name_str.
	(bfd_mach_o_prebound_dylib_command): Ditto.
	(bfd_mach_o_dylib_command): Ditto.
	(bfd_mach_o_prebound_dylib_command): Remove section field.
	(mach_o_data_struct): Add dysymtab field.
	(bfd_mach_o_backend_data): Add _bfd_mach_o_print_thread field.
	(bfd_mach_o_get_reloc_upper_bound, bfd_mach_o_canonicalize_reloc)
	(bfd_mach_o_build_commands): Remove parameter names and attributes.
	(bfd_mach_o_get_dynamic_reloc_upper_bound)
	(bfd_mach_o_canonicalize_dynamic_reloc): New prototypes.
2009-06-25 12:39:06 +00:00
Dave Korn c41ba836f2 2009-06-25 Rafael Avila de Espindola <espindola@google.com>
* plugin.c (load_plugin): Use stat and S_ISREG instead of the d_type
	field of struct dirent.
2009-06-25 12:32:10 +00:00
Tristan Gingold 3188b0706d And the ChangeLog entry:
2009-06-23  Tristan Gingold  <gingold@adacore.com>

	* vms.c (vms_get_synthetic_symtab): Remove duplicate definition
	of this macro.  Fix indentation.
2009-06-23 15:34:17 +00:00
Christophe Lyon 022f83127a 2009-06-22 Christophe Lyon <christophe.lyon@st.com>
bfd/
	* elf32-arm.c (elf32_arm_size_stubs): Use PLT address as
	destination for defined dynamic symbols when deciding whether to
	insert a stub or not.
	(allocate_dynrelocs): Make sure functions are not marked as Thumb
	when actually accessed through a PLT, even when generating a
	shared lib.

	ld/testsuite:
	* ld-arm/farcall-mixed-app.s: Add new references to check more
	modes switching.
	* ld-arm/farcall-mixed-lib1.s: Likewise.
	* ld-arm/farcall-mixed-app-v5.d: Update expected result.
	* farcall-mixed-app.d: Likewise.
	* ld-arm/farcall-mixed-lib.d: Likewise.
2009-06-22 10:55:33 +00:00
Tristan Gingold d297e80737 2009-06-22 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_canonicalize_reloc): Append a sentinel to
	the relocs array.
2009-06-22 08:14:52 +00:00
Alan Modra ceaf50a2f9 include/elf/
* ppc.h (R_PPC_RELAX*): Define as enum.
bfd/
	* elf32-ppc.c (ppc_elf_check_relocs): Handle R_PPC_RELAX* in switch.
	* elf32-v850.c (v850_elf_relocate_section): Warning fix.
2009-06-22 00:52:20 +00:00
Alan Modra 983bddc852 * elf64-ppc.c (ppc64_elf_edit_opd): Avoid gcc warning. 2009-06-22 00:00:32 +00:00
H.J. Lu f87031947e 2009-06-19 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (elf_link_add_object_symbols): Avoid warning
	from -Wjump-misses-init in gcc 4.5.0.
2009-06-20 13:13:11 +00:00
H.J. Lu 09a24cbf39 2009-06-19 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_check_relocs): Properly check local
	symbol on error.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
2009-06-20 00:43:21 +00:00
H.J. Lu 4c5448074d bfd/
2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_tls_transition): Add a parameter,
	r_symndx.  Report local symbol name on error.
	(elf_i386_check_relocs): Updated.  Report local symbol name on
	error.
	(elf_i386_gc_sweep_hook): Updated.
	(elf_i386_relocate_section): Likewise.

	* elf64-x86-64.c (elf64_x86_64_tls_transition): Add a parameter,
	r_symndx.  Report local symbol name on error.
	(elf64_x86_64_check_relocs): Updated.  Report local symbol name
	on error.
	(elf64_x86_64_gc_sweep_hook): Updated.
	(elf64_x86_64_relocate_section): Likewise.

ld/testsuite/

2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-i386/i386.exp: Run tlsgd2.

	* ld-i386/tlsgd2.d: New.
	* ld-i386/tlsgd2.s: Likewise.

	* ld-x86-64/tlsgd3.d: Updated.
2009-06-19 16:00:33 +00:00
Tristan Gingold b8674692ae 2009-06-19 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_print_private_header): Fix format character.
2009-06-19 09:23:54 +00:00
Tristan Gingold 046b007d85 2009-06-19 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_scan_read_symtab_symbols): Add prototype.
	(bfd_mach_o_version): Use bfd_mach_o_get_data instead of direct access.
	(bfd_mach_o_valid): Ditto.
	(bfd_mach_o_wide_p): Ditto.
	(bfd_mach_o_canonicalize_reloc): Ditto.
	(bfd_mach_o_build_commands): Ditto.
	(bfd_mach_o_scan_read_thread): Ditto.
	(bfd_mach_o_flatten_sections): Ditto.
	(bfd_mach_o_scan_start_address): Ditto.
	(bfd_mach_o_lookup_section): Ditto.
	(bfd_mach_o_core_fetch_environment): Ditto.
	(bfd_mach_o_write_contents): Ditto.  Handle reexport_dylib.
	(bfd_mach_o_scan_write_relocs): Adjust for bfd_mach_o_get_data.
	(bfd_mach_o_scan_write_symtab): Ditto.
	Use macros instead of hard-coded values.
	(bfd_mach_o_scan_read_symtab_symbol): Make the function static.
	Use bfd_mach_o_get_data instead of direct access.  Use macros
	instead of hard-coded values.
	(bfd_mach_o_scan_read_symtab_strtab): Make the function static.
	Remove sym argument and get section from mdata.
	Move code into the else branch.
	(bfd_mach_o_scan_read_symtab_symbols): Make the function static.
	Remove sym argument and get section from mdata.  Adjust code.
	(bfd_mach_o_scan_read_dylib): Move assertion into the created
	switch (which replaces consecutive if statements).
	(bfd_mach_o_scan_read_dysymtab): Rename seg to cmd.  Load
	module table, table of content, indirect symbols and external
	referenced symbols.
	(bfd_mach_o_scan_read_symtab): Renames seg to symtab.  Set symtab
	field.
	(bfd_mach_o_scan_read_linkedit): New function.
	(bfd_mach_o_scan_read_str): Ditto.
	(bfd_mach_o_count_symbols): Simplify the code by using the symtab
	field of mdata.
	(bfd_mach_o_get_symtab_upper_bound): Remove check as
	bfd_mach_o_count_symbols never returns an error.
	(bfd_mach_o_canonicalize_symtab): Simplify the code by using the
	symtab field (there might be only one symtab).
	(bfd_mach_o_scan_read_command): Handle reexported dylib.
	Handle sub frameworks, sub umbrella, sub library and sub client.
	Read code signature and segment split info commands.
	(bfd_mach_o_scan): Reindent.
	(bfd_mach_o_xlat_name): New type.
	(bfd_mach_o_print_flags): New function.
	(bfd_mach_o_get_name): Ditto.
	(bfd_mach_o_cpu_name): New variable.
	(bfd_mach_o_filetype_name, bfd_mach_o_header_flags_name)
	(bfd_mach_o_section_type_name)
	(bfd_mach_o_section_attribute_name)
	(bfd_mach_o_load_command_name): New variables.
	(bfd_mach_o_print_private_header): New function.
	(bfd_mach_o_print_section_map): New function extracted from
	bfd_mach_o_print_private_bfd_data.
	(bfd_mach_o_print_section): Ditto.  Print more infos.
	(bfd_mach_o_print_segment): Ditto.
	(bfd_mach_o_print_dysymtab): Ditto.
	(bfd_mach_o_bfd_print_private_bfd_data): Reworked.  Handle
	load weak dylib, reexport dylib and id dylib.
	Handle code signature and segment_split info.
	Handle sub frameworks, sub umbrella, sub library and sub client.
	(bfd_mach_o_section_get_nbr_indirect): New function.

	* mach-o.h (BFD_MACH_O_REFERENCE_MASK): New macro.  Add comment.
	(bfd_mach_o_header_flags): New enum to define header flags.
	(bfd_mach_o_section_attribute): New enum to replace ...
	(BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC,
	BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG,
	BFD_MACH_O_S_SELF_MODIFYING_CODE, BFD_MACH_O_S_ATTR_LIVE_SUPPORT,
	BFD_MACH_O_S_ATTR_NO_DEAD_STRIP, BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS,
	BFD_MACH_O_S_ATTR_NO_TOC, BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): ...
	these removed macros.
	(BFD_MACH_O_NLIST_SIZE, BFD_MACH_O_NLIST_64_SIZE): New macros.
	(bfd_mach_o_dylib_module): New type.
	(BFD_MACH_O_DYLIB_MODULE_SIZE, BFD_MACH_O_DYLIB_MODULE_64_SIZE): New
	macros.
	(bfd_mach_o_dylib_table_of_content): New type.
	(BFD_MACH_O_TABLE_OF_CONTENT_SIZE): New macro.
	(bfd_mach_o_dylib_reference): New type.
	(BFD_MACH_O_REFERENCE_SIZE): New macro.
	(bfd_mach_o_dysymtab_command): Add fields for loaded and decoded
	modules, toc, references and indirect syms.
	(BFD_MACH_O_INDIRECT_SYMBOL_SIZE): New macro.
	(bfd_mach_o_dylinker_command): Remove cmd and cmdsize fields (were
	unused).  Add comment.
	(bfd_mach_o_dylib_command): Ditto.
	(bfd_mach_o_prebound_dylib_command): Ditto.
	(bfd_mach_o_linkedit_command): New type.
	(bfd_mach_o_str_command): New type.
	(bfd_mach_o_load_command): Add linkedit and str fields.
	(mach_o_data_struct): Add symtab field.
	(bfd_get_mach_o_data): Renamed to ...
	(bfd_mach_o_get_data): ... this new macro.
	(bfd_mach_o_scan_read_symtab_symbol,
	bfd_mach_o_scan_read_symtab_strtab,
	bfd_mach_o_scan_read_symtab_symbols): Prototypes removed.

	* mach-o-i386.c (bfd_mach_o_i386_mkobject): Use bfd_mach_o_get_data
	instead of direct access.
2009-06-19 09:12:41 +00:00
Alan Modra 6d78d0b92e * elf32-ppc.c (ppc_elf_check_relocs): Allow local symbols for
R_PPC_PLTREL24 relocs.
	(ppc_elf_relocate_section): Likewise.
2009-06-19 03:30:45 +00:00
Alan Modra 3ec01793a5 * elf32-ppc.c (find_plt_ent): Pass pointer to plist rather than
pointer to sym hash.  Update all uses.
	(update_plt_info): Likewise.  Don't check addend here.
2009-06-19 00:41:28 +00:00
H.J. Lu c2e61a4e93 2009-06-18 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_check_relocs): Remove isymbuf and use
	bfd_sym_from_r_symndx.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
2009-06-18 15:49:39 +00:00
Alan Modra 87d72d41b0 * elf-bfd.h (struct sym_sec_cache): Delete.
(struct sym_cache): New.
	(bfd_section_from_r_symndx): Delete prototype.
	(bfd_sym_from_r_symndx): Define prototype.
	* elf.c (bfd_section_from_r_symndx): Delete, replace with..
	(bfd_sym_from_r_symndx): ..new function.
	* elf32-arm.c: Update all uses of struct sym_sec_cache and
	bfd_section_from_r_symndx to new struct and function.
	* elf32-bfin.c: Likewise.
	* elf32-hppa.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-m32r.c: Likewise.
	* elf32-m68hc1x.c: Likewise.
	* elf32-m68hc1x.h: Likewise.
	* elf32-m68k.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-s390.c: Likewise.
	* elf64-x86-64.c: Likewise.
	* elfxx-sparc.c: Likewise.
	* elfxx-sparc.h: Likewise.
2009-06-18 14:18:29 +00:00
H.J. Lu 14aae7232b 2009-06-18 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_check_relocs): Cache or free isymbuf.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
2009-06-18 12:49:41 +00:00
Nick Clifton 5e486aa133 * elflink.c (elf_link_sort_relocs): Return early if there are no
relocs to sort.
2009-06-18 10:48:58 +00:00
Nick Clifton 32425da952 Fix formatting of recent entry 2009-06-18 10:41:42 +00:00
Dave Korn 361dff7384 2009-06-18 Dave Korn <dave.korn.cygwin@gmail.com>
Merge cegcc and mingw32ce target name changes from CeGCC project,
replacing "arm-*-" by "arm*-*-" where needed.

  2008-09-24  Pedro Alves  <pedroalves@users.sourceforge.net>

	ld/
	* configure.tgt (arm*-*-cegcc*): Set LIB_PATH to
	${tooldir}/lib/w32api.

  2007-12-25  Pedro Alves  <pedro_alves@portugalmail.pt>

	bfd/
	* config.bfd: Add arm*-*-cegcc* target.

  2007-12-25  Pedro Alves  <pedro_alves@portugalmail.pt>

	binutils/
	* configure.in: Add arm*-*-cegcc* and arm*-*-mingw32ce* targets.
	* configure: Regenerate.

  2007-12-25  Pedro Alves  <pedro_alves@portugalmail.pt>

	gas/
	* configure.tgt: Add arm*-*-cegcc* target.

  2007-12-25  Pedro Alves  <pedro_alves@portugalmail.pt>

	ld/
	* configure.tgt: Add arm*-*-cegcc* target.

  2007-12-17  Pedro Alves  <pedro_alves@portugalmail.pt>

	bfd/
	* config.bfd: Add arm-*-mingw32ce* target.

  2007-12-17  Pedro Alves  <pedro_alves@portugalmail.pt>

	gas/
	* configure.tgt: Add arm-*-mingw32ce* target.

  2007-12-17  Pedro Alves  <pedro_alves@portugalmail.pt>

	ld/
	* configure.tgt: Add arm-*-mingw32ce* target.
2009-06-18 02:11:03 +00:00
H.J. Lu e03a8ed803 2009-06-17 H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): New.
	* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Likewise.
	* elf32-i386.c (elf_i386_allocate_dynrelocs): Use it.
	* elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.

2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (_bfd_elf_create_ifunc_dyn_reloc): New.
	* elf-ifunc.c (_bfd_elf_create_ifunc_dyn_reloc): Likewise.
	* elf32-i386.c (elf_i386_check_relocs): Use it.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.

2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (elf_dyn_relocs): New.

	* elf32-i386.c (elf_i386_dyn_relocs): Removed.
	(elf_i386_link_hash_entry): Replace elf_i386_dyn_relocs with
	elf_dyn_relocs.
	(elf_i386_copy_indirect_symbol): Likewise.
	(elf_i386_check_relocs): Likewise.
	(elf_i386_gc_sweep_hook): Likewise.
	(elf_i386_allocate_dynrelocs): Likewise.
	(elf_i386_readonly_dynrelocs): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.

	* elf64-x86-64.c (elf64_x86_64_dyn_relocs): Removed.
	(elf64_x86_64_link_hash_entry): Replace elf64_x86_64_dyn_relocs
	with elf_dyn_relocs.
	(elf64_x86_64_copy_indirect_symbol): Updated.
	(elf64_x86_64_check_relocs): Likewise.
	(elf64_x86_64_gc_sweep_hook): Likewise.
	(elf64_x86_64_adjust_dynamic_symbol): Likewise.
	(elf64_x86_64_allocate_dynrelocs): Likewise.
	(elf64_x86_64_readonly_dynrelocs): Likewise.
	(elf64_x86_64_size_dynamic_sections): Likewise.
2009-06-18 00:45:14 +00:00
H.J. Lu 64e77c6d5f 2009-06-17 H.J. Lu <hongjiu.lu@intel.com>
* elf32-arm.c (create_got_section): Get existing .rela.got
	section.
	* elf32-hppa.c (elf32_hppa_create_dynamic_sections): Likewise.
	* elf32-lm32.c (create_got_section): Likewise.
	* elf32-m32r.c (create_got_section): Likewise.
	* elf32-ppc.c (ppc_elf_create_got): Likewise.
	* elf32-s390.c (create_got_section): Likewise.
	* elf32-sh.c (create_got_section): Likewise.
	* elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Likewise.
	* elf64-s390.c (create_got_section): Likewise.
	* elfxx-sparc.c (create_got_section): Likewise.

	* elflink.c (_bfd_elf_create_got_section): Properly initialize
	the GOT size.
2009-06-17 18:08:35 +00:00
H.J. Lu d2149d727f 2009-06-16 H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (ELF_LOCAL_SYMBOL_HASH): New.

	* elf32-i386.c (elf_i386_local_hash): Removed.
	(elf_i386_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
	(elf_i386_get_local_sym_hash): Likewise.

	* elf64-x86-64.c (elf64_x86_64_local_hash): Removed.
	(elf64_x86_64_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
	(elf64_x86_64_get_local_sym_hash): Likewise.
	* elfxx-ia64.c (elfNN_ia64_local_htab_hash): Likewise.
	(get_local_sym_hash): Likewise.
2009-06-16 17:45:08 +00:00
H.J. Lu cc3bd654e4 2009-06-16 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_link_hash_table): Remove got_sec,
	rel_got_sec and plt_sec.
	(elfNN_ia64_relax_section): Updated.
	(elfNN_ia64_create_dynamic_sections): Likewise.
	(get_got): Likewise.
	(allocate_dynrel_entries): Likewise.
	(elfNN_ia64_size_dynamic_sections): Likewise.
	(set_got_entry): Likewise.
	(elfNN_ia64_choose_gp): Likewise.
	(elfNN_ia64_relocate_section): Likewise.
	(elfNN_ia64_finish_dynamic_symbol): Likewise.
	(elfNN_ia64_finish_dynamic_sections): Likewise.
2009-06-16 15:52:41 +00:00
Ulrich Weigand be3e406de8 * elf32-spu.c (needs_ovl_stub): Respect .brinfo lrlive bits
also for calls.
2009-06-16 13:44:00 +00:00
H.J. Lu 6de2ae4a2a 2009-06-16 H.J. Lu <hongjiu.lu@intel.com>
* configure.in (elf): Add elf-ifunc.lo.

	* configure: Regenerated.
	* Makefile.in: Likewise.

	* elf-bfd.h (elf_link_hash_table): Add sgot, sgotplt,
	srelgot, splt, srelplt, igotplt, iplt, irelplt and irelifunc.

	* elf32-i386.c (elf_i386_link_hash_table): Remove sgot,
	sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
	irelifunc.
	(elf_i386_link_hash_table_create): Likewise.
	(elf_i386_create_dynamic_sections): Likewise.
	(elf_i386_check_relocs): Likewise.
	(elf_i386_allocate_dynrelocs): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_finish_dynamic_symbol): Likewise.
	(elf_i386_finish_dynamic_sections): Likewise.
	(elf_i386_create_got_section): Removed.

	* elf64-x86-64.c (elf64_x86_64_link_hash_table): Remove sgot,
	sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
	irelifunc.
	(elf64_x86_64_compute_jump_table_size): Updated.
	(elf64_x86_64_link_hash_table_create): Likewise.
	(elf64_x86_64_create_dynamic_sections): Likewise.
	(elf64_x86_64_check_relocs): Likewise.
	(elf64_x86_64_allocate_dynrelocs): Likewise.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	(elf64_x86_64_finish_dynamic_symbol): Likewise.
	(elf64_x86_64_finish_dynamic_sections): Likewise.
	(elf64_x86_64_create_got_section): Removed.

	* elflink.c (_bfd_elf_create_got_section): Use log_file_align
	for pointer alignment.  Set up section pointers.
	(_bfd_elf_create_dynamic_sections): Likewise.
	(_bfd_elf_create_ifunc_sections): Moved to ...
	* elf-ifunc.c: Here.  New.

	* Makefile.am (BFD32_BACKENDS): Add elf-ifunc.lo.
	(BFD32_BACKENDS_CFILES): Add elf-ifunc.c.
	Run "make dep-am".
2009-06-16 13:41:10 +00:00
Nick Clifton 81694485e2 * elf32-arm.c (cortex_a8_erratum_scan): Change type of offset
to bfd_signed_vma.  Cast constant operands which are used in
   offset related expressions to bfd_signed_vma type as appropriate.
2009-06-16 11:33:42 +00:00
Maciej W. Rozycki 6db7e006e4 bfd/
* elf32-vax.c (elf_vax_plt_sym_val): New function.
(elf_backend_plt_sym_val): Define.

opcodes/
* vax-dis.c (is_function_entry): Return success for synthetic
symbols too.
(is_plt_tail): New function.
(print_insn_vax): Decode PLT entry offset longword.
2009-06-16 02:23:09 +00:00
Maciej W. Rozycki 9b90d8fd50 bfd/
* elf32-vax.c (elf_vax_reloc_type_class): New function.
(elf_backend_reloc_type_class): Define.
2009-06-16 02:16:54 +00:00
Maciej W. Rozycki 04981bc1fb bfd/
* elf32-vax.c (elf_vax_relocate_section): For symbol references
from an executable to a shared library treat R_VAX_PC32
relocations as R_VAX_PLT32 ones.
2009-06-16 02:14:12 +00:00
Maciej W. Rozycki 886815b266 bfd/
* elf32-vax.c (elf_vax_instantiate_got_entries): Skip local
symbols in GOT space calculation.
(elf_vax_relocate_section): Adjust accordingly.
2009-06-16 02:07:22 +00:00
Maciej W. Rozycki 6c4fb25ace bfd/
* elf32-vax.c (elf_vax_plt_entry): Set the entry mask to
include <R11:R2>.
2009-06-16 01:57:39 +00:00