Tom Tromey [Thu, 25 Jul 2013 14:34:51 +0000 (14:34 +0000)]
remove pop_target
This patch fixes the target double-close problem (PR remote/15266),
and in the process removes pop_target entire (PR remote/15256).
The first issue is that pop_target calls target_close. However, it
then calls unpush_target, which also calls target_close. This means
targets must be able to be closed twice. Not only is this strange,
but it also directly contradicts the contract of to_xclose targets.
(We currently have just a single such target, and it is never pushed;
but I plan to add more, and so this latent bug is triggered.)
The second issue is that it seems to me that calling pop_target is
often unsafe. This is what cropped up in 15256, where the remote
target assumed that it could pop_target -- but there was another
target higher on the stack, leading to confusion.
But, it is always just as easy to call unpush_target as it is to call
pop_target; and it is also safer. So, removing pop_target seemed like
an improvement.
Finally, this adds an assertion to target_close to ensure that no
currently-pushed target can be closed.
Built and regtested on x86-64 Fedora 18; both natively and using the
native-gdbserver board file.
PR remote/15256, PR remote/15266:
* bfd-target.c (target_bfd_reopen): Initialize to_magic.
* monitor.c (monitor_detach): Use unpush_target.
* remote-m32r-sdi.c (m32r_detach): Use unpush_target.
* remote-mips.c (mips_detach): Use unpush_target. Don't
call mips_close.
* remote-sim.c (gdbsim_detach): Use unpush_target.
* target.c (pop_target): Remove.
(pop_all_targets_above): Don't call target_close.
(target_close): Assert that the target is unpushed.
* target.h (pop_target): Don't declare.
* tracepoint.c (tfile_open): Use unpush_target.
Tom Tromey [Thu, 25 Jul 2013 14:28:15 +0000 (14:28 +0000)]
don't call add_target for thread_db_ops
Right now, "help target" will include this line:
target multi-thread -- Threads and pthreads support
However, it doesn't make sense to invoke "target multi-thread".
This patch fixes the problem by not registering the multi-thread
target. add_target does some needed initialization of the target_ops,
so I broke this out into a new function.
It isn't clear to me whether this patch requires a test case or not.
I'm not sure whether there are other unregistered targets; but if
there are, it seems unlikely that we test for their absence from the
help.
Mark Kettenis [Thu, 25 Jul 2013 12:10:44 +0000 (12:10 +0000)]
2013-07-25 Mark Kettenis <kettenis@gnu.org>
* hppa-tdep.h (enum hppa_regnum): Add members for all space registers.
* hppaobsd-tdep.c (HPPAOBSD_SIZEOF_GREGS): Add comment.
(HPPANBSD_SIZEOF_GREGS): New define.
(hppaobsd_supply_gregset): Handle additional registers.
* hppabsd-nat.c (hppabsd_gregset_supplies_p): Adjust to indicate
we provide more registers now.
(hppabsd_supply_gregset): Supply additional registers.
(hppabsd_collect_gregset): Collect additional registers.
* mi/mi-main.c (output_register): Make MI 'r' format use standard
'z' format code. Remove error for optimized out values, standard
code will handle these fine.
gdb/testsuite/ChangeLog
* gdb.mi/mi-reg-undefined.exp: New file.
* gdb.mi/mi-reg-undefined.c: Likewise.
* gdb.mi/mi-reg-undefined.S: Likewise.
* NEWS: Mention new 'z' formatter.
* printcmd.c (print_scalar_formatted): Add new 'z' formatter.
(_initialize_printcmd): Mention 'z' formatter in help text of the
'x' command.
gdb/doc/ChangeLog
* gdb.texinfo (Output Formats): Mention the new 'z' formatter.
gdb/testsuite/ChangeLog
* gdb.base/printcmds.exp (test_print_int_arrays): Add tests for x,
z, o, and t output formats.
* gdb.base/display.exp: Use 'k' as an undefined format now that
'z' is defined.
* breakpoint.c (create_longjmp_master_breakpoint): Check if probe
interface can evaluate arguments. Fallback to the old mode if it
cannot.
(create_exception_master_breakpoint): Likewise.
* elfread.c (elf_can_evaluate_probe_arguments): New function.
(struct sym_probe_fns elf_probe_fns): Export function above to the
probe interface.
* probe.c (can_evaluate_probe_arguments): New function.
* probe.h (struct probe_ops) <can_evaluate_probe_arguments>: New
function pointer.
(can_evaluate_probe_arguments): New function prototype.
* solib-svr4.c (svr4_create_solib_event_breakpoints): Check if
probe interface can evaluate arguments. Fallback to the old mode
if it cannot.
* stap-probe.c (stap_get_probe_argument_count): Check if probe
interface can evaluate arguments. Warning the user if it cannot.
(stap_can_evaluate_probe_arguments): New function.
(struct probe_ops stap_probe_ops): Export function above to the
probe interface.
* symfile.h (struct sym_probe_fns) <can_evaluate_probe_arguments>:
New function pointer.
Yao Qi [Wed, 24 Jul 2013 09:17:15 +0000 (09:17 +0000)]
gdb/testsuite/
* gdb.mi/mi-var-cmd.exp: If host is remote, use ${testfile} on
host.
* gdb.mi/mi-basics.exp (test_exec_and_symbol_mi_operatons):
Likewise. If host is remote, copy ${binfile} to host.
Tom Tromey [Mon, 22 Jul 2013 17:58:51 +0000 (17:58 +0000)]
fix init_cutu_and_read_dies
init_cutu_and_read_dies creates an outer cleanup and uses its
immediately nested inner cleanup conditionally. This seems overly
complicated to me; simpler is to just deal with the outer cleanup and
drop the inner one. That is what this patch implements.
* dwarf2read.c (init_cutu_and_read_dies): Remove 'free_cu_cleanup'.
Simplify cleanup handling.
Joel Brobecker [Mon, 22 Jul 2013 15:17:20 +0000 (15:17 +0000)]
src-release: Fix VER computation for TOOL=gdb
Without this patch, the DATE marker in gdb/version.in does not get
replaced by the source packaging date, causing the name of the
tarball being created to: have the DATE marker in the tarball
name and the name of the directory the sources unpack to (Eg:
gdb-7.6.50-DATE-cvs.tar instead of gdb-7.6.50-20130710-cvs.tar).
ChangeLog:
* src-release (VER): Use $(TOOL)/common/create-version.sh
if it exists.
* ppc-linux-nat.c (PPC_DEBUG_FEATURE_DATA_BP_DAWR): New define.
(ppc_linux_region_ok_for_hw_watchpoint): Add checking to use the new
DAWR interface for longer ranges hardware watchpoint (up to 512 bytes).
Roland McGrath [Fri, 19 Jul 2013 23:07:08 +0000 (23:07 +0000)]
gold/
* options.h (General_options): Add -Trodata-segment option.
* parameters.cc (Parameters::check_rodata_segment): New function.
(Parameters::set_target_once): Call it.
* parameters.h (Parameters): Declare it (private member function).
* layout.cc (load_seg_unusable_for_headers): New function, broken
out of Layout::relaxation_loop_body. If TARGET->isolate_execinstr()
then validate rodata segment rather than text segment.
(relaxation_loop_body): Call that.
(is_text_segment): New function. Don't admit a non-executable
segment if TARGET->isolate_execinstr().
(set_segment_offsets): Call it. Honor -Trodata-segment option.
[AArch64, ILP32] Retire -milp32 and -mlp64; use -mabi=ilp32 and -mabi=lp64.
gas/
* config/tc-aarch64.c (enum aarch64_abi_type): New enumeration tag.
(AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
(aarch64_abi): New variable.
(ilp32_p): Change to be a macro.
(aarch64_opts): Remove the support for option -milp32 and -mlp64.
(struct aarch64_option_abi_value_table): New struct.
(aarch64_abis): New table.
(aarch64_parse_abi): New function.
(aarch64_long_opts): Add entry for -mabi=.
* doc/as.texinfo (Target AArch64 options): Document -mabi.
* doc/c-aarch64.texi: Likewise.
gas/testsuite/
* gas/aarch64/ilp32-basic.d (#as): Update to use -mabi=ilp32
Nick Clifton [Fri, 19 Jul 2013 10:44:01 +0000 (10:44 +0000)]
PR binutils/15745
* readelf.c (get_unwind_section_word): Whilst searching for a
reloc section associated with an unwind section, check the type as
well as the section number.
Will Newton [Fri, 19 Jul 2013 10:24:34 +0000 (10:24 +0000)]
gdb/testsuite/gdb.base: Enable disp-step-syscall.exp tests for ARM.
disp-step-syscall.exp is not run for ARM targets because ARM syscall
instructions have not been added to the list of possible syscall
instructions. This patch adds ARM syscall instructions to enable
disp-step-syscall.exp tests for ARM targets. Attached patch is tested
on ARMv7 and helps pass all disp-step-syscall.exp tests for ARM
targets.
gdb/testsuite/ChangeLog:
2013-07-19 Omair Javaid <Omair.Javaid@linaro.org>
* gdb.base/disp-step-syscall.exp: Add svc and swi syscall
instructions and enable disp-step-syscall for arm targets.
Will Newton [Fri, 19 Jul 2013 10:01:26 +0000 (10:01 +0000)]
gdb/testsuite/gdb.dwarf2: Replace @ with % for ARM compatability.
The ARM assembler recognises @ symbol as a comment marker and
therefore is unable to assemble some of gdb.dwarf2 testsuite tests.
This patch replaces all occurrences of @ symbol with % sign to allow
tests stay compatible with both ARM and x86 assembly. This patch has
been tested on x86_64 and ARMv7 targets.
gdb/testsuite/ChangeLog:
2013-07-19 Omair Javaid <Omair.Javaid@linaro.org>
* gdb.dwarf2/fission-reread.S: Replace @ sign with % sign to remove
assembler errors on arm.
* gdb.dwarf2/mac-fileno.S: Likewise.
* gdb.dwarf2/member-ptr-forwardref.S: Likewise.
* gdb.dwarf2/pr13961.S: Likewise.
Yao Qi [Thu, 18 Jul 2013 22:38:58 +0000 (22:38 +0000)]
gdb/testsuite/
* lib/gdb.exp (gdb_compile_shlib): Pass the tail name of
$dest to link options if host is remote. Move the
generated file to $dest.a on host if host is remote.
Will Newton [Thu, 18 Jul 2013 15:49:22 +0000 (15:49 +0000)]
gdb/testsuite/gdb.threads: Ensure TLS tests link against pthreads.
On Ubuntu by default the compiler passes --as-needed to ld which
means no DT_NEEDED entry is added for libpthread when building
the TLS tests. This causes the test to fail as libpthread is
required to look up TLS variables. Add calls to pthread_testcancel
to make sure libpthread gets linked.
gdb/testsuite/ChangeLog:
2013-07-18 Will Newton <will.newton@linaro.org>
* gdb.threads/tls-nodebug.c: Call pthread_testcancel
to ensure the test is linked against pthreads.
* gdb.threads/tls-var-main.c: Likewise.
* gdb.threads/tls-shared.c: Likewise.
Nick Clifton [Thu, 18 Jul 2013 12:15:15 +0000 (12:15 +0000)]
* config/rx-defs.h: Add macros for RX100, RX200, RX600, and
RX610.
* config/rx-parse.y: (rx_check_float_support): Add function to
check floating point operation support for target RX100 and
RX200.
* config/tc-rx.c: Add CPU options RX100, RX200, RX600, and RX610.
* doc/c-rx.texi: Add -mcpu option to recognize macros for RX100,
RX200, RX600, and RX610
Nick Clifton [Thu, 18 Jul 2013 11:24:11 +0000 (11:24 +0000)]
* elf32-arm.c (elf32_arm_stub_long_branch_arm_nacl): New variable.
(elf32_arm_stub_long_branch_arm_nacl_pic): New variable.
(arm_build_one_stub): Increase MAXRELOCS to 3.
(arm_type_of_stub): Use them if GLOBALS->nacl_p.
(struct elf32_arm_link_hash_table): Give add_stub_section member's
pointee type a third argument.
(elf32_arm_create_or_find_stub_sec): Update caller.
(elf32_arm_size_stubs): Update argument type.
* bfd-in.h (elf32_arm_size_stubs): Update decl.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* emultempl/armelf.em (elf32_arm_add_stub_section): Take third
argument ALIGNMENT_POWER, use it instead of constant 3.
* ld-arm/farcall-arm-nacl.d: New file.
* ld-arm/farcall-arm-nacl-pic.d: New file.
* ld-arm/farcall-data-nacl.d: New file.
* ld-arm/arm-elf.exp (armeabitests_common): Add extra element to
"action" lists for those cases to use a different dump file for NaCl
targets.
Massage $armeabitests_common to drop the extra element or the one
before it, depending on [istarget "arm*-*-nacl*"].
* ld-arm/arm-elf.exp (armelftests_common): Move all "Cortex-A8
erratum fix", Thumb-only and interworking cases to ...
(armelftests_nonacl): ... here.
(armeabitests_common): Move all "erratum 760522 fix", Thumb-only
and interworking cases to ...
(armeabitests_nonacl): ... here.
Yao Qi [Thu, 18 Jul 2013 05:13:27 +0000 (05:13 +0000)]
gdb/testsuite/
* lib/future.exp (gdb_default_target_compile): Use tail name
of $destfile as the output name of compile. Move the
generated file to $destfile on build.
Yao Qi [Thu, 18 Jul 2013 05:07:25 +0000 (05:07 +0000)]
gdb/testsuite/
* lib/gdb.exp (gdb_compile): Set
gdb_saved_set_unbuffered_mode_obj to
set_unbuffered_mode_saved.o if host is remote. Invoke
remote_download to copy $unbuf_obj to host.
Yao Qi [Thu, 18 Jul 2013 01:45:15 +0000 (01:45 +0000)]
gdb/
* coffread.c (coff_symfile_read): Iterate over minimal symbols,
if the name is prefixed by "__imp_" or "_imp_", look for minimal
symbol without prefix. If found, set its type to
'mst_solib_trampoline'.
* solist.h (target_so_ops.find_and_open_solib): Clarify usage of
temp_pathname argument.
* nto-tdep.c (nto_find_and_open_solib): Fix setting of temp_pathname
when opening the file fails.
Tom Tromey [Tue, 16 Jul 2013 18:49:32 +0000 (18:49 +0000)]
simple test suite fix in gdb.mi
This is another simple test suite change for the parallelization
project.
This changes mi-basics.exp to avoid the use of subdir and objdir and
instead use standard_output_file.
There are still some uses of objdir, but as noted in a new comment in
the patch, these uses are parallel-safe.
* gdb.mi/mi-basics.exp: Use standard_output_file.
(test_dir_specification, test_cwd_specification)
(test_path_specification): Use testsubdir, not subdir and objdir.
* ppc-linux-nat.c: Since the new PowerPC specific ptrace interface is
now available for embedded (BookE) and server (BookS) processors,
correct mentions of 'booke' and adjust comments accordingly in order to
avoid confusion. Rename struct 'booke_debug_info' to 'hwdebug_info'.
(have_ptrace_booke_interface): Rename function and variable
'have_ptrace_booke_interface' to 'have_ptrace_hwdebug_interface'.
Rename struct 'booke_debug_info' to 'hwdebug_info'. Update all uses.
(booke_cmp_hw_point): Rename function 'booke_cmp_hw_point' to
'hwdebug_point_cmp'. Update all uses.
(booke_find_thread_points_by_tid): Rename function
'booke_find_thread_points_by_tid' to
'hwdebug_find_thread_points_by_tid'. Update all uses.
(booke_insert_point): Rename function 'booke_insert_point' to
'hwdebug_insert_point'. Update all uses.
(booke_remove_point): Rename function 'booke_remove_point' to
'hwdebug_remove_point'. Update all uses.
Ali Anwar [Mon, 15 Jul 2013 11:14:32 +0000 (11:14 +0000)]
2013-07-15 Ali Anwar <ali_anwar@codesourcery.com>
PR threads/13217
* thread.c (thread_apply_all_command): Check for valid threads
and thread count.
(thread_array_cleanup): New struct.
(set_thread_refcount): New function.
gas/
* config/tc-mips.c (mips_prefer_vec_regno, mips_parse_register):
New functions, split out from...
(reg_lookup): ...here. Remove itbl support.
(reglist_lookup): Delete.
(mips_operand_token_type): New enum.
(mips_operand_token): New structure.
(mips_operand_tokens): New variable.
(mips_add_token, mips_parse_base_start, mips_parse_argument_token)
(mips_parse_arguments): New functions.
(md_begin): Initialize mips_operand_tokens.
(mips_arg_info): Add a token field. Remove optional_reg field.
(match_char, match_expression): New functions.
(match_const_int): Use match_expression. Remove "s" argument
and return a boolean result. Remove O_register handling.
(match_regno, match_reg, match_reg_range): New functions.
(match_int_operand, match_mapped_int_operand, match_msb_operand)
(match_reg_operand, match_reg_pair_operand, match_perf_reg_operand)
(match_addiusp_operand, match_clo_clz_dest_operand)
(match_lwm_swm_list_operand, match_entry_exit_operand)
(match_save_restore_list_operand, match_mdmx_imm_reg_operand)
(match_tied_reg_operand): Remove "s" argument and return a boolean
result. Match tokens rather than text. Update calls to
match_const_int. Rely on match_regno to call check_regno.
(match_pcrel_operand, match_pc_operand): Replace "s" argument with
"arg" argument. Return a boolean result.
(parse_float_constant): Replace with...
(match_float_constant): ...this new function.
(match_operand): Remove "s" argument and return a boolean result.
Update calls to subfunctions.
(mips_ip, mips16_ip): Call mips_parse_arguments. Use match routines
rather than string-parsing routines. Update handling of optional
registers for token scheme.
gas/testsuite/
* gas/mips/vr5400-ill.s, gas/mips/vr5400-ill.l: Add some more cases.
* gas/mips/micromips-ill.s, gas/mips/micromips-ill.l: New test.
* gas/mips/mips.exp: Run it.