external/binutils.git
13 years ago* bfin-tdep.c (bfin_extract_return_value): Fix swapped
matt rice [Wed, 20 Jul 2011 16:52:36 +0000 (16:52 +0000)]
* bfin-tdep.c (bfin_extract_return_value): Fix swapped
arguments to store_unsigned_integer.

13 years ago * dwarf2read.c (process_enumeration_scope): Do not call new_symbol
Tom Tromey [Wed, 20 Jul 2011 15:13:49 +0000 (15:13 +0000)]
* dwarf2read.c (process_enumeration_scope): Do not call new_symbol
in some declaration-only cases.

13 years ago PR symtab/12984:
Tom Tromey [Wed, 20 Jul 2011 15:06:54 +0000 (15:06 +0000)]
PR symtab/12984:
* dwarf2read.c (dwarf2_section_info_def): New typedef.
(struct dwarf2_per_objfile) <types>: Change to a VEC.
(struct dwarf2_per_cu_data) <from_debug_types>: Remove.
<debug_type_section>: New field.
(dwarf2_locate_sections): Push .debug_types sections onto VEC.
(load_cu): Use appropriate section.
(create_signatured_type_table_from_index): Add 'section'
argument.
(dwarf2_read_index): Only allow a single .debug_types section.
(dw2_get_file_names): Use appropriate section.
(read_type_comp_unit_head): Add 'section' argument.
(create_debug_types_hash_table): Loop over all .debug_types
sections.
(init_cu_die_reader): Use appropriate section.
(process_psymtab_comp_unit, load_partial_comp_unit)
(load_full_comp_unit, read_die_and_children, find_partial_die)
(lookup_die_type, determine_prefix, follow_die_offset): Update.
(lookup_signatured_type_at_offset): Add 'section' argument.
(read_signatured_type_at_offset): Add 'sect' argument.
(read_signatured_type): Use appropriate section.
(set_die_type, get_die_type_at_offset): Update.
(dwarf2_per_objfile_free): Free all .debug_types sections, and
VEC.
(write_psymtabs_to_index): Don't allow index with more than one
.debug_types section.

13 years ago2011-07-20 Pedro Alves <pedro@codesourcery.com>
Pedro Alves [Wed, 20 Jul 2011 11:01:21 +0000 (11:01 +0000)]
2011-07-20  Pedro Alves  <pedro@codesourcery.com>

* tracepoint.c (tracepoint_look_up_symbols): Return upon the first
symbol error.

13 years agodaily update
Alan Modra [Wed, 20 Jul 2011 00:00:06 +0000 (00:00 +0000)]
daily update

13 years ago*** empty log message ***
gdbadmin [Wed, 20 Jul 2011 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***

13 years agogdb/
Jan Kratochvil [Tue, 19 Jul 2011 20:28:52 +0000 (20:28 +0000)]
gdb/
Fix crash if referenced CU is aged out.
* dwarf2loc.c (per_cu_dwarf_call): New variable back_to, use to for
xfree of block.data.
(indirect_pieced_value): New variable back_to, use to for xfree of
baton.data.
(dwarf2_compile_expr_to_ax): New variable back_to, use to for xfree of
block.data.
* dwarf2read.c (dwarf2_find_base_address): New prototype.
(load_cu): New function from ...
(dw2_do_instantiate_symtab): ... the code here ...
(process_full_comp_unit): ... and here.
(dwarf2_fetch_die_location_block): Call load_cu first.  Call xmemdup on
retval.data.

gdb/testsuite/
Fix crash if referenced CU is aged out.
* gdb.dwarf2/dw2-op-call.exp (maintenance set dwarf2 max-cache-age 0):
New.
* gdb.dwarf2/implptr.exp: Likewise.

13 years agogdb/
Jan Kratochvil [Tue, 19 Jul 2011 20:25:14 +0000 (20:25 +0000)]
gdb/
* dwarf2loc.c (indirect_pieced_value): Use check_typedef for VALUE's
type.

gdb/testsuite/
* gdb.dwarf2/implptr.S: Rebuilt.
* gdb.dwarf2/implptr.c (intp, intpp, intppp): New typedefs.
(bar): Use them for j, k, l.
* gdb.dwarf2/implptr.exp: New variable opts.  Support runtest parameter
COMPILE.
(print j in implptr:bar): Update for the intp typedef.
(print p[0].x in implptr:foo): Use more exact regex.

13 years agogdb/
Gary Benson [Tue, 19 Jul 2011 12:24:34 +0000 (12:24 +0000)]
gdb/
* infrun.c (struct execution_control_state): New member
stop_func_filled_in.
(clear_stop_func, fill_in_stop_func): New functions.
(handle_inferior_event): Call clear_stop_func rather than
manipulating the execution control state directly.
Call fill_in_stop_func lazily as required rather than
directly calling find_pc_partial_function in all cases.

13 years ago*** empty log message ***
gdbadmin [Tue, 19 Jul 2011 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***

13 years agodaily update
Alan Modra [Tue, 19 Jul 2011 00:00:05 +0000 (00:00 +0000)]
daily update

13 years ago * dwarf2read.c (read_subrange_type): Use attr_form_is_block when
Tom Tromey [Mon, 18 Jul 2011 15:17:35 +0000 (15:17 +0000)]
* dwarf2read.c (read_subrange_type): Use attr_form_is_block when
checking for variable-sized array.

13 years ago * gdb.cp/static-method.exp: Add missing single quote.
Tom Tromey [Mon, 18 Jul 2011 15:15:06 +0000 (15:15 +0000)]
* gdb.cp/static-method.exp: Add missing single quote.

13 years agoFix a typo in doc/c-i386.texi.
H.J. Lu [Mon, 18 Jul 2011 13:32:31 +0000 (13:32 +0000)]
Fix a typo in doc/c-i386.texi.

2011-07-18  H.J. Lu  <hongjiu.lu@intel.com>

* doc/c-i386.texi: Fix a typo.

13 years ago toplevel:
Rainer Orth [Mon, 18 Jul 2011 10:15:06 +0000 (10:15 +0000)]
toplevel:
* configure: Regenerate.

config:
* elf.m4 (target_elf): Remove *-netware*.

13 years agogdb/
Jean-Charles Delay [Mon, 18 Jul 2011 09:23:52 +0000 (09:23 +0000)]
gdb/

* MAINTAINERS (Write After Approval): Add myself to the list.

13 years agogdb/
Jean-Charles Delay [Mon, 18 Jul 2011 09:21:43 +0000 (09:21 +0000)]
gdb/

* varobj.h (varobj_languages): Add vlang_ada definition to the list
of supported languages.
* varobj.c: Add top definitions and basic implementation of the
following callbacks: ada_number_of_children, ada_name_of_variable,
ada_name_of_child, ada_path_expr_of_child, ada_value_of_root,
ada_value_of_child, ada_type_of_child, ada_value_of_variable.
(languages): Register Ada-specific callbacks.
(variable_language): Add the Ada case in the language setter switch.

13 years ago gdb/testsuite/
Yao Qi [Mon, 18 Jul 2011 04:14:21 +0000 (04:14 +0000)]
gdb/testsuite/

* gdb.base/async-shell.exp: Skip test if displaced stepping is not
supported.
* gdb.mi/mi-nonstop-exit.exp: Likewise.
* gdb.mi/mi-nonstop.exp: Likewise.
* gdb.mi/mi-ns-stale-regcache.exp: Likewise.
* gdb.mi/mi-nsintrall.exp: Likewise.
* gdb.mi/mi-nsmoribund.exp: Likewise.
* gdb.mi/mi-nsthrexec.exp: Likewise.
* gdb.python/py-evthreads.exp: Likewise.

13 years ago*** empty log message ***
gdbadmin [Mon, 18 Jul 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***

13 years agodaily update
Alan Modra [Mon, 18 Jul 2011 00:00:06 +0000 (00:00 +0000)]
daily update

13 years agogdb/
Jan Kratochvil [Sun, 17 Jul 2011 19:22:32 +0000 (19:22 +0000)]
gdb/
* remote-mips.c (pmon_download): Fix ignored return value GCC warning.

13 years agodaily update
Alan Modra [Sun, 17 Jul 2011 00:00:05 +0000 (00:00 +0000)]
daily update

13 years ago*** empty log message ***
gdbadmin [Sun, 17 Jul 2011 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***

13 years agoImplement ld --print-output-format.
Roland McGrath [Sat, 16 Jul 2011 07:58:40 +0000 (07:58 +0000)]
Implement ld --print-output-format.

13 years agodaily update
Alan Modra [Sat, 16 Jul 2011 00:00:05 +0000 (00:00 +0000)]
daily update

13 years ago*** empty log message ***
gdbadmin [Sat, 16 Jul 2011 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***

13 years ago * options.h (class General_options): Add --print-output-format.
Ian Lance Taylor [Fri, 15 Jul 2011 21:43:08 +0000 (21:43 +0000)]
* options.h (class General_options): Add --print-output-format.
Move -EL next to -EB, for  better --help output.
* target-select.cc: Include <cstdio>, "options.h", and
"parameters.h".
(Target_selector::do_target_bfd_name): New function.
(print_output_format): New function.
* target-select.h (class Target_selector): Update declarations.
(Target_selector::target_bfd_name): New function.
(print_output_format): Declare.
* main.cc: Include "target-select.h".
(main): Handle --print-output-format.
* gold.cc: Include "target-select.h".
(queue_initial_tasks): Handle --print-output-format when there are
no input files.
* parameters.cc (parameters_force_valid_target): Give a better
error message if -EB/-EL does not match target.
* freebsd.h (Target_selector_freebsd::do_target_bfd_name): New
function.

13 years agogdb/
Jan Kratochvil [Fri, 15 Jul 2011 20:54:32 +0000 (20:54 +0000)]
gdb/
Code cleanup.
* dwarf2-frame.c (dwarf2_frame_ctx_funcs): New.
(execute_stack_op): Use dwarf2_frame_ctx_funcs
* dwarf2expr.c (dwarf_get_base_type): Access get_base_type via funcs.
(execute_stack_op): Access read_reg, get_frame_base, read_mem,
get_frame_cfa, get_tls_address and dwarf_call via funcs.
* dwarf2expr.h (struct dwarf_expr_context): New forward declaration.
(struct dwarf_expr_context_funcs): New, move here methods from ...
(struct dwarf_expr_context): ... here.  New fields funcs.
* dwarf2loc.c (dwarf_expr_dwarf_call): Access get_frame_pc via funcs.
(dwarf_expr_ctx_funcs): New.
(dwarf2_evaluate_loc_desc_full): Use dwarf_expr_ctx_funcs.
(needs_frame_dwarf_call): Access get_frame_pc via funcs.
(needs_frame_ctx_funcs): New.
(dwarf2_loc_desc_needs_frame): Use needs_frame_ctx_funcs.

13 years agogdb/testsuite/
Jan Kratochvil [Fri, 15 Jul 2011 18:46:10 +0000 (18:46 +0000)]
gdb/testsuite/
Code cleanup.
* gdb.cp/namespace.exp (xfail_class_types): New variable.  Initialize
it.  Substitute it instead of test_compiler_info everywhere.

13 years ago * i386.cc (class Output_data_plt_i386): Add layout_ field.
Ian Lance Taylor [Fri, 15 Jul 2011 15:31:54 +0000 (15:31 +0000)]
* i386.cc (class Output_data_plt_i386): Add layout_ field.
(Output_data_plt_i386::Output_data_plt_i386): Initialize layout_.
(Output_data_plt_i386::do_write): Write address of .dynamic
section to first entry in .got.plt section.
* x86_64.cc (class Output_data_plt_x86_64): Add layout_ field.
(Output_data_plt_x86_64::Output_data_plt_x86_64) [both versions]:
Initialize layout_.
(Output_data_plt_x86_64::do_write): Write address of .dynamic
section to first entry in .got.plt section.
* layout.h (Layout::dynamic_section): New function.

13 years ago2011-07-15 Fawzi Mohamed <fawzi.mohamed@nokia.com>
Fawzi Mohamed [Fri, 15 Jul 2011 15:27:49 +0000 (15:27 +0000)]
2011-07-15  Fawzi Mohamed  <fawzi.mohamed@nokia.com>

* MAINTAINERS (Write After Approval): Add myself to the list.

13 years ago2011-07-15 Fawzi Mohamed <fawzi.mohamed@nokia.com>
Fawzi Mohamed [Fri, 15 Jul 2011 15:01:04 +0000 (15:01 +0000)]
2011-07-15  Fawzi Mohamed  <fawzi.mohamed@nokia.com>

* dwarf2-frame.c (decode_frame_entry, decode_frame_entry_1): Ensure
that CIE pointer of an FDE really points to a CIE .

13 years ago * gdb.base/type-opaque.exp: Use gdb_load_shlibs. Run test on
Ulrich Weigand [Fri, 15 Jul 2011 14:13:00 +0000 (14:13 +0000)]
* gdb.base/type-opaque.exp: Use gdb_load_shlibs.  Run test on
remote targets as well.

13 years ago * lib/gdb.exp (gdb_compile_shlib_pthreads): New helper.
Ulrich Weigand [Fri, 15 Jul 2011 14:11:22 +0000 (14:11 +0000)]
* lib/gdb.exp (gdb_compile_shlib_pthreads): New helper.
* gdb.threads/tls-shared.exp: Use it.  Call gdb_load_shlibs.

13 years ago * lib/gdb.exp (gdb_compile): Specify rpath if the *target* is
Ulrich Weigand [Fri, 15 Jul 2011 14:10:26 +0000 (14:10 +0000)]
* lib/gdb.exp (gdb_compile): Specify rpath if the *target* is
a remote machine, not the host.
(gdb_compile_shlib): Set soname if target is remote.

13 years agoinclude/
Alan Modra [Fri, 15 Jul 2011 02:36:36 +0000 (02:36 +0000)]
include/
* bfdlink.h (struct bfd_link_info): Use ENUM_BITFIELD for strip,
discard, common_skip_ar_symbols, unresolved_syms_in_objects, and
unresolved_syms_in_shared_libs fields.  Move emit_note_gnu_build_id
out of bitfields.  Reorder bitfields.
bfd/
* configure.in: Bump version.
* configure: Regenerate.

13 years ago2011-07-15 Hui Zhu <teawater@gmail.com>
Hui Zhu [Fri, 15 Jul 2011 02:07:43 +0000 (02:07 +0000)]
2011-07-15  Hui Zhu  <teawater@gmail.com>

* remote.c (remote_get_trace_status): Add comments.

13 years ago * Makefile.am (e*.c): Sort.
Alan Modra [Fri, 15 Jul 2011 01:45:50 +0000 (01:45 +0000)]
* Makefile.am (e*.c): Sort.
* Makefile.in: Regenerate.

13 years ago*** empty log message ***
gdbadmin [Fri, 15 Jul 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***

13 years agoCleanup: kill trailing whitespace
Paul Pluzhnikov [Thu, 14 Jul 2011 16:41:56 +0000 (16:41 +0000)]
Cleanup: kill trailing whitespace

13 years ago2011-07-14 Paul Pluzhnikov <ppluzhnikov@google.com>
Paul Pluzhnikov [Thu, 14 Jul 2011 16:33:21 +0000 (16:33 +0000)]
2011-07-14  Paul Pluzhnikov  <ppluzhnikov@google.com>

* gdb.cp/minsym-fallback.exp: Link in C++ mode.

13 years agogdb/
Jan Kratochvil [Thu, 14 Jul 2011 15:00:20 +0000 (15:00 +0000)]
gdb/
Code cleanup - constify struct lval_funcs.
* dwarf2loc.c (pieced_value_funcs): Make it const.
* infrun.c (siginfo_value_funcs): Likewise.
* opencl-lang.c (opencl_value_funcs): Likewise.
* valops.c (value_assign, value_ind): Make the funcs variable const.
* value.c (struct value): Make location.computed.funcs target const.
Rearrange the comments.
(allocate_computed_value): Make the funcs parameter target const.
(value_computed_funcs): Return the funcs target const.
(value_free, value_copy, set_value_component_location): Make the funcs
variable const.
* value.h (allocate_computed_value): Make the funcs parameter target
const.
(value_computed_funcs): Return the funcs target const.
* windows-tdep.c (tlb_value_funcs): Make it const.

13 years agoAlso check ignored "-z relro".
H.J. Lu [Thu, 14 Jul 2011 14:54:53 +0000 (14:54 +0000)]
Also check ignored "-z relro".

2011-07-14  H.J. Lu  <hongjiu.lu@intel.com>

* ld-elf/binutils.exp (binutils_test): Also check ignored
"-z relro".

13 years agoRevert the last change.
H.J. Lu [Thu, 14 Jul 2011 14:51:09 +0000 (14:51 +0000)]
Revert the last change.

13 years agoSkip relro tests on ia64.
H.J. Lu [Thu, 14 Jul 2011 14:49:37 +0000 (14:49 +0000)]
Skip relro tests on ia64.

2011-07-14  H.J. Lu  <hongjiu.lu@intel.com>

* ld-elf/binutils.exp: Skip relro tests on ia64.

13 years ago * emultempl/elf32.em (gld${EMULATION_NAME}_handle_option,
Alan Modra [Thu, 14 Jul 2011 12:43:35 +0000 (12:43 +0000)]
* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option,
gld${EMULATION_NAME}_list_options): Don't condition -z relro
and -z norelro on COMMONPAGESIZE being defined.

13 years ago * ld-scripts/section-flags.exp: Pass --local-store 0:0 for
Alan Modra [Thu, 14 Jul 2011 06:49:45 +0000 (06:49 +0000)]
* ld-scripts/section-flags.exp: Pass --local-store 0:0 for
spu.  Rewrite using foreach.

13 years ago * linker.c (_bfd_generic_section_already_linked): Set l_flags.
Alan Modra [Thu, 14 Jul 2011 06:22:57 +0000 (06:22 +0000)]
* linker.c (_bfd_generic_section_already_linked): Set l_flags.
* elf-bfd.h (struct already_linked): Forward declare.

13 years ago2011-07-14 Hui Zhu <teawater@gmail.com>
Hui Zhu [Thu, 14 Jul 2011 04:46:42 +0000 (04:46 +0000)]
2011-07-14  Hui Zhu  <teawater@gmail.com>

* remote.c (remote_get_trace_status): Initialize p.

13 years agowhitespace regen
Alan Modra [Thu, 14 Jul 2011 04:02:32 +0000 (04:02 +0000)]
whitespace regen

13 years ago * elflink.c (_bfd_elf_fix_symbol_flags): Loop on indirect syms.
Alan Modra [Thu, 14 Jul 2011 03:57:18 +0000 (03:57 +0000)]
* elflink.c (_bfd_elf_fix_symbol_flags): Loop on indirect syms.
(_bfd_elf_adjust_dynamic_symbol): Remove FIXME.

13 years agobfd/
Alan Modra [Thu, 14 Jul 2011 03:28:22 +0000 (03:28 +0000)]
bfd/
* elf64-ppc.c (struct ppc_link_hash_table): Add plt_static_chain.
(build_plt_stub): Add plt_static_chain param, don't load r11 if false.
(build_tls_get_addr_stub): Likewise.
(ppc_build_one_stub): Update calls to above.
(ppc_size_one_stub): Adjust stub size.
(ppc64_elf_size_stubs): Add plt_static_chain param, save to htab.
* elf64-ppc.h (ppc64_elf_size_stubs): Update prototype.
ld/
* emultempl/ppc64elf.em (plt_static_chain): New var.
(gld${EMULATION_NAME}_after_allocation): Pass to ppc64_elf_size_stubs.
(PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS,
PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Handle
--plt-static-chain and --no-plt-static-chain.
ld/testsuite/
* ld-powerpc/tlsexe.d, * ld-powerpc/tlsexe.g. *ld-powerpc/tlsexe.r,
* ld-powerpc/tlsexetoc.d, * ld-powerpc/tlsexetoc.g,
* ld-powerpc/tlsexetoc.r, * ld-powerpc/tlsso.d,
* ld-powerpc/tlstocso.d: Update for plt stub change.

13 years ago * emultempl/elf32.em (gld${EMULATION_NAME}_add_options,
Alan Modra [Thu, 14 Jul 2011 02:38:43 +0000 (02:38 +0000)]
* emultempl/elf32.em (gld${EMULATION_NAME}_add_options,
gld${EMULATION_NAME}_handle_option, gld${EMULATION_NAME}_list_options):
Provide --build-id, -z defs, -z muldefs, -z max-page-size,
-z common-page-size, -z execstack, -z noexecstack for all targets.
Add help for --exclude-libs.
(OPTION_LD_GENERATED_UNWIND_INFO,
OPTION_NO_LD_GENERATED_UNWIND_INFO): Move this..
(gld${EMULATION_NAME}_handle_option): ..and code handling
--ld-generated-unwind-info and --no-ld-generated-unwind-info..
* emulparams/plt_unwind.sh: ..to here.  New file.  Add help.
* emulparams/elf32_x86_64.sh: Include plt_unwind.sh.
* emulparams/elf_i386.sh: Likewise.
* emulparams/elf_i386_chaos.sh: Likewise.
* emulparams/elf_i386_ldso.sh: Likewise.
* emulparams/elf_l1om.sh: Likewise.
* emulparams/elf_x86_64.sh: Likewise.

13 years ago2011-07-13 Sriraman Tallam <tmsriram@google.com>
Sriraman Tallam [Thu, 14 Jul 2011 00:55:18 +0000 (00:55 +0000)]
2011-07-13  Sriraman Tallam  <tmsriram@google.com>

* plugin-api.h
(ld_plugin_section): New struct.
(ld_plugin_get_section_count): New typedef.
(ld_plugin_get_section_type): New typedef.
(ld_plugin_get_section_name): New typedef.
(ld_plugin_get_section_contents): New typedef.
(ld_plugin_update_section_order): New typedef.
(ld_plugin_allow_section_ordering): New typedef.
(LDPT_GET_SECTION_COUNT): New enum value.
(LDPT_GET_SECTION_TYPE): New enum value.
(LDPT_GET_SECTION_NAME): New enum value.
(LDPT_GET_SECTION_CONTENTS): New enum value.
(LDPT_UPDATE_SECTION_ORDER): New enum value.
(LDPT_ALLOW_SECTION_ORDERING): New enum value.
(tv_get_section_count): New struct members.
(tv_get_section_type): New struct members.
(tv_get_section_name): New struct members.
(tv_get_section_contents): New struct members.
(tv_update_section_order): New struct members.
(tv_allow_section_ordering): New struct members.
* archive.cc (Archive::get_elf_object_for_member): Add extra parameter
to claim_file call.
* layout.cc (Layout::Layout): Initialize section_ordering_specified_,
input_section_position_, and input_section_glob_.
(read_layout_from_file): Call function section_ordering_specified.
* layout.h (is_section_ordering_specified): New function.
(section_ordering_specified): New function.
(section_ordering_specified_): New boolean member.
* main.cc(main): Call load_plugins after layout object is defined.
* output.cc (Output_section::add_input_section): Use
function section_ordering_specified to check if section ordering is
needed.
* output.cc (Output_section::add_relaxed_input_section): Use
function section_ordering_specified to check if section ordering is
needed.
(Output_section::update_section_layout): New function.
(Output_section::sort_attached_input_sections): Check if input section
must be reordered.
* output.h (Output_section::update_section_layout): New function.
* plugin.cc (get_section_count): New function.
(get_section_type): New function.
(get_section_name): New function.
(get_section_contents): New function.
(update_section_order): New function.
(allow_section_ordering): New function.
(Plugin::load): Add the new interfaces to the transfer vector.
(Plugin_manager::load_plugins): New parameter.
(Plugin_manager::all_symbols_read): New parameter.
(Plugin_manager::claim_file): New parameter. Save the elf object for
unclaimed objects.
(Plugin_manager::get_elf_object): New function.
(Plugin_manager::get_view): Change to directly use the bool to check
if get_view is called from claim_file_hook.
* plugin.h (input_objects): New function
(Plugin__manager::load_plugins): New parameter.
(Plugin_manager::claim_file): New parameter.
(Plugin_manager::get_elf_object): New function.
(Plugin_manager::in_claim_file_handler): New function.
(Plugin_manager::in_claim_file_handler_): New member.
(layout): New function.
* readsyms.cc (Read_symbols::do_read_symbols): Call the claim_file
handler with an extra parameter. Make the elf object before calling
claim_file handler.
* testsuite/plugin_test.c (get_section_count): New function pointer.
(get_section_type): New function pointer.
(get_section_name): New function pointer.
(get_section_contents): New function pointer.
(update_section_order): New function pointer.
(allow_section_ordering): New function pointer.
(onload): Check if the new interfaces exist.

13 years ago*** empty log message ***
gdbadmin [Thu, 14 Jul 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***

13 years agodaily update
Alan Modra [Thu, 14 Jul 2011 00:00:05 +0000 (00:00 +0000)]
daily update

13 years ago * i386.cc (Target_i386::got_section): If -z now, make .got.plt a
Ian Lance Taylor [Wed, 13 Jul 2011 22:47:08 +0000 (22:47 +0000)]
* i386.cc (Target_i386::got_section): If -z now, make .got.plt a
relro section.
* x86_64.cc (Target_x86_64::got_section): Likewise.
* testsuite/Makefile.am (check_PROGRAMS): Add relro_now_test.
(relro_now_test_SOURCES): New variable.
(relro_now_test_DEPENDENCIES): New variable.
(relro_now_test_LDFLAGS): New variable.
(relro_now_test_LDADD): New variable.
(relro_now_test.so): New target.
* testsuite/Makefile.in: Rebuild.

13 years agogdb/
Jan Kratochvil [Wed, 13 Jul 2011 17:07:16 +0000 (17:07 +0000)]
gdb/
Work around kgdb.
* remote.c (remote_get_trace_status): New variable ex.  Put
remote_get_noisy_reply into TRY_CATCH.  Call exception_fprintf for it.

13 years ago* gdb.python/py-objfile-script-gdb.py: Renamed to
matt rice [Wed, 13 Jul 2011 17:00:56 +0000 (17:00 +0000)]
* gdb.python/py-objfile-script-gdb.py: Renamed to
py-objfile-script-gdb.py.in.
* gdb.python/py-objfile-script-gdb.py.in: Renamed from
py-objfile-script-gdb.py.
* gdb.python/py-objfile-script.exp: Update reference to
py-objfile-script-gdb.py.

13 years ago * dwarf2expr.c (execute_stack_op) <DW_OP_GNU_regval_type>: Use
Tom Tromey [Wed, 13 Jul 2011 16:51:22 +0000 (16:51 +0000)]
* dwarf2expr.c (execute_stack_op) <DW_OP_GNU_regval_type>: Use
value_from_contents for final conversion.

13 years agogdb/testsuite/
Jan Kratochvil [Wed, 13 Jul 2011 15:18:13 +0000 (15:18 +0000)]
gdb/testsuite/
* gdb.dwarf2/dw2-op-call.S (array1): Use the real label; do not
reference undefined label.

13 years agogdb/
Jan Kratochvil [Wed, 13 Jul 2011 15:15:42 +0000 (15:15 +0000)]
gdb/
Code cleanup.
* dwarf2loc.c (dwarf_expr_frame_base_1, dwarf2_evaluate_loc_desc_full):
Indent prototypes so they do not get into tags.

13 years ago*** empty log message ***
gdbadmin [Wed, 13 Jul 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***

13 years agodaily update
Alan Modra [Wed, 13 Jul 2011 00:00:08 +0000 (00:00 +0000)]
daily update

13 years ago PR gold/12980
Ian Lance Taylor [Tue, 12 Jul 2011 22:29:09 +0000 (22:29 +0000)]
PR gold/12980
* i386.cc (Target_i386::Scan::global): For a GOT reloc, use a
GLOB_DAT relocation rather than a RELATIVE relocation for a
protected symbol when creating a shared library.
* x86_64.cc (Target_x86_64::Scan::global): Likewise.
* testsuite/protected_1.cc (f2, get_f2_addr): New functions.
* testsuite/protected_main_1.cc (main): Test that protected
function has same address.

13 years agogdb/
Jan Kratochvil [Tue, 12 Jul 2011 21:16:48 +0000 (21:16 +0000)]
gdb/
Code cleanup making also optimized out values lazy.
* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Use
allocate_optimized_out_value.  Twice.
(loclist_read_variable)  Use allocate_optimized_out_value.  Once.
* findvar.c (read_var_value): Likewise.
* value.c (allocate_optimized_out_value): New function.
* value.h (allocate_optimized_out_value): New declaration.

13 years agogdb/
Jan Kratochvil [Tue, 12 Jul 2011 20:59:03 +0000 (20:59 +0000)]
gdb/
Fix occasional crash of CTRL-C during DWARF read in.
* dwarf2read.c (dwarf2_mark_helper): Return on NULL CU.

13 years agosim: include sim-options.h for command prototype
Mike Frysinger [Tue, 12 Jul 2011 20:21:28 +0000 (20:21 +0000)]
sim: include sim-options.h for command prototype

The sim_args_command prototype is in sim-options.h, so pull it in
directly rather than assuming a common header does it.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years agosim: fix broken skel configure.ac example
Mike Frysinger [Tue, 12 Jul 2011 20:20:32 +0000 (20:20 +0000)]
sim: fix broken skel configure.ac example

Shell code before AC_INIT will be silently culled, and since the common
aclocal.m4 includes inline shell code, the file cannot be included before
AC_INIT.  So update the example to show people including the file after
that rather than before to avoid random breakage.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years agosim: use AC_REQUIRE with AC_PROG_CC
Mike Frysinger [Tue, 12 Jul 2011 20:19:49 +0000 (20:19 +0000)]
sim: use AC_REQUIRE with AC_PROG_CC

The autoconf guys point out that our usage of AC_PROG_CC in the
SIM_AC_COMMON does not jive with their intended use.
http://www.gnu.org/software/autoconf/manual/autoconf.html#Expanded-Before-Required

So utilize AC_REQUIRE to make the warnings go away and generate
the correct code with different autoconf versions.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years ago * elf32-arm.c (elf32_arm_section_flags): Delete.
Nick Clifton [Tue, 12 Jul 2011 15:17:43 +0000 (15:17 +0000)]
* elf32-arm.c (elf32_arm_section_flags): Delete.
(elf_backend_section_flags): Remove.

13 years ago * arm-dis.c (print_insn_arm): Revert previous, undocumented,
Nick Clifton [Tue, 12 Jul 2011 08:45:45 +0000 (08:45 +0000)]
* arm-dis.c (print_insn_arm): Revert previous, undocumented,
accidental change.

13 years ago PR 12983
Cary Coutant [Tue, 12 Jul 2011 04:47:49 +0000 (04:47 +0000)]
PR 12983
* binutils/nm.c (display_file): Decompress debug sections when
printing line numbers.

13 years agodaily update
Alan Modra [Tue, 12 Jul 2011 00:00:06 +0000 (00:00 +0000)]
daily update

13 years ago*** empty log message ***
gdbadmin [Tue, 12 Jul 2011 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***

13 years agosim: m32c/rx: rename configure.in to match rest of the tree
Mike Frysinger [Mon, 11 Jul 2011 19:00:17 +0000 (19:00 +0000)]
sim: m32c/rx: rename configure.in to match rest of the tree

The sim dir has 30 configure.ac files and 2 configure.in files.
So rename the minority to be consistent.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years agosim: m32c/rx: fix typo in copyright updating
Mike Frysinger [Mon, 11 Jul 2011 18:45:45 +0000 (18:45 +0000)]
sim: m32c/rx: fix typo in copyright updating

13 years agoAlso skip BFD_PLUGIN when setting stack_flags.
H.J. Lu [Mon, 11 Jul 2011 18:39:13 +0000 (18:39 +0000)]
Also skip BFD_PLUGIN when setting stack_flags.

2011-07-11  H.J. Lu  <hongjiu.lu@intel.com>

PR ld/12982
* elflink.c (bfd_elf_size_dynamic_sections): Also skip BFD_PLUGIN
when setting stack_flags.

13 years ago * regcache.c (struct regcache_descr): Fix typo.
Tom Tromey [Mon, 11 Jul 2011 17:19:16 +0000 (17:19 +0000)]
* regcache.c (struct regcache_descr): Fix typo.
* i387-tdep.c (i387_supply_xsave): Fix typo.

13 years ago * dwarf2read.c (handle_DW_AT_stmt_list): New function.
Tom Tromey [Mon, 11 Jul 2011 17:17:26 +0000 (17:17 +0000)]
* dwarf2read.c (handle_DW_AT_stmt_list): New function.
(read_file_scope, read_type_unit_scope): Use it.

13 years ago PR gold/12979
Ian Lance Taylor [Mon, 11 Jul 2011 16:19:51 +0000 (16:19 +0000)]
PR gold/12979
* options.h (class General_options): Add -Bgroup.
* options.cc (General_options::finalize): If -Bgroup is set,
default to --unresolved-symbols=report-all.
* layout.cc (Layout::finish_dynamic_section): Implement -Bgroup.
* target-reloc.h (issue_undefined_symbol_error): Handle
--unresolved-symbols=report-all.

13 years agoinclude/ChangeLog
Catherine Moore [Mon, 11 Jul 2011 15:03:09 +0000 (15:03 +0000)]
include/ChangeLog
2011-07-11  Catherine Moore  <clm@codesourcery.com>

* bfdlink.h (flag_type): New enumeration.
(flag_info_list): New structure.
(flag_info): New structure.

bfd/ChangeLog
2011-07-11  Catherine Moore  <clm@codesourcery.com>

* aout-adobe.c (aout_32_bfd_lookup_section_flags): New definition.
* aout-target.h (MY_bfd_lookup_section_flags): New definition.
* aout-tic30.c (MY_bfd_lookup_section_flags): New definition.
        * bfd-in2.h: Regenerated.
* bfd.c (bfd_lookup_section_flags): New definition.
* binary.c (binary_bfd_lookup_section_flags): New definition.
* bout.c (b_out_bfd_lookup_section_flags): New definition.
* coff-alpha.c (_bfd_ecoff_bfd_lookup_section_flags): New definition.
* coff-mips.c (_bfd_ecoff_bfd_lookup_section_flags): New definition.
* coff-rs6000.c (rs6000coff_vec): Include
bfd_generic_lookup_section_flags.
(pmac_xcoff_vec): Likewise.
* coffcode.h (coff_bfd_lookup_section_flags): New definition.
* coff64-rs6000.c (rs6000coff64_vec): Include
bfd_generic_lookup_section_flags.
(aix5coff64_vec): Likewise.
* ecoff.c (bfd_debug_section): Initialize flag_info field.
* elf-bfd.h (elf_backend_lookup_section_flags_hook): Declare.
(bfd_elf_lookup_section_flags): Declare.
* elflink.c (bfd_elf_lookup_section_flags): New function.
* elfxx-target.h (bfd_elfNN_bfd_lookup_section_flags): Define.
(elf_backend_lookup_section_flags_hook): Define.
(elf_backend_data): Add elf_backend_lookup_section_flags_hook.
* i386msdos.c (msdos_bfd_lookup_section_flags): New define.
* i386os9k.c (os9k_bfd_lookup_section_flags): New define.
* ieee.c (ieee_bfd_lookup_section_flags): New define.
* ihex.c (ihex_bfd_lookup_section_flags): New define.
* libbfd-in.h (_bfd_nolink_bfd_lookup_section_flags): Declare.
(bfd_generic_lookup_section_flags): Declare.
* libbfd.h: Regenerated.
* mach-o-target.c (bfd_mach_o_bfd_lookup_section_flags): New.
* mmo.c (mmo_bfd_lookup_section_flags): New definition.
* nlm-target.h (nlm_bfd_lookup_section_flags): New definition.
* oasys.c (oasys_bfd_lookup_section_flags): New definition.
* pef.c (bfd_pef_bfd_lookup_section_flags): New definition.
* plugin.c (bfd_plugin_bfd_lookup_section_flags): New definition.
* ppcboot.c (ppcboot_bfd_lookup_section_flags): New definition.
* reloc.c (bfd_generic_lookup_section_flags): New function.
* som.c (som_bfd_lookup_section_flags): New definition.
* srec.c (srec_bfd_lookup_section_flags): New definition.
* targets.c (flag_info): Declare.
(NAME##_bfd_lookup_section_flags): Add to LINK jump table.
(_bfd_lookup_section_flags): New.
* tekhex.c (tekhex_bfd_lookup_section_flags): New definition.
* versados.c (versados_bfd_lookup_section_flags): New definition.
* vms-alpha.c (alpha_vms_bfd_lookup_section_flag): New definition.
* xsym.c (bfd_sym_bfd_lookup_section_flags): New definition.

ld/ChangeLog
2011-07-11  Catherine Moore  <clm@codesourcery.com>

* ld.h (section_flag_list): Add field to struct wildcard_spec.
* ld.texinfo (INPUT_SECTION_FLAGS): Document.
* ldgram.y (flag_info_list, flag_info): Add to union.
(INPUT_SECTION_FLAGS): New token.
(wildcard_spec): Initialize section_flag_list to NULL for
each alternative.
(sect_flag_list, sect_flags): New rules.
(input_section_spec_no_keep): Add alternatives to recognize
sect_flags.
* ldlang.c (walk_wild_consider_section): Initialize
section_flag_info field of the section struct.
(lang_add_section): Check input section flags.
(lang_add_wild): Initialize section_flag_list field of
the statement struct.
* ldlang.h (lang_input_statement_struct): Add section_flag_list field.
(lang_wild_statement_struct): Likewise.
* ldlex.l (INPUT_SECTION_FLAGS): New token.
* mri.c (mri_draw_tree): Initialize section_flag_list to NULL.
* NEWS: Announce INPUT_SECTION_FLAGS enhancement.

ld/testsuite/ChangeLog
2011-07-11 Catherine Moore  <clm@cm00re.com>

* ld-scripts/section-flags-1.s: New.
* ld-scripts/section-flags-1.t: New.
* ld-scripts/section-flags-2.s: New.
* ld-scripts/section-flags-2.t: New.
* ld-scripts/section-flags.exp: New.

13 years agoFix a typo in elfnn-ia64.c (count_dyn_reloc).
H.J. Lu [Mon, 11 Jul 2011 13:54:52 +0000 (13:54 +0000)]
Fix a typo in elfnn-ia64.c (count_dyn_reloc).

2011-07-11  H.J. Lu  <hongjiu.lu@intel.com>

PR ld/12978
* elfnn-ia64.c (count_dyn_reloc): Fix a typo.

13 years agogdb/
Jan Kratochvil [Mon, 11 Jul 2011 13:40:24 +0000 (13:40 +0000)]
gdb/
* dwarf2expr.c (read_sleb128): Fix signed extension overflowing host
`int'.

gdb/testsuite/
* gdb.dwarf2/dw2-const.S (Pointer size): Change from 4 to 8.
(DW_AT_high_pc, DW_AT_low_pc): Remove them.
(val8, .Ltype_const8, .Ltype_int8, DW_TAG_variable): New.
* gdb.dwarf2/dw2-const.exp (print/x val8): New test.

13 years ago2011-07-11 Phil Muldoon <pmuldoon@redhat.com>
Phil Muldoon [Mon, 11 Jul 2011 13:07:38 +0000 (13:07 +0000)]
2011-07-11  Phil Muldoon  <pmuldoon@redhat.com>

        PR python/12438
* python/python.c: Set gdbpy_should_print_stack default to off.
(set_python): Deprecate maint set python print-stack to
class_deprecate.
(_initialize_python): Deprecate maint set/show python print-stack.
Add new prefix command, python.  Add new setting, print-backtrace.
* NEWS: Document set python print-stack.  Document default change.

2011-07-11  Phil Muldoon  <pmuldoon@redhat.com>

        PR python/12438
* gdb.texinfo (Python Commands): Add deprecate note to maint
          set/show python print-stack.  Document set/show python
          print-backtrace.

2011-07-11  Phil Muldoon  <pmuldoon@redhat.com>

        PR python/12438
* gdb.python/python.exp: Add maint set/show python print-stack
          deprecated tests.  Add set/show python print-backtrace tests.

13 years ago2011-07-11 Phil Muldoon <pmuldoon@redhat.com>
Phil Muldoon [Mon, 11 Jul 2011 12:10:19 +0000 (12:10 +0000)]
2011-07-11  Phil Muldoon  <pmuldoon@redhat.com>

* python/py-inferior.c (infpy_dealloc): New function.
        (inferior_to_inferior_object): Return a new object, or a
new reference to the existing object.
        (find_thread_object): Cleanup references to inferior.
        (delete_thread_object): Ditto.
        * python/py-infthread.c (create_thread_object): Do not increment
inferior reference count.

13 years ago * ld-powerpc/tocopt2.s, * ld-powerpc/tocopt2.out,
Alan Modra [Mon, 11 Jul 2011 12:03:55 +0000 (12:03 +0000)]
* ld-powerpc/tocopt2.s, * ld-powerpc/tocopt2.out,
* ld-powerpc/tocopt2.d: New test.
* ld-powerpc/tocopt3.s, * ld-powerpc/tocopt3.d: New test.
* ld-powerpc/powerpc.exp (ppc64elftests) Run them.

13 years agodaily update
Alan Modra [Mon, 11 Jul 2011 00:00:05 +0000 (00:00 +0000)]
daily update

13 years ago*** empty log message ***
gdbadmin [Mon, 11 Jul 2011 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***

13 years agodaily update
Alan Modra [Sun, 10 Jul 2011 00:00:05 +0000 (00:00 +0000)]
daily update

13 years ago*** empty log message ***
gdbadmin [Sun, 10 Jul 2011 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***

13 years ago PR gold/11985
Ian Lance Taylor [Sat, 9 Jul 2011 06:33:59 +0000 (06:33 +0000)]
PR gold/11985
* layout.cc (Layout::create_initial_dynamic_sections): Don't crash
if linker script discards key sections.
(Layout::create_dynamic_symtab): Likewise.
(Layout::assign_local_dynsym_offsets): Likewise.
(Layout::sized_create_version_sections): Likewise.
(Layout::create_interp): Likewise.
(Layout::finish_dynamic_section): Likewise.
(Layout::set_dynamic_symbol_size): Likewise.

13 years ago PR ld/12942
Alan Modra [Sat, 9 Jul 2011 06:20:52 +0000 (06:20 +0000)]
PR ld/12942
bfd/
* elflink.c (elf_link_add_object_symbols): Use elf_discarded_section
rather than kept_section to determine whether a symbol is from
a discarded section.
* cofflink.c (coff_link_add_symbols): Make symbols from discarded
sections appear undefined.

* elf-bfd.h (_bfd_elf_section_already_linked): Replace
"asection *" with "struct already_linked *".
* libbfd-in.h (_bfd_nolink_section_already_linked): Likewise.
(_bfd_generic_section_already_linked): Likewise.
(bfd_section_already_linked_table_insert): Likewise.
(struct already_linked): New.
(struct bfd_section_already_linked): Use it.
* elflink.c (_bfd_elf_section_already_linked): Replace.
"asection *" with "struct already_linked *".  Replace the plugin
dummy with the LTO output.
* linker.c (_bfd_generic_section_already_linked): Likewise.
* targets.c (struct already_linked): Add forward declaration.
(bfd_target): Replace "struct bfd_section *" with
"struct already_linked *" in _section_already_linked.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.

include/
* bfdlink.h (bfd_link_info): Add loading_lto_outputs.

ld/
* ldlang.c (section_already_linked): Pass "struct already_linked *"
to bfd_section_already_linked.
(lang_process): Set link_info.loading_lto_outputs before
loading LTO outputs.
* plugin.c: Include "libbfd.h".
(add_symbols): Call bfd_section_already_linked with comdat_key.

13 years ago PR gold/12386
Ian Lance Taylor [Sat, 9 Jul 2011 06:11:34 +0000 (06:11 +0000)]
PR gold/12386
* options.h (class General_options): Add --unresolved-symbols.
* target-reloc.h (issue_undefined_symbol_error): Check
--unresolved-symbols.  Add comments.

13 years ago * testsuite/odr_violation2.cc (Ordering::operator()): Make
Ian Lance Taylor [Sat, 9 Jul 2011 05:09:52 +0000 (05:09 +0000)]
* testsuite/odr_violation2.cc (Ordering::operator()): Make
expression more complex.

13 years ago PR gold/11317
Ian Lance Taylor [Sat, 9 Jul 2011 00:47:12 +0000 (00:47 +0000)]
PR gold/11317
* target-reloc.h (issue_undefined_symbol_error): New inline
function, broken out of relocate_section.
(relocate_section): Call issue_undefined_symbol_error.
* i386.cc (Target_i386::Relocate::relocate_tls): Don't crash if
there is no TLS segment if we are about to issue an undefined
symbol error.
* x86_64.cc (Target_x86_64::relocate_tls): Likewise.

13 years agodaily update
Alan Modra [Sat, 9 Jul 2011 00:00:06 +0000 (00:00 +0000)]
daily update

13 years ago*** empty log message ***
gdbadmin [Sat, 9 Jul 2011 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***

13 years ago PR gold/12279
Ian Lance Taylor [Fri, 8 Jul 2011 23:49:11 +0000 (23:49 +0000)]
PR gold/12279
* resolve.cc (Symbol_table::should_override): Add fromtype
parameter.  Change all callers.  Give error when linking together
TLS and non-TLS symbol.
(Symbol_table::should_override_with_special): Add fromtype
parameter.  Change all callers.
* i386.cc (Target_i386::Relocate::relocate_tls): Don't crash if
there is no TLS segment if we have reported some errors.
* x86_64.cc (Target_x86_64::relocate_tls): Likewise.

13 years ago PR gold/12372
Ian Lance Taylor [Fri, 8 Jul 2011 22:48:08 +0000 (22:48 +0000)]
PR gold/12372
* target.h (Target::plt_address_for_global): New function.
(Target::plt_address_for_local): New function.
(Target::plt_section_for_global): Remove.
(Target::plt_section_for_local): Remove.
(Target::do_plt_address_for_global): New virtual function.
(Target::do_plt_address_for_local): New virtual function.
(Target::do_plt_section_for_global): Remove.
(Target::do_plt_section_for_local): Remove.
(Target::register_global_plt_entry): Add Symbol_table and Layout
parameters.
* output.cc (Output_data_got::Got_entry::write): Use
plt_address_for_global and plt_address_for_local.
* layout.cc (Layout::add_target_dynamic_tags): Use size and
address of output section.
* i386.cc (class Output_data_plt_i386): Add irelative_rel_,
got_irelative_, and irelative_count_ fields.  Update
declarations.
(Output_data_plt_i386::has_irelative_section): New function.
(Output_data_plt_i386::entry_count): Add irelative_count_.
(Output_data_plt_i386::set_final_data_size): Likewise.
(class Target_i386): Add got_irelative_ and rel_irelative_
fields.  Update declarations.
(Target_i386::Target_i386): Initialize new fields.
(Target_i386::do_plt_address_for_global): New function replacing
do_plt_section_for_global.
(Target_i386::do_plt_address_for_local): New function replacing
do_plt_section_for_local.
(Target_i386::got_section): Create got_irelative_.
(Target_i386::rel_irelative_section): New function.
(Output_data_plt_i386::Output_data_plt_i386): Initialize new
fields.  Don't define __rel_iplt_{start,end}.
(Output_data_plt_i386::add_entry): Add symtab and layout
parameters.  Change all callers.  Use different PLT and GOT for
IFUNC symbols.
(Output_data_plt_i386::add_local_ifunc_entry): Add symtab and
layout parameters.  Change all callers.  Use different PLT and
GOT.
(Output_data_plt_i386::rel_tls_desc): Fix formatting.
(Output_data_plt_i386::rel_irelative): New function.
(Output_data_plt_i386::address_for_global): New function.
(Output_data_plt_i386::address_for_local): New function.
(Output_data_plt_i386::do_write): Write out IRELATIVE area.  Use
IRELATIVE GOT when changing IFUNC GOT entries.
(Target_i386::Scan::global): Use IRELATIVE GOT for IRELATIVE
reloc.
(Target_i386::do_finalize_sections): Create the __rel_iplt symbols
if we didn't create an IRELATIVE GOT.
(Target_i386::Relocate::relocate): Use plt_address_for_global and
plt_address_for_local.
(Target_i386::do_dynsym_value): Use plt_address_for_global.
* x86_64.cc (class Output_data_plt_x86_64): Add irelative_rel_,
got_irelative_, and irelative_count_ fields.  Update
declarations.
(Output_data_plt_x86_64::Output_data_plt_x86_64) [both versions]:
Initialize new fields.  Remove symtab parameter.  Change all
callers.
(Output_data_plt_x86_64::get_tlsdesc_plt_offset): Add
irelative_count_.
(Output_data_plt_x86_64::has_irelative_section): New function.
(Output_data_plt_x86_64::entry_count): Add irelative_count_.
(class Target_x86_64): Add got_irelative_ and rel_irelative_
fields.  Update declarations.
(Target_x86_64::Target_x86_64): Initialize new fields.
(Target_x86_64::do_plt_address_for_global): New function replacing
do_plt_section_for_global.
(Target_x86_64::do_plt_address_for_local): New function replacing
do_plt_section_for_local.
(Target_x86_64::got_section): Create got_irelative_.
(Target_x86_64::rela_irelative_section): New function.
(Output_data_plt_x86_64::init): Remove symtab parameter.  Change
all callers.  Don't create __rel_iplt_{start,end}.
(Output_data_plt_x86_64::add_entry): Add symtab and layout
parameters.  Change all callers.  Use different PLT and GOT for
IFUNC symbols.
(Output_data_plt_x86_64::add_local_ifunc_entry): Add symtab and
layout parameters.  Change all callers.  Use different PLT and
GOT.
(Output_data_plt_x86_64::add_relocation): Add symtab and layout
parameters.  Change all callers.  Use different PLT and GOT for
IFUNC symbols.
(Output_data_plt_x86_64::rela_tlsdesc): Fix formatting.
(Output_data_plt_x86_64::rela_irelative): New function.
(Output_data_plt_x86_64::address_for_global): New function.
(Output_data_plt_x86_64::address_for_local): New function.
(Output_data_plt_x86_64::set_final_data_size): Likewise.
(Output_data_plt_x86_64::do_write): Write out IRELATIVE area.
(Target_x86_64::init_got_plt_for_update): Create got_irelative_.
(Target_x86_64::register_global_plt_entry): Add symtab and layout
parameters.
(Target_x86_64::Scan::global): Use IRELATIVE GOT for IRELATIVE
reloc.
(Target_x86_64::do_finalize_sections): Create the __rela_iplt
symbols if we didn't create an IRELATIVE GOT.
(Target_x86_64::Relocate::relocate): Use plt_address_for_global and
plt_address_for_local.
(Target_x86_64::do_dynsym_value): Use plt_address_for_global.
* testsuite/ifuncvar1.c: New test file.
* testsuite/ifuncvar2.c: New test file.
* testsuite/ifuncvar3.c: New test file.
* testsuite/Makefile.am (check_PROGRAMS): Add ifuncvar.
(ifuncvar1_pic.o, ifuncvar2_pic.o, ifuncvar.so): New targets.
(ifuncvar_SOURCES, ifuncvar_DEPENDENCIES): New variables.
(ifuncvar_LDFLAGS, ifuncvar_LDADD): New variables.
* testsuite/Makefile.in: Rebuild.