Nathan Sidwell [Tue, 3 Nov 2009 09:33:18 +0000 (09:33 +0000)]
* configure.ac (i[34567]86-*): Check if we're targetting x86-64
with an i686 compiler.
* configure.srv (i[34567]86-*-linux*): Pull in x86-64 handling if
needed.
* configure: Rebuilt.
Jan Kratochvil [Mon, 2 Nov 2009 14:59:53 +0000 (14:59 +0000)]
gdb/
* symfile.c (build_id_to_debug_filename): New variable debugdir. Move
variables size, s and data into a new inner block. Change xmalloc for
alloca, use direct BUILDID->SIZE there now. Loop for the
DEBUG_FILE_DIRECTORY components.
(find_separate_debug_file): New variable debugdir and debugdir_end.
Loop for the DEBUG_FILE_DIRECTORY components.
(_initialize_symfile): For "debug-file-directory" use plural and note
one can use multiple components now.
gdb/doc/
* gdb.texinfo (set debug-file-directory, show debug-file-directory)
(Auto-loading): Use plural and note one can use multiple components now.
gdb/testsuite/
* gdb.base/sepdebug.exp: New test_different_dir call for multiple-dirs.
Jan Kratochvil [Mon, 2 Nov 2009 14:57:02 +0000 (14:57 +0000)]
gdb/
* symfile.c (find_separate_debug_file): Initialize dir, debugfile and
canon_name to NULL. Change alloca to xmalloc, newly call xfree for it.
New label cleanup_return_debugfile, jump to it from the failure paths.
Jan Kratochvil [Mon, 2 Nov 2009 14:50:29 +0000 (14:50 +0000)]
gdb/
Remove INVALID_ENTRY_POINT.
* frame.c (inside_entry_func): New variable entry_point. Return 0 if
the entry point is not known.
* solib-irix.c (enable_break): Likewise.
* objfiles.c (init_entry_point_info): Stop using INVALID_ENTRY_POINT.
Initialize EI.ENTRY_POINT_P.
(entry_point_address): Rename to ...
(entry_point_address_query): ... a new function. Use EI.ENTRY_POINT_P.
(entry_point_address): New function.
(objfile_relocate): Use EI.ENTRY_POINT_P.
* objfiles.h (struct entry_info): Simplify entry_point comment. New
field entry_point_p.
(INVALID_ENTRY_POINT): Remove.
(entry_point_address_query): New prototype.
* solib-frv.c (enable_break): Check for NULL SYMFILE_OBJFILE and its
EI.ENTRY_POINT_P. Return 0 if ".interp" is not found.
ld/testsuite/
* ld-arm/arm-elf.exp: Add new attr-merge-vfp tests.
* ld-arm/attr-merge-vfp-1.d: New test.
* ld-arm/attr-merge-vfp-1r.d: New test.
* ld-arm/attr-merge-vfp-2.d: New test.
* ld-arm/attr-merge-vfp-2r.d: New test.
* ld-arm/attr-merge-vfp-3.d: New test.
* ld-arm/attr-merge-vfp-3r.d: New test.
* ld-arm/attr-merge-vfp-4.d: New test.
* ld-arm/attr-merge-vfp-4r.d: New test.
* ld-arm/attr-merge-vfp-5.d: New test.
* ld-arm/attr-merge-vfp-5r.d: New test.
* ld-arm/attr-merge-vfp-2.s: New test.
* ld-arm/attr-merge-vfp-3.s: New test.
* ld-arm/attr-merge-vfp-3-d16.s: New test.
* ld-arm/attr-merge-vfp-4.s: New test.
* ld-arm/attr-merge-vfp-4-d16.s: New test.
gas/
* doc/c-arm.texi: Document new -mfpu options.
* config/tc-arm.c (fpu_vfp_ext_v3xd, fpu_vfp_fp16, fpu_neon_ext_fma,
fpu_vfp_ext_fma): New.
(NEON_ENC_TAB): Add vfma, vfms, vfnma and vfnms.
(do_vfp_nsyn_fma_fms, do_neon_fmac): New functions.
(insns): Move double precision load/store. Split out double
precision VFPv3 instrucitons. Add VFPv4 instructions.
(arm_fpus): Add VFPv3-FP16, VFPv3xD and VFPv4 variants.
(aeabi_set_public_attributes): Set VFPv4 variants
gas/testsuite/
* gas/arm/attr-mfpu-vfpv4.d: New test.
* gas/arm/attr-mfpu-vfpv4-d16.d: New test.
* gas/arm/neon-fma-cov.d: New test.
* gas/arm/neon-fma-cov.s: New test.
* gas/arm/vfp-fma-inc.s: New test.
* gas/arm/vfp-fma-arm.d: New test.
* gas/arm/vfp-fma-arm.s: New test.
* gas/arm/vfp-fma-thumb.d: New test.
* gas/arm/vfp-fma-thumb.s: New test.
* gas/arm/vfma1.d: New test.
* gas/arm/vfma1.s: New test.
* gas/arm/vfpv3xd.d: New test.
* gas/arm/vfpv3xd.s: New test.
* breakpoint.c (catch_syscall_split_args): Remove unecessary warning
displayed when the user provided a syscall name and there is no
XML support.
* xml-syscall.c: Renamed `_sysinfo' to `sysinfo'.
(set_xml_syscall_file_name): Remove syscall_warn_user.
(xml_init_syscalls_info): Remove warning.
(init_sysinfo): Update warnings.
* gdb.base/catch-syscall.exp: Adapt the testcase in order to accept
the modified warnings for catch syscall. Verify if GDB was compiled
with support for lib expat, and choose which tests to run depending
on this.
* arm.cc (Stub_addend_reader): New struct template definition
and partial specializations.
(Stub_addend_reader::operator()): New method definition for a
partially specialized template.
* i386-dis.c (OP_VEX_FMA): Removed.
(VexFMA): Removed.
(Vex128FMA): Removed.
(prefix_table): First source operand of FMA4 insns is decoded
with Vex not with VexFMA.
(OP_EX_VexW): Second source operand is decoded with get_vex_imm8
when vex.w is set. Third source operand is decoded with
get_vex_imm8 when vex.w is cleared.
(OP_VEX_FMA): Removed.
* config/tc-mep.c (md_pseudo_table): Remove dwarf2 pseudo
as they are already defined in obj-elf.c
* config/tc-m32c.c (md_pseudo_table): Ditto.
* config/tc-spu.c (md_pseudo_table): Ditto.
* config/tc-avr.c (md_pseudo_table): Ditto.
* arm.cc (Arm_relobj): New class definition.
(Arm_relobj::scan_sections_for_stubs,
Arm_relobj::do_count_local_symbols, Arm_relobj::do_relocate_sections):
New method definitions.
Cary Coutant [Wed, 28 Oct 2009 18:07:25 +0000 (18:07 +0000)]
* plugin.h (Plugin::Plugin): Initialize cleanup_done_.
(Plugin::cleanup_done_): New member.
(Plugin_manager::Plugin_manager): Remove cleanup_done_.
(Plugin_manager::cleanup_done_): Remove.
(Plugin_manager::add_input_file): Edit error message.
* plugin.cc (Plugin::cleanup): Test and set cleanup_done_.
(Plugin_manager::cleanup): Remove use of cleanup_done_.
* dlltool.c (leading_underscore): New local variable.
(asm_prefix): Interpret leading_underscore.
(xlate): Likewise.
(add_excludes): Use leading_underscore for making
symbol name.
(gen_exp_file): Use leading_underscore for internal
_imp_ symbols.
(usage): Add display of --no-leading-underscore and
--leading-underscore option.
(OPTION_NO_LEADING_UNDERSCORE): New.
(OPTION_LEADING_UNDERSCORE): New.
(long_options): Add --no-leading-underscore and
--leading-underscore option.
(main): Handle new options.
* doc/binutils.text: Add documentation of the options
--no-leading-underscore and --leading-underscore.
PR gdb/10757
* thread-db.c (attach_thread): New function.
(maybe_attach_thread): Return success/failure.
(find_new_threads_callback): Adjust.
(thread_db_find_new_threads): Loop until no new threads.
Joel Brobecker [Wed, 28 Oct 2009 15:01:27 +0000 (15:01 +0000)]
gdb/:
* remote.c (interrupt_sequence_control_c)
(interrupt_sequence_break, interrupt_sequence_break_g)
(interrupt_sequence_modes): New constants.
(interrupt_sequence_mode, interrupt_on_connect): New variable.
(show_interrupt_sequence): New function.
(set_remotebreak, show_remotebreak): New function.
(send_interrupt_sequence): New function.
(remote_start_remote): Call send_interrupt_sequence if
interrupt_on_connect is true.
(remote_stop_as): Call send_interrupt_sequence.
(_initialize_remote): Add interrupt-sequence and interrupt-on-connect,
modify remotebreak to call set_remotebreak and show_remotebreak.
* NEWS: Add entry for "set/show remote interrupt-sequence" and
"set/show remote interrupt-on-connect". Also mention that
"set/show remotebreak" is now deprecated.
Alan Modra [Wed, 28 Oct 2009 08:21:45 +0000 (08:21 +0000)]
PR gas/10856
* expr.c (resolve_expression): Only add "left" value to O_symbol
expression when the symbol is undefined and different from the
original symbol. Simplify negative logic.
Ian Lance Taylor [Wed, 28 Oct 2009 00:42:34 +0000 (00:42 +0000)]
* fileread.cc: (File_read::View::~View): Use the new
data_ownership_ filed.
(File_read::~File_read): Dispose the new whole_file_view_.
(File_read::open): Mmap the whole file if needed.
(File_read::open): Use whole_file_view_ instead of contents_.
(File_read::find_view): Use whole_file_view_ if applicable.
(File_read::do_read): Use whole_file_view_ instead of contents_.
(File_read::make_view): Use whole_file_view_ instead of contents_,
update File_read::View::View call.
(File_read::find_or_make_view): Update File_read::View::View
call.
* fileread.h: (File_read::File_read): Initialize whole_file_view_,
remove contents_
(File_read::View::Data_ownership): New enum.
(File_read::View::View): Replace bool mapped_ with Data_ownership
argument.
(File_read::View::mapped_): Remove (replaced by data_ownership_).
(File_read::View::data_ownership_): New field.
(File_read::contents_): Remove (replaced by whole_file_view_).
(File_read::whole_file_view_): New field.
* options.h (class General_options): Add --keep-files-mapped.
Cary Coutant [Wed, 28 Oct 2009 00:32:12 +0000 (00:32 +0000)]
* symtab.cc (add_from_pluginobj): Pass correct value for is_ordinary.
* testsuite/Makefile.am (plugin_test_5): New test case.
* testsuite/Makefile.in: Regenerate.
PR gdb/10757
* linux-thread-db.c (attach_thread): Return success/failure
indicator.
(thread_db_find_new_threads_silently): Retry until no new threads.
(struct callback_data): New.
(find_new_threads_callback): Count new threads, stop iteration
on error.
(find_new_threads_once): New function.
(thread_db_find_new_threads_2): Rename from
thread_db_find_new_threads_1 and adjust.
(thread_db_find_new_threads_1): New function.
Jan Kratochvil [Sun, 25 Oct 2009 19:35:26 +0000 (19:35 +0000)]
gdb/
Performance optimize large bp_location count.
* breakpoint.c (ALL_BP_LOCATIONS_SAFE): Remove.
(ALL_BP_LOCATIONS): New parameter BP_TMP. Use now bp_location and
bp_location_count.
(bp_location_chain): Remove variable.
(bp_location, bp_location_count)
(bp_location_placed_address_before_address_max)
(bp_location_shadow_len_after_address_max): New variables.
(moribund_locations, update_watchpoint): Update the bp_location
variable name.
(breakpoint_restore_shadows): Extend the comment. Move the variable
b to local blocks. Move the variables bp_addr, bp_size and bptoffset
to a local block. New variables bc_l, bc_r and bc. New binary search
for the left range boundary. New break on reaching the right range
boundary. Move shadow existence conditionals to ...
(bp_location_has_shadow): ... a new function.
(insert_breakpoint_locations): Replace the temp variable by bp_tmp.
Use now ALL_BP_LOCATIONS instead of ALL_BP_LOCATIONS_SAFE.
(remove_breakpoints, remove_hw_watchpoints, reattach_breakpoints)
(detach_breakpoints): New variable bp_tmp. Update the ALL_BP_LOCATIONS
calling convention.
(update_breakpoints_after_exec): New variable bplocp_tmp. Update the
ALL_BP_LOCATIONS calling convention.
(breakpoint_here_p, software_breakpoint_inserted_here_p)
(breakpoint_thread_match): New variable bptp_tmp. Drop the const
attribute of bpt. Update the ALL_BP_LOCATIONS calling convention.
(regular_breakpoint_inserted_here_p): Likewise. Update the bp_location
variable name.
(mark_breakpoints_out, breakpoint_init_inferior): New variable
bptp_tmp. Update the ALL_BP_LOCATIONS calling convention.
(bpstat_stop_status): New variables blp_tmp and update_locations. Drop
the const attribute of bl. Update the ALL_BP_LOCATIONS calling
convention. Protect HIT_COUNT increment by an ENABLE_STATE check.
Delay the update_global_location_list call using update_locations.
(set_default_breakpoint): Drop the check_duplicates name from comment.
(disable_breakpoints_in_shlibs, disable_breakpoints_in_unloaded_shlib):
New variable locp_tmp. Update the ALL_BP_LOCATIONS calling convention.
(bp_location_compare, bp_location_compare_for_qsort)
(bp_location_target_extensions_update): New functions.
(check_duplicates, check_duplicates_for): Remove, moving their code ...
(update_global_location_list): ... into this existing function. Remove
variables next, loc2, old_locations, ret and ix. New variables locp,
loc_first, old_location, old_locp and old_location_count. Stop using
global_next, create now the array bp_location, sort it by
bp_location_compare_for_qsort and call
bp_location_target_extensions_update. Change quadratic iteration by
loc2 into an in-sync scanning by locp and loc2p. Rename former loc
usage as old_loc.
(do_vec_free): Remove.
(breakpoint_program_space_exit): Update the ALL_BP_LOCATIONS calling
convention.
(remove_breakpoints_pid): New variable b_tmp. Update the
ALL_BP_LOCATIONS calling convention.
* breakpoint.h (struct bp_location <global_next>): Remove.
* arm.cc (Arm_output_section, Arm_relobj): Forward class declarations.
(Arm_input_section::as_arm_input_section): New method.
(Arm_output_section): New class definition.
(Arm_output_section::create_stub_group,
Arm_output_section::group_sections): New method definitions.
Arnold Metselaar [Sun, 25 Oct 2009 16:15:19 +0000 (16:15 +0000)]
* config/tc-z80.c (z80_start_line_hook): Fix parsing of 'equ' or
'defl' in cases where the space between the keyword and the
expression has been scrubbed away.
Do not check whether a symbol is redefined with 'equ' here;
the function equals takes an argument indicating whether
redefinitions are allowed.
Only call LISTING_NEWLINE if needed, and then after the call to
bump_line_counters.
* doc/as.texinfo (Overview): Move -mfix7000/-mno-fix7000 to
match the order elsewhere. Add -mfix-vr4120/-mno-fix-vr4120 and
-mfix-vr4130/-mno-fix-vr4130.
* doc/c-mips.texi (MIPS Opts): Correct -no-mfix-vr4120 to
-mno-fix-vr4120 and -no-mfix-vr4130 to -mno-fix-vr4130.