+2009-02-07 Pedro Alves <pedro@codesourcery.com>
+
+ * NEWS: Mention inspecting extra signal information, $_siginfo,
+ and the qXfer:siginfo:read and qXfer:siginfo:write packets.
+
+2009-02-07 Pedro Alves <pedro@codesourcery.com>
+
+ * linux-nat.c (PTRACE_SETSIGINFO): Define if PTRACE_GETSIGINFO
+ isn't defined.
+
+2009-02-06 Pedro Alves <pedro@codesourcery.com>
+
+ * amd64-linux-nat.c (compat_int_t, compat_uptr_t, compat_time_t)
+ (compat_timer_t, compat_clock_t, struct compat_timeval)
+ (compat_sigval_t, compat_siginfo_t): New types.
+ (cpt_si_pid, cpt_si_uid, cpt_si_timerid, cpt_si_overrun)
+ (cpt_si_status, cpt_si_utime, cpt_si_stime, cpt_si_ptr)
+ (cpt_si_addr, cpt_si_band, cpt_si_fd): New defines.
+ (compat_siginfo_from_siginfo, siginfo_from_compat_siginfo)
+ (amd64_linux_siginfo_fixup): New.
+ * linux-nat.c (linux_nat_siginfo_fixup): New.
+ (siginfo_fixup): New.
+ (linux_xfer_siginfo): Use siginfo_fixup to convert between the
+ siginfo layout expected by ptrace and the siginfo layout of the
+ inferior.
+ (linux_nat_set_siginfo_fixup): New.
+ * linux-nat.h (linux_nat_set_siginfo_fixup): Declare.
+
+2009-02-06 Pedro Alves <pedro@codesourcery.com>
+
+ * target.h (enum target_object): Add new TARGET_OBJECT_SIGNAL_INFO.
+ * infrun.c (siginfo_value_read, siginfo_value_write): New.
+ (siginfo_value_funcs): New.
+ (siginfo_make_value): New.
+ (_initialize_infrun): Create the $_siginfo convenience variable.
+ * gdbtypes.h (append_composite_type_field_aligned): Declare.
+ * gdbtypes.c (append_composite_type_field): Rename to...
+ (append_composite_type_field_aligned): ... this. Add ALIGNMENT
+ argument. Handle it.
+ (append_composite_type_field): Rewrite on top of
+ append_composite_type_field_aligned.
+ * value.h (internalvar_make_value): New typedef.
+ (struct internalvar) <make_value>: New field.
+ (create_internalvar_type_lazy): Declare.
+ * value.c (create_internalvar): Clear make_value.
+ (create_internalvar_type_lazy): New.
+ (value_of_internalvar): If make_value is set use it.
+ (preserve_values): Skip internal variables that don't have a
+ value.
+ * gdbarch.sh (get_siginfo_type): New.
+ * gdbarch.h, gdbarch.c: Regenerate.
+
+ * linux-tdep.h, linux-tdep.c: New.
+ * amd64-linux-tdep.c: Include "linux-tdep.h".
+ (amd64_linux_init_abi): Register linux_get_siginfo_type and
+ linux_get_siginfo_mapper.
+ * i386-linux-tdep.c: Include "linux-tdep.h".
+ (i386_linux_init_abi): Register linux_get_siginfo_type and
+ linux_get_siginfo_mapper.
+ * arm-linux-tdep.c: Include "linux-tdep.h".
+ (i386_linux_init_abi): Register linux_get_siginfo_type and
+ linux_get_siginfo_mapper.
+
+ * linux-nat.c (linux_xfer_siginfo): New.
+ (linux_nat_xfer_partial): Handle TARGET_OBJECT_SIGNAL_INFO.
+ * remote.c (PACKET_qXfer_siginfo_read)
+ (PACKET_qXfer_siginfo_write): New.
+ (feature remote_protocol_features): Add "qXfer:siginfo:read" and
+ "qXfer:siginfo:write" features.
+ (remote_xfer_partial): Handle TARGET_OBJECT_SIGNAL_INFO.
+ (_initialize_remote): Add "set/show remote read-siginfo-object"
+ and "set/show remote write-siginfo-object" commands.
+
+ * Makefile.in (ALL_TARGET_OBS): Add linux-tdep.o.
+ (HFILES_NO_SRCDIR): Add linux-tdep.h.
+ (ALLDEPFILES): Add linux-tdep.c.
+
+ * configure.tgt (arm*-*-linux* | arm*-*-uclinux*)
+ (i[34567]86-*-linux*, x86_64-*-linux*): Add linux-tdep.o to
+ gdb_target_obs.
+
+2009-02-06 Jim Blandy <jimb@codesourcery.com>
+ Daniel Jacobowitz <dan@codesourcery.com>
+ Vladimir Prus <vladimir@codesourcery.com>
+ Pedro Alves <pedro@codesourcery.com>
+
+ * defs.h (enum lval_type): New value: lval_computed.
+ * value.h (struct lval_funcs): New type.
+ (allocate_computed_value, value_computed_funcs)
+ (value_computed_closure): New declarations.
+ * value.c (struct value): Add a structure to the location union
+ for computed lvalues, containing 'funcs' and 'closure' members.
+ (allocate_computed_value, value_computed_funcs)
+ (value_computed_closure): New functions.
+ (value_free): For computed lvalues, call the closure's
+ 'free_closure' function before freeing the value itself.
+ (value_copy): If we're copying an lval_computed value, call the
+ closure's 'copy_closure' function.
+ (set_value_component_location): If the original value is a
+ computed lvalue, then call the closure's 'copy_closure' function.
+ (value_of_internalvar): If an internal variable's value is a
+ computed lvalue, make retrieving its value produce an equivalent
+ computed lvalue.
+ * valops.c (value_fetch_lazy): Unlazy computed lvalues by calling
+ their read function.
+ (value_assign): Assign to computed lvalues by calling their write
+ function.
+
+2009-02-06 Pedro Alves <pedro@codesourcery.com>
+
+ * linux-nat.c (linux_nat_wait): Adjust.
+ (linux_nat_pid_to_str): Adjust. Remove call to thread_db_init.
+ * linux-nat.h (thread_db_init): Delete declaration.
+ * linux-thread-db.c (target_beneath): Delete.
+ (thread_db_init): Delete.
+ (thread_db_detach): Use find_target_beneath.
+ (thread_db_wait): Adjust interface. Use find_target_beneath.
+ (thread_db_mourn_inferior): Use find_target_beneath.
+ (thread_db_can_async_p, thread_db_is_async_p, thread_db_async)
+ (thread_db_async_mask): Delete.
+ (thread_db_pid_to_str): Adjust interface. Use
+ find_target_beneath.
+ (thread_db_get_thread_local_address): Adjust interface. Use
+ find_target_beneath.
+ (init_thread_db_ops): Delete references to delete functions.
+ * target.c (update_current_target): Don't inherit or default
+ to_wait. Don't inherit to_pid_to_str and
+ to_get_thread_local_address.
+ (target_translate_tls_address): Look for a pushed target that
+ implements to_get_thread_local_address, and use it instead of
+ checking for target_get_thread_local_address_p.
+ (target_wait, target_pid_to_str): Reimplement as functions.
+ (dummy_pid_to_str): New.
+ (init_dummy_target): Register it.
+ (debug_to_wait): Delete.
+ * target.h (struct target_ops): Make to_wait, to_pid_to_str and
+ to_get_thread_local_address accept a pointer to struct target_ops.
+ (target_wait): Delete macro, and declare as function.
+ (target_pid_to_str): Likewise.
+ (target_get_thread_local_address)
+ (target_get_thread_local_address_p): Delete.
+ (noprocess): Add NORETURN and ATTR_NORETURN tags.
+ * inf-ptrace.c (inf_ptrace_wait): Adjust.
+ (inf_ptrace_pid_to_str): New.
+ (inf_ptrace_target): Use inf_ptrace_pid_to_str.
+ * aix-thread.c (aix_thread_wait, aix_thread_pid_to_str): Adjust.
+ * bsd-kvm.c (bsd_kvm_pid_to_str): Adjust.
+ * bsd-uthread.c (bsd_uthread_wait, bsd_uthread_pid_to_str):
+ Adjust.
+ * corelow.c (core_pid_to_str): Adjust.
+ * darwin-nat.c (darwin_wait, darwin_pid_to_str): Adjust.
+ * dec-thread.c (dec_thread_wait, dec_thread_pid_to_str): Adjust.
+ * gnu-nat.c (gnu_wait, gnu_pid_to_str): Adjust.
+ * go32-nat.c (go32_wait, go32_pid_to_str): Adjust.
+ * hpux-thread.c (hpux_thread_wait): Adjust.
+ * inf-ttrace.c (inf_ttrace_wait, inf_ttrace_pid_to_str): Adjust.
+ * monitor.c (monitor_wait, monitor_pid_to_str): Adjust.
+ * nto-procfs.c (procfs_wait, procfs_pid_to_str): Adjust.
+ * procfs.c (procfs_pid_to_str): Adjust.
+ * remote-m32r-sdi.c (m32r_wait, m32r_pid_to_str): Adjust.
+ * remote-mips.c (mips_wait): Adjust.
+ * remote-sim.c (gdbsim_wait, gdbsim_pid_to_str): Adjust.
+ * remote.c (remote_wait, remote_pid_to_str)
+ (remote_get_thread_local_address): Adjust.
+ * rs6000-nat.c (rs6000_wait): Adjust.
+ * sol-thread.c (procfs_pid_to_str): Adjust declaration.
+ (sol_thread_wait, solaris_pid_to_str): Adjust.
+ * spu-linux-nat.c (spu_child_wait): Adjust.
+ * windows-nat.c (windows_wait, windows_pid_to_str): Adjust.
+
2009-02-06 Tom Tromey <tromey@redhat.com>
* Makefile.in (SUBDIR_PYTHON_OBS): Add python-cmd.o.