* breakpoint.c (breakpoint_hit_catch_fork)
(breakpoint_hit_catch_vfork, breakpoint_hit_catch_syscall)
(breakpoint_hit_catch_exec): Make use of the `ws' argument.
* infrun.c (inferior_has_forked, inferior_has_vforked)
(inferior_has_execd, inferior_has_called_syscall): Delete.
(handle_syscall_event): Get syscall_number from the execution
control state's wait status.
(wait_for_inferior): Don't clear syscall_number.
Code cleanup.
* cli/cli-cmds.c (source_script_from_stream): Never fclose STREAM.
Update the function comment for it.
(source_script_with_search): Call make_cleanup_fclose for STREAM.
* cli/cli-script.c (script_from_file): Do not call make_cleanup_fclose
for STREAM.
* breakpoint.c (bpstat_stop_status): Moving clearing print_it
outside `bs->stop' block.
(bpstat_what): Rework bp_shlib_event handling.
(internal_bkpt_check_status): If the breakpoint is a
bp_shlib_event, then set bs->stop and bs->print if
stop_on_solib_events is set.
* remote.c (remote_add_inferior): New `fake_pid_p' parameter. Use
it.
(remote_notice_new_inferior): If the remote end doesn't support
the multiprocess extensions, then the PID is fake.
(add_current_inferior_and_thread): New.
(remote_start_remote): Use it.
(extended_remote_attach_1): Adjust.
(extended_remote_create_inferior_1): Use
add_current_inferior_and_thread.
Fix watchpoints to be specific for each inferior.
* breakpoint.c (watchpoint_in_thread_scope): Verify also
current_program_space.
* i386-nat.c (i386_inferior_data_cleanup): New.
(i386_inferior_data_get): Replace variable inf_data_local by an
inferior_data call.
(i386_use_watchpoints): Initialize i386_inferior_data.
* linux-nat.c (linux_nat_iterate_watchpoint_lwps): Use INFERIOR_PTID
specific iterate_over_lwps.
gdb/testsuite/
Fix watchpoints to be specific for each inferior.
* gdb.multi/watchpoint-multi.c: New file.
* gdb.multi/watchpoint-multi.exp: New file.
Fix watchpoints across inferior fork.
* amd64-linux-nat.c (update_debug_registers_callback): Update the
comment for linux_nat_iterate_watchpoint_lwps.
(amd64_linux_dr_set_control, amd64_linux_dr_set_addr): Use
linux_nat_iterate_watchpoint_lwps.
(amd64_linux_prepare_to_resume): New comment on Linux kernel.
* i386-linux-nat.c (update_debug_registers_callback): Update the
comment for linux_nat_iterate_watchpoint_lwps.
(i386_linux_dr_set_control, i386_linux_dr_set_addr): Use
linux_nat_iterate_watchpoint_lwps.
(i386_linux_prepare_to_resume): New comment on Linux kernel.
* i386-nat.c: Include inferior.h.
(dr_mirror): Remove.
(i386_inferior_data, struct i386_inferior_data)
(i386_inferior_data_get): New.
(i386_debug_reg_state): Use i386_inferior_data_get.
(i386_cleanup_dregs, i386_update_inferior_debug_regs)
(i386_insert_watchpoint, i386_remove_watchpoint)
(i386_stopped_data_address, i386_insert_hw_breakpoint)
(i386_remove_hw_breakpoint): New variable state, use
i386_debug_reg_state instead of DR_MIRROR.
* linux-nat.c (delete_lwp): New declaration.
(num_lwps): Move here from downwards.
(delete_lwp_cleanup): New.
(linux_child_follow_fork): Create new child_lp, call
linux_nat_new_thread and linux_nat_prepare_to_resume before calling
PTRACE_DETACH.
(num_lwps): Move upwards.
(linux_nat_iterate_watchpoint_lwps): New.
* linux-nat.h (linux_nat_iterate_watchpoint_lwps_ftype): New.
(linux_nat_iterate_watchpoint_lwps_ftype): New declaration.
gdb/testsuite/
Fix watchpoints across inferior fork.
* gdb.threads/watchpoint-fork-child.c: New file.
* gdb.threads/watchpoint-fork-mt.c: New file.
* gdb.threads/watchpoint-fork-parent.c: New file.
* gdb.threads/watchpoint-fork-st.c: New file.
* gdb.threads/watchpoint-fork.exp: New file.
* gdb.threads/watchpoint-fork.h: New file.
* config/te-nacl.h: New file.
* config/tc-i386.h [TE_NACL] (ELF_TARGET_FORMAT): Define for this case.
* config/tc-i386.c [TE_NACL] (i386_comment_chars, PREFIX_SEPARATOR):
Use TE_GNU et al case for TE_NACL too.
2012-01-23 Pedro Alves <palves@redhat.com>
* top.c (caution): Update comment.
(execute_command): Don't consider the current value of `caution'.
gdb/testsuite/
2012-01-23 Pedro Alves <palves@redhat.com>
* gdb.base/call-signal-resume.exp: Allow output after "return".
* archive.c (_bfd_ar_sizepad): New function. Correctly install and
pad the size field in an archive header.
(_bfd_generic_read_ar_hdr_mag): Use the correct type and scan
function for the archive size field.
(bfd_generic_openr_next_archived_file): Likewise.
(do_slurp_coff_armap): Likewise.
(_bfd_write_archive_contents): Likewise.
(_bfd_bsd44_write_ar_hdr): Use the new function.
(bfd_ar_hdr_from_filesystem): Likewise.
(_bfd_write_archive_contents): Likewise.
(bsd_write_armap): Likewise.
(coff_write_armap): Likewise.
* archive64.c (bfd_elf64_archive_write_armap): Likewise.
* bfdio.c (bfd_bread): Use correct type for archive element
sizes.
* ar.c (open_inarch): Likewise.
(extract_file): Likewise.
* libbfd-in.h (struct areltdata): Use correct types for
parsed_size and extra_size fields.
Prototype _bfd_ar_sizepad function.
* libbfd.h: Regenerate.
* od-macho.c (OPT_SEG_SPLIT_INFO): New macro.
(options): Add an entry for seg_split_info.
(mach_o_help): Document it.
(dump_segment_split_info): New function.
(dump_load_command): Handle seg_split_info.
* gdbarch.c, gdbarch.h: Regenerate.
* gcore.c (gcore_memory_sections): Try gdbarch find_memory_regions
callback before falling back to target method.
* linux-nat.c (read_mapping, linux_nat_find_memory_regions): Remove.
(linux_target_install_ops): No longer install it.
* linux-tdep.c (linux_find_memory_regions): New function.
(linux_init_abi): Install it.
* gdbarch.c, gdbarch.h: Regenerate.
* infcmd.c (info_proc_cmd_1): Try gdbarch info_proc callback
before falling back to the target info_proc callback.
* linux-nat.c: Do not include "cli/cli-utils.h".
(linux_nat_info_proc): Remove.
(linux_target_install_ops): No longer install it.
* linux-tdep.c: Include "cli/cli-utils.h" and <ctype.h>.
(read_mapping): New function.
(linux_info_proc): Likewise.
(linux_init_abi): Install it.
Ulrich Weigand <ulrich.weigand@linaro.org>
ChangeLog:
* remote.c (remote_multi_process_p): Only check for multi-process
protocol feature, do not check for extended protocol.
(remote_supports_multi_process): Check for extended protocol here.
(set_general_process): Likewise.
(extended_remote_kill): Likewise.
(remote_pid_to_str): Likewise.
(remote_query_supported): Always query multiprocess mode.
gdbserver/ChangeLog:
* server.c (handle_v_requests): Only support vAttach and vRun to
start multiple processes when in extended protocol mode.
Ulrich Weigand <ulrich.weigand@linaro.org>
* inferior.h (struct inferior): Add fake_pid_p.
* inferior.c (exit_inferior_1): Clear fake_pid_p.
* remote.c (remote_start_remote): Set fake_pid_p if we have to use
magic_null_ptid since the remote side doesn't provide a real PID.
2012-01-22 H.J. Lu <hongjiu.lu@intel.com>
* x86_64.cc (gc_process_relocs): Add typename on types used in
template.
(scan_relocs): Likewise.
(relocate_section): Likewise.
(apply_relocation): Likewise.
* linux-nat.c (linux_nat_close): Call linux_nat_is_async_p and
linux_nat_async directly instead of going through the target
vector.
* target.c (unpush_target): Close target after unpushing it, not
before.