Stan Shebs [Wed, 6 Jan 2010 20:31:28 +0000 (20:31 +0000)]
Support disconnected tracing.
* infcmd.c (detach_command): Ask whether to stop tracing.
* cli/cli-cmds.c (quit_command): Ditto.
* breakpoint.h (struct breakpoint): New field number_on_target.
* breakpoint.c (create_tracepoint_from_upload): New function.
(get_tracepoint_by_number_on_target): New function.
* remote.c (struct remote): New field disconnected_tracing.
(remote_disconnected_tracing_feature): New function.
(remote_protocol_features): Add DisconnectedTracing.
(struct uploaded_tp): New struct.
(uploaded_tps): New global.
(get_uploaded_tp): New function.
(find_matching_tracepoint): New function.
(remote_get_tracing_state): New function.
(remote_start_remote): Call it.
* tracepoint.c (disconnected_tracing): New global.
(trace_start_command): Initialize number_on_target.
(stop_tracing): New function, split out from...
(trace_stop_command): Call stop_tracing.
(get_trace_status): New function, split out from...
(trace_status_command): Call get_trace_status, add info on
disconnection behavior.
(disconnect_or_stop_tracing): New function.
(finish_tfind_command): Translate from number on target.
(trace_find_tracepoint_command): Translate to number on target.
(send_disconnected_tracing_value): New function.
(set_disconnected_tracing): New function.
(_initialize_tracepoint): Add disconnected-tracing variable.
* NEWS: Mention disconnected tracing.
* gdb.texinfo (Starting and Stopping Trace Experiments): Document
disconnected tracing.
(Tracepoint Packets): Document new protocol.
* symtab.c (lookup_global_symbol_from_objfile): Rename objfile
parameter to main_objfile. Iterate on all separate debug objfiles.
* symfile.h (symbol_file_add_separate)
(find_separate_debug_file_by_debuglink): Remove parameter names.
* symfile.c (symbol_file_add_separate): Use add_separate_objfile.
(reread_symbols): Use free_objfile_separate_debug.
* objfiles.h (struct objfile): Add separate_debug_objfile_link.
Adjust comment.
(objfile_separate_debug_iterate, add_separate_debug_objfile)
(free_objfile_separate_debug): New prototypes.
* objfiles.c (objfile_separate_debug_iterate): New function.
(add_separate_debug_objfile, free_objfile_separate_debug): New
functions.
(free_objfile): Use free_objfile_separate_debug. Adjust for
multiple separate debug objfile.
(objfile_has_symbols): Adjust comment. Iterate on all separate
debug objfiles.
* minsyms.c (lookup_minimal_symbol): Adjust for multiple separate
debug objfile.
(lookup_minimal_symbol_text): Ditto.
(lookup_minimal_symbol_by_pc_name): Ditto.
(lookup_minimal_symbol_solib_trampoline): Ditto.
(lookup_minimal_symbol_by_pc_section_1): Iterate on all separate
debug objfiles.
* options.h (class General_options): Use DEFINE_bool_alias for
allow_multiple_definition.
* resolve.cc (Symbol_table::should_override): Don't test
allow_multiple_definition.
* symtab.cc (Symbol_table::add_from_object): Rename def parameter
to is_default_version. Rename insdef to insdefault.
(Symbol_table::add_from_relobj): Rename def to is_default_version
and local to is_forced_local.
(Symbol_table::add_from_pluginobj): Likewise.
(Symbol_table::add_from_dynobj): Likewise.
(Symbol_table::define_special_symbol): Rename insdef to
insdefault.
PR 10980
* options.h (class General_options): Add
--allow-multiple-definition and -z muldefs.
* resolve.cc (Symbol_table::should_override): Don't warn about a
multiple symbol definition if --allow-multiple-definition or -z
muldefs.
PR 10980
* options.h (class General_options): Add --add-needed and
--copy-dt-needed-entries. Tweak --as-needed help entry.
* object.cc (Input_objects::check_dynamic_dependencies): Give an
error if --copy-dt-needed-entries aka --add-needed is used and
would cause a change in behaviour.
gas/
* config/tc-arm.c (do_neon_logic): Accept imm value
in the third operand too.
(operand_parse_code): OP_RNDQ_IMVNb renamed to
OP_RNDQ_Ibig.
(parse_operands): OP_NILO case removed, applied renaming.
(insns): Neon shape changed for some logic instructions.
gas/testsuite/
* gas/arm/neon-logic.d: New test case.
* gas/arm/neon-logic.s: New file.
Sriraman Tallam [Mon, 4 Jan 2010 19:08:39 +0000 (19:08 +0000)]
* gc.h (gc_process_relocs): Call is_section_foldable_candidate to
check for .text or .gnu.linkonce.t sections.
* icf.cc (Icf::find_identical_sections): Ditto.
Change the detection for mangled function name within the section
name.
* icf.h (is_section_foldable_candidate): New function.
Ulrich Weigand [Mon, 4 Jan 2010 15:03:01 +0000 (15:03 +0000)]
* features/Makefile (WHICH): Add s390-linux32, s390-linux64,
and s390x-linux64.
(s390-linux32-expedite): Define.
(s390-linux64-expedite): Define.
(s390x-linux64-expedite): Define.
* features/s390-acr.xml: New file.
* features/s390-fpr.xml: New file.
* features/s390-core32.xml: New file.
* features/s390-core64.xml: New file.
* features/s390x-core64.xml: New file.
* features/s390-linux32.xml: New file.
* features/s390-linux64.xml: New file.
* features/s390x-linux64.xml: New file.
* features/s390-linux32.c: New generated file.
* features/s390-linux64.c: New generated file.
* features/s390x-linux64.c: New generated file.
* regformats/s390-linux32.dat: New generated file.
* regformats/s390-linux64.dat: New generated file.
* regformats/s390x-linux64.dat: New generated file.
* regformats/reg-s390.dat: Remove.
* regformats/reg-s390x.dat: Remove.
* s390-nat.c: Include "auxv.h" and <elf.h>.
(HWCAP_S390_HIGH_GPRS): Define if undefined.
(s390_target_wordsize): New function.
(s390_auxv_parse): Likewise.
(s390_get_hwcap): Likewise.
(s390_read_description): Likewise.
(_initialize_s390_nat): Install s390_auxv_parse and
s390_read_description.
* s390-tdep.c: Include "features/s390-linux32.c",
"features/s390-linux64.c", and "features/s390x-linux64.c".
(struct gdbarch_tdep): Add gpr_full_regnum, pc_regnum, and cc_regnum.
(s390_register_call_saved): New function.
(s390_register_name): Remove.
(s390_register_type): Remove.
(s390_dwarf_regmap): Add lower half GPR pseudo DWARF CFI regnums.
(s390_dwarf_reg_to_regnum): Remap GPR regnums to full GPRs.
(s390_adjust_frame_regnum): Remap GPR regnums to lower halves for CFI.
(s390_pseudo_register_name): New function.
(s390_pseudo_register_type): New function.
(s390_pseudo_register_read): Handle both 32-bit and 64-bit cases.
Handle full GPR pesudos and varying pseudo register numbers.
(s390_pseudo_register_write): Likewise
(s390x_pseudo_register_read): Remove.
(s390x_pseudo_register_write): Likewise.
(s390_register_group): Remove.
(s390_pseudo_register_group): New function.
(s390_regmap_gregset): Add GPR upper halves.
(s390x_regmap_gregset): Likewise.
(s390_regmap_fpregset): Likewise.
(s390_regmap_upper): New global variable.
(s390_upper_regset): New global variable.
(s390_upper_regset_sections): New global variable.
(s390_regset_from_core_section): Handle GPR upper halves.
(s390_core_read_description): New function.
(s390_prologue_frame_unwind_cache): Set up ABI call-saved/clobbered
register information. Handle varying pseudo register numbers.
(s390_backchain_frame_unwind_cache): Likewise.
(s390_frame_prev_register): Unwind full GPRs to show lower halves.
(s390_stub_frame_unwind_cache): Handle varying pseudo register numbers.
(s390_sigtramp_frame_unwind_cache): Unwind PSWM and PSWA as well as
PC and CC pseudos. Unwind upper halves and full GPRs as appropriate.
Handle varying pseudo register numbers.
(s390_unwind_pc): Handle varying pseudo register numbers.
(s390_dwarf2_prev_register): New function.
(s390_dwarf2_frame_init_reg): Set up ABI call-saved/clobbered
register information. Handle varying pseudo register numbers.
Install s390_dwarf2_prev_register to unwind full GPRs.
(s390_gdbarch_init): Handle target descriptions. Assign varying
pseudo register numbers. Install s390_adjust_frame_regnum.
(_initialize_s390_tdep): Initialize target descriptions.
Joel Brobecker [Mon, 4 Jan 2010 11:44:30 +0000 (11:44 +0000)]
Fix -Wshadow warnings in dwarf2.c (seen on alpha-tru64).
* dwarf2.c (concat_filename): Rename dirname with dir_name
to void shadowing the dirname function.
Rename subdirname with subdir_name to stay consistent with
the new dir_name variable name.
Jan Kratochvil [Sun, 3 Jan 2010 18:55:32 +0000 (18:55 +0000)]
gdb/
* gdbtypes.c (check_typedef): New comment on type length.
* value.c (allocate_value_lazy): Remove the unused atype variable. New
comment on type length.
(value_primitive_field): Keep the original TYPE value, new comment.
gdb/testsuite/
* gdb.mi/var-cmd.c (do_bitfield_tests): Change "V.sharable" type to
"uint_for_mi_testing".
Joel Brobecker [Fri, 1 Jan 2010 07:54:37 +0000 (07:54 +0000)]
Update copyright years in all relevant texinfo documents.
* agentexpr.texi: Add 2010 to the list of copyright years.
* annotate.texinfo: Likewise.
* gdb.texinfo: Likewise.
* gdbint.texinfo: Likewise.
* observer.texi: Likewise.
* stabs.texinfo: Likewise.
Nick Clifton [Thu, 31 Dec 2009 14:10:29 +0000 (14:10 +0000)]
* dwarf2.c (struct line_sequence): New struct.
(struct line_info_table): Add num_sequences, remove last_line,
add sequences.
(add_line_info): Add new sequences as necessary.
(compare_sequences): New function.
(sort_line_sequences): New function.
(decode_line_info): Initialize new fields in line table.
Call sort_line_sequences.
(lookup_address_in_line_info_table): Binary search for proper
sequence.
Ian Lance Taylor [Thu, 31 Dec 2009 05:07:22 +0000 (05:07 +0000)]
PR 10979
* common.cc (Sort_commons::operator()): Stabilize sort when both
entries are NULL.
(Symbol_table::do_allocate_commons_list): When allocating common
symbols, skip a symbol which is no longer common.
* symtab.h (Symbol::is_common): Test whether the symbol comes from
an object before checking its type.
* testsuite/common_test_2.c: New file.
* testsuite/common_test_3.c: New file.
* testsuite/Makefile.am (check_PROGRAMS): Add common_test_2.
(common_test_2_SOURCES, common_test_2_DEPENDENCIES): Define.
(common_test_2_LDFLAGS, common_test_2_LDADD): Define.
(common_test_2_pic.o, common_test_2.so): New targets.
(common_test_3_pic.o, common_test_3.so): New targets.
* testsuite/Makefile.in: Rebuild.
Ian Lance Taylor [Thu, 31 Dec 2009 03:48:46 +0000 (03:48 +0000)]
PR 10979
* script.cc (read_input_script): If we see a new SECTIONS clause,
and we have added an input section, give an error.
* layout.h (class Layout): Add have_added_input_section function.
Add have_added_input_section_ field.
* layout.cc (Layout::Layout): Initialize
have_added_input_section_.
(Layout::layout): Set have_added_input_section_.
(Layout::layout_eh_frame): Likewise.
Ian Lance Taylor [Thu, 31 Dec 2009 01:14:34 +0000 (01:14 +0000)]
PR 10916
* symtab.cc (Symbol_table::add_from_relobj): When not exporting
symbols from this object, don't change the visibility of an
undefined symbol.
* testsuite/exclude_libs_test_1.c (lib1_ref): New function.
Ian Lance Taylor [Wed, 30 Dec 2009 22:35:49 +0000 (22:35 +0000)]
PR 10861
* script.h (class Version_script_info): Define Language enum.
Update declarations. Define Glob, Exact, and Lookup types. Add
new fields globals_, locals_, and is_finalized_.
* script.cc: Various formatting fixes.
(class Parser_closure): Change language_stack_ from a vector of
std::string to one of Version_script_info::Language. Adjust all
uses accordingly.
(class Lazy_demangler): Remove.
(struct Version_expression): Change language from std::string to
Version_script_info::Language.
(Version_script_info::Version_script_info): New function.
(Version_script_info::~Version_script_info): Don't call clear.
(Version_script_info::finalize): New function.
(Version_script_info::build_lookup_tables): New function.
(Version_script_info::build_expression_list_lookup): New
function.
(Version_script_info::get_symbol_version_helper): Rewrite to use
lookup tables.
(Version_script_info::print_expression_list): Adjust to use
Version_script_info::Language.
(script_push_lex_into_version_mode): Check that the version script
has not been finalized.
(version_script_push_lang): Change language string to
Version_script_info::Language.
* options.cc (Command_line::version_script): New function.
* options.h (class General_options): Add finalize_dynamic_list
function. Change version_script from declaration to definition.
* testsuite/ver_test_4.script: Remove duplicate def of t2_2.
* testsuite/version_script.map: Remove duplicate def of foo.
* testsuite/Makefile.am (ver_matching_def.so): Depend upon
version_script.map.
* testsuite/Makefile.in: Rebuild.
Ian Lance Taylor [Wed, 30 Dec 2009 20:23:29 +0000 (20:23 +0000)]
PR 10670
* options.h (class General_options): Add -x/--discard-all.
* object.cc (Sized_relobj::do_count_local_symbols): Handle
--discard-all. If the local symbol needs a dynamic entry, check
that before handling --discard-locals.
Ian Lance Taylor [Wed, 30 Dec 2009 19:29:20 +0000 (19:29 +0000)]
PR 10450
* output.cc (Output_segment::Output_segment): If PT_TLS, set the
flags to PF_R.
(Output_segment::add_output_section): Don't change the flags if
the type is PT_TLS.
gdb/
* valarith.c (value_equal_contents): New function.
* value.h (value_equal_contents): Declare.
* breakpoint.c (watchpoint_check): Use value_equal_contents
instead of value_equal.
gdb/testsuite/
* gdb.base/watchpoint.exp (test_watchpoint_in_big_blob): New function.
(top level): Call test_watchpoint_in_big_blob.
* gdb.base/watchpoint.c (buf): Change size to value too big for hardware
watchpoints.
(func3): Write to buf.
Stan Shebs [Wed, 30 Dec 2009 16:11:08 +0000 (16:11 +0000)]
Add default-collect variable.
* tracepoint.c (default_collect): New global.
(encode_actions): Use it.
(download_tracepoint): Test it, for otherwise
action-less tracepoints.
(_initialize_tracepoint): Add set/show.
* NEWS: Mention default-collect.
Ian Lance Taylor [Wed, 30 Dec 2009 08:29:37 +0000 (08:29 +0000)]
PR 10450
* dynobj.cc (Dynobj::create_gnu_hash_table): Add symbols to the
GNU hash table if they need a dynamic value. Otherwise, don't add
them if they are defined in a dynamic object or are forced local.