2006-05-19 Fred Fish <fnf@specifix.com>
* Makefile.in: Fix spelling of 'explicitly' and 'explicit'.
* dwarfread.c: Fix spelling of 'unexpected'.
* mips-tdep.c: Fix spelling of 'possible' and 'Determine'.
* stack.c: Fix spelling of 'RETURN_VALUE'.
* 2006-03-22 Jim Blandy <jimb@redhat.com>
Add support for the Renesas M32C and M16C.
* configure.tgt (m32c-*-*): New entry.
* config/m32c/m32c.mt: New file.
* m32c-tdep.c: New file.
* Makefile.in (elf_m32c_h): New variable.
(m32c-tdep.o): New rule.
* NEWS: Mention new target.
* MAINTAINERS: Designate Jim Blandy as responsible maintainer.
frame sniffer.
* sparc-tdep.c (sparc32_gdbarch_init): Make sure to call
dwarf2_frame_set_init_reg() before gdbarch_init_osabi() so
that the latter can override.
* Makefile.in (sparc64-linux-tdep.o): Update dependencies.
(sparc32_linux_init_abi): Hook it into tdep->step_trap.
* sparc64-linux-tdep.c (sparc64_linux_step_trap): New.
(sparc64_linux_init_abi): Hook it into tdep->step_trap.
* Makefile.in: Update dependencies.
(check_for_thread_db): New function, split out from
thread_db_new_objfile. Remove dead check for active
thread_db on inapplicable targets.
(thread_db_new_objfile): Call check_for_thread_db.
* Makefile.in (linux-thread-db.o): Update.
* linux-nat.c (child_post_attach): Call check_for_thread_db.
(linux_child_post_startup_inferior): Likewise.
(lin_lwp_attach_lwp): Call target_post_attach instead of
child_post_attach.
* linux-nat.h (check_for_thread_db): New prototype.
2006-03-28 Jim Blandy <jimb@codesourcery.com>
* prologue-value.c, prologue-value.h: New files.
* Makefile.in (prologue_value_h): New variable.
(HFILES_NO_SRCDIR): List prologue-value.h.
(SFILES): List prologue-value.c.
(COMMON_OBS): List prologue-value.o.
(prologue-value.o): New rule.
src/gdb/doc/ChangeLog:
2006-03-28 Jim Blandy <jimb@codesourcery.com>
* gdbint.texinfo (Prologue Analysis): New section.
(fork_load_infrun_state): Set inferior_ptid and stop_pc here.
Update the register cache and selected frame also.
(linux_fork_mourn_inferior): Use fork_load_infrun_state. Return
to single fork mode if necessary.
(linux_fork_context): Remove bits handled by fork_load_infrun_state.
* Makefile.in (linux_fork_h): New.
(linux-fork.o, linux-nat.o): Update.
(mips_linux_init_abi): Use 128-bit long double for N32 and N64.
(mips_n32n64_return_value): Support 128-bit long double.
(print_gp_register_row): Don't print spaces before ignored
or floating point registers.
* symfile.c (generic_load): Use buildargv() and tilde_expand()
to parse file names with quoting, spaces and tildes properly.
(load_command): Quote all special characters before calling
target_load() such that buildargv() doesn't break file names.
(_initialize_symfile): Mention the load offset in the help for
the load command.
* remote-sim.c: Include readline.h.
(gdbsim_load): Use buildargv and tilde_expand() to parse file
names with quoting, spaces and tildes properly.
* target.h (target_load): Comment the parameters better.
* Makefile.in (remote_sim.o): Add readline.h dependency.
testsuite/
* gdb.base/help.exp (help load): Update expected results.
* Makefile.in (gdb_select_h, ser_tcp_h): New.
(ALLDEPFILES): Add ser-mingw.c.
(event-loop.o, inflow.o, mingw-hdep.o, posix-hdep.o, ser-base.o)
(ser-tcp.o, ser-unix.o): Update.
(ser-mingw.o): New rule.
* configure: Regenerated.
* configure.ac: Add ser-mingw.o for mingw32.
* ser-mingw.c: New file.
* event-loop.c: Include "gdb_select.h".
(gdb_select): Remove, moved to mingw-hdep.c and posix-hdep.c.
* ser-base.c: Include "gdb_select.h".
(ser_base_wait_for): Use gdb_select.
* serial.c (serial_for_fd): New function.
(serial_fdopen): Try "terminal" before "hardwire". Initialize
the allocated struct serial.
(serial_wait_handle): New function.
* serial.h (serial_for_fd, serial_wait_handle): New prototypes.
(struct serial_ops) [USE_WIN32API]: Add wait_handle.
* gdb_select.h: New file.
* ser-tcp.c: Include "ser-tcp.h". Remove unused "ser-unix.h" include.
(net_close, net_read_prim, net_write_prim): Make global.
(net_open): Likewise. Pass an exception set to select. Whitespace fix.
Document why we can not use gdb_select.
(_initialize_ser_tcp) [USE_WIN32API]: Do not register TCP support here.
* ser-tcp.h: New file.
* inflow.c (gdb_has_a_terminal): Don't initialize stdin_serial here.
(handle_sigio): Use gdb_select.
(initialize_stdin_serial): New function.
* terminal.h (initialize_stdin_serial): New prototype.
* top.c (gdb_init): Call initialize_stdin_serial.
* mingw-hdep.c (gdb_select): New function, moved from gdb_select in
event-loop.c. Add exception condition support. Use serial_for_fd
and serial_wait_handle. Fix timeout handling.
* posix-hdep.c: Include "gdb_select.h".
(gdb_select): New function.
* remote-st.c (connect_command): Use gdb_select.
* ser-unix.c: Include "gdb_select.h".
(hardwire_send_break, wait_for): Use gdb_select.
(ALLDEPFILES): Add mingw-hdep.c and posix-hdep.c.
* configure.ac: Add gdb_host_obs to CONFIG_OBS. Set gdb_host_obs
to posix-hdep.o by default.
* configure: Regenerated.
* configure.host: Document gdb_host_obs. Add an entry for
i[34567]86-*-mingw32*.
* mingw-hdep.c, posix-hdep.c: New files.
* utils.c (safe_strerror): Remove, moved to posix-hdep.o.
* osabi.c (gdb_osabi_name): Add name of new value GDB_OSABI_AIX.
* rs6000-tdep.h: New file.
* rs6000-tdep.c: Include "rs6000-tdep.h".
(rs6000_gdbarch_init): Remove enabling of software single step.
Will be done in the AIX-specific initialization routine.
* rs6000-aix-tdep.c: New file.
* config/powerpc/aix.mt (TDEPFILES): Add rs6000-aix-tdep.o.
* Makefile.in (rs6000_tdep_h): New variable.
(rs6000-tdep.o): Update dependencies.
(rs6000-aix-tdep.o): New rule.
stricter. Add separate cases for long_arg, ptr_arg, and
long_double_arg.
* utils.c (xstrvprintf): Improve the error message issued
for a bad format string.
* Makefile.in (GDB_WARN_CFLAGS_NO_FORMAT, INTERNAL_CFLAGS_BASE):
New variables.
(gnu-v3-abi.o, monitor.o, procfs.o, linux-thread-db.o): Remove
$(NO_WERROR_CFLAGS).
(printcmd.o): Likewise. Use $(GDB_WARN_CFLAGS_NO_FORMAT) and
enable -Werror.
* sh-tdep.c: Include reggroups.h.
(sh_register_reggroup_p): New function.
(sh_gdbarch_init): Add call to set_gdbarch_register_reggroup_p.
* Makefile.in (sh-tdep.o): Add dependency on reggroups.h.
Checkpoint/Restart for Linux.
* linux-nat.c: Add support for debugging multiple forks.
Add #include for linux-fork.h (interface spec).
(super_mourn_inferior): New function pointer.
(child_mourn_inferior): New function / target method.
(linux_target): Claim to_mourn_inferior method pointer.
(child_follow_fork): Call interface to linux-fork, conditionally
add new fork processes to list of debugged processes.
(kill_inferior): Use interface to linux-fork to kill
multiple processes.
* linux-fork.h: New file.
* linux-fork.c: New file. Support for debugging multiple forks
of the same program. Support for checkpoint and restart commands.
* infrun.c (nullify_last_target_wait_ptid): New function.
* Makefile.in: Add linux-fork.
* config/*/linux.mh: Add linux-fork.
* NEWS: Mention new functionality.
"bsd-uthread.h".
(SPARC64OBSD_UTHREAD_FP_OFFSET, SPARC64OBSD_UTHREAD_PC_OFFSET):
New defines.
(sparc64obsd_supply_uthread, sparc64obsd_collect_uthread): New
functions.
(sparc64obsd_init_abi): Set supply_uthread and collect_uthread.
* Makefile.in (sparc64obsd-tdep.o): Update dependencies.
(amd64obsd_uthread_reg_offset): New variable.
(AMD64OBSD_UTHREAD_RSP_OFFSET): New define.
(amd64obsd_supply_uthread, amd64obsd_collect_uthread): New
functions.
(amd64obsd_init_abi): Set supply_uthread and collect_uthread.
* Makefile.in (amd64obsd-tdep.o): Update dependencies.
floatformat_vax.
(convert_doublest_to_floatformat): Use
floatformat_normalize_byteorder to swap bytes if necessary.
* vax-tdep.c: Include floatformat.h.
(vax_gdbarch_init): Set float_format, double_format,
long_double_format and long_double_bit.
* Makefile.in (vax-tdep.o): Update dependencies.
(alpha-linux-nat.o, sparc-linux-nat.o): New rules.
(amd64-linux-nat.o, arm-linux-nat.o, hppa-linux-nat.o)
(i386-linux-nat.o, ia64-linux-nat.o, linux-nat.o, m32r-linux-nat.o)
(m68klinux-nat.o, mips-linux-nat.o, ppc-linux-nat.o, s390-nat.o)
(sparc64-linux-nat.o): Update dependencies.
* alpha-linux-nat.c, sparc-linux-nat.c: New files.
* amd64-linux-nat.c (amd64_linux_fetch_inferior_registers): Renamed
from fetch_inferior_registers and made static.
(amd64_linux_store_inferior_registers): Renamed from
store_inferior_registers and made static.
(amd64_linux_child_post_start_inferior): Renamed from
child_post_startup_inferior and made static. Call
super_post_startup_inferior.
(super_post_startup_inferior): New.
(_initialize_amd64_linux_nat): Set it. Call linux_target and
add_target.
* arm-linux-nat.c (arm_linux_fetch_inferior_registers): Renamed
from fetch_inferior_registers and made static.
(arm_linux_store_inferior_registers): Renamed from
store_inferior_registers and made static.
(_initialize_arm_linux_nat): Add a prototype. Use linux_target and
add_target.
* hppa-linux-nat.c (hppa_linux_fetch_inferior_registers): Renamed
from fetch_inferior_registers and made static.
(hppa_linux_store_inferior_registers): Renamed from
store_inferior_registers and made static.
(_initialize_hppa_linux_nat): New function.
* i386-linux-nat.c (i386_linux_fetch_inferior_registers): Renamed
from fetch_inferior_registers and made static.
(i386_linux_store_inferior_registers): Renamed from
store_inferior_registers and made static.
(i386_linux_resume): Renamed from child_resume and made static.
(i386_linux_child_post_start_inferior): Renamed from
child_post_startup_inferior and made static. Call
super_post_startup_inferior.
(super_post_startup_inferior): New.
(_initialize_i386_linux_nat): New function.
* i386-nat.c: Remove LINUX_CHILD_POST_STARTUP_INFERIOR #ifndef.
* ia64-linux-nat.c (ia64_linux_xfer_unwind_table): Remove.
(super_xfer_partial): New.
(ia64_linux_xfer_partial): New function. Use it.
(_initialize_ia64_linux_nat): New function.
* ia64-tdep.c (getunwind_table): Revert 2005-06-08 change; use
target_read_partial and document the problem.
* inf-ptrace.c (inf_ptrace_fetch_register): Use
CANNOT_FETCH_REGISTER. Fix some comments.
(inf_ptrace_store_register): Use CANNOT_STORE_REGISTER. Fix some
comments.
* linux-nat.c: Include "inf-ptrace.h" and "auxv.h".
(linux_ops, super_xfer_partial): New variables.
(linux_child_post_startup_inferior): Make static.
(child_post_startup_inferior): Delete.
(linux_nat_attach, linux_nat_detach, resume_callback)
(linux_nat_resume, linux_nat_wait, linux_nat_create_inferior)
(linux_nat_mourn_inferior): Use linux_ops instead of
deprecated_child_ops.
(child_wait): Do not depend on CHILD_WAIT.
(linux_nat_xfer_memory): Remove, replace by ...
(linux_nat_xfer_partial): ... this. Use linux_ops->to_xfer_partial
instead of linux_proc_xfer_memory and child_xfer_memory.
(linux_nat_fetch_registers, linux_nat_store_registers)
(linux_nat_child_post_startup_inferior): New functions.
(init_linux_nat_ops): Use the new functions.
(linux_proc_xfer_memory): Remove, replace by ...
(linux_proc_xfer_partial): ... this. Make static.
(linux_xfer_partial, linux_register_u_offset, linux_target): New
functions.
(_initialize_linux_nat): Do not modify deprecated_child_ops.
* linux-nat.h (linux_proc_xfer_memory): Remove prototype.
(struct mem_attrib, struct target_ops): Remove forward declarations.
(linux_child_post_startup_inferior): Remove prototype.
(linux_target): Add prototype.
* linux-thread-db.c (thread_db_xfer_memory): Remove, replace by ...
(thread_db_xfer_partial): ... this.
(init_thread_db_ops): Set to_xfer_partial instead of
deprecated_xfer_memory.
* m32r-linux-nat.c (m32r_linux_fetch_inferior_registers): Renamed
from fetch_inferior_registers and made static.
(m32r_linux_store_inferior_registers): Renamed from
store_inferior_registers and made static.
(_initialize_m32r_linux_nat): New function.
* m68klinux-nat.c (m68k_linux_fetch_inferior_registers): Renamed
from fetch_inferior_registers and made static.
(m68k_linux_store_inferior_registers): Renamed from
store_inferior_registers and made static.
(old_fetch_inferior_registers, old_store_inferior_registers): Made
static.
(_initialize_m68k_linux_nat): Use linux_target and add_target.
* mips-linux-nat.c (_initialize_mips_linux_nat): New function.
* ppc-linux-nat.c (ppc_linux_fetch_inferior_registers): Renamed
from fetch_inferior_registers and made static.
(ppc_linux_store_inferior_registers): Renamed from
store_inferior_registers and made static.
(_initialize_ppc_linux_nat): New function.
* s390-nat.c (s390_linux_fetch_inferior_registers): Renamed
from fetch_inferior_registers and made static.
(s390_linux_store_inferior_registers): Renamed from
store_inferior_registers and made static.
(_initialize_s390_nat): New function.
* sparc64-linux-nat.c (_initialize_sparc64_linux_nat): Use
linux_target and add_target.
* config/nm-linux.h: Don't include "auxv.h".
(struct target_waitstatus, child_wait, CHILD_WAIT)
(CHILD_PID_TO_EXEC_FILE, CHILD_INSERT_FORK_CATCHPOINT)
(CHILD_INSERT_VFORK_CATCHPOINT, CHILD_INSERT_EXEC_CATCHPOINT)
(CHILD_POST_STARTUP_INFERIOR, CHILD_POST_ATTACH, CHILD_FOLLOW_FORK)
(DEPRECATED_KILL_INFERIOR, NATIVE_XFER_AUXV): Delete.
* config/alpha/alpha-linux.mh (NATDEPFILES): Replace infptrace.o
and inftarg.o with inf-ptrace.o and alpha-linux-nat.o.
* config/sparc/linux.mh (NATDEPFILES): Replace infptrace.o and
inftarg.o with sparc-linux-nat.o.
* config/sparc/linux64.mh (NATDEPFILES): Remove infptrace.o and
inftarg.o.
* config/arm/linux.mh (NATDEPFILES): Replace infptrace.o and
inftarg.o with inf-ptrace.o.
* config/i386/linux.mh (NATDEPFILES): Likewise.
* config/i386/linux64.mh (NATDEPFILES): Likewise.
* config/ia64/linux.mh (NATDEPFILES): Likewise.
* config/m32r/linux.mh (NATDEPFILES): Likewise.
* config/m68k/linux.mh (NATDEPFILES): Likewise.
* config/mips/linux.mh (NATDEPFILES): Likewise.
* config/pa/linux.mh (NATDEPFILES): Likewise.
* config/powerpc/linux.mh (NATDEPFILES): Likewise.
* config/powerpc/ppc64-linux.mh (NATDEPFILES): Likewise.
* config/s390/s390.mh (NATDEPFILES): Likewise.
* config/i386/nm-linux.h (DEPRECATED_CHILD_RESUME): Don't define.
(LINUX_CHILD_POST_STARTUP_INFERIOR): Don't define.
* config/i386/nm-linux64.h (LINUX_CHILD_POST_STARTUP_INFERIOR):
Don't define.
* config/ia64/nm-linux.h: Don't include "target.h".
(NATIVE_XFER_UNWIND_TABLE, ia64_linux_xfer_unwind_table): Remove.
* config/djgpp/fnchange.lst: Add alpha-linux-tdep.c,
alpha-linux-nat.c, sparc-linux-tdep.c, and sparc-linux-nat.c.
include "tramp-frame.h".
(ppcobsd_sigtramp_cache_init): Remove function.
(ppcobsd_sigtramp): Remove variable.
(ppcobsd_page_size, ppcobsd_sigreturn_offset): New variables.
(ppcobsd_sigtramp_p): New function.
(ppcobsd_sigtramp_frame_cache, ppcobsd_sigtramp_frame_this_id)
(ppcobsd_sigtramp_frame_prev_register): New functions.
(ppcobsd_sigtramp_frame_unwind): New variable.
(ppcobsd_sigtramp_frame_sniffer): New function.
(ppcobsd_init_abi): Adjust to register new sigtramp sniffer
instead of the old one.
* Makefile.in (ppcobsd-tdep.o): Update dependencies.
instead of 8.
* m68kbsd-tdep.c: Include "frame.h", "trad-frame.h" and
"tramp-frame.h".
(m68kobsd_sigtramp_cache_init): New function.
(m68kbsd_aout_init_abi): Prepend m68kobsd_sigtramp unwinder.
"value.h" and "elf/common.h".
(hppabsd_supply_gregset): Use `gdb_byte *' for byte buffer.
(hppabsd_find_global_pointer): New function.
(hppabsd_init_abi): Set TDEP->find_global_pointer to
hppabsd_find_global_pointer.
* Makefile.in (hppabsd-tdep.o): Update dependencies.
* Makefile.in (symfile.o): Add $(exec_h).
* exec.h (exec_set_section_address): Add prototype.
* exec.c (exec_set_section_address): New function.
* symfile.c: Include "exec.h".
(struct place_section_arg, place_section): New.
(default_symfile_offsets): Call place_section for each
section of a relocatable file.
gdb/testsuite/
* gdb.base/relocate.c: Add a copyright notice.
(dummy): Remove.
* gdb.base/relocate.exp: Test printing the values of variables
from a relocatable file.
Reorder includes. Don't require FETCH_INFERIOR_REGISTERS to be
defined.
(armnbsd_fetch_registers): Rename from armnbsd_fetch_registers.
Make static.
(armnbsd_store_registers): Rename from armnbsd_store_registers.
Make static.
(_initialize_arm_netbsd_nat): Construct and add target vector.
* Makefile.in (armnbsd-nat.o): Update dependencies.
* config/arm/nbsdaout.mh (NATDEPFILES): Remove infptrace.o and
intarg.o, add inf-ptrace.o.
(NAT_FILE): Set to solib.h.
* config/arm/nbsdelf.mh (NATDEPFILES): Remove infptrace.o and
inftarg.o, add inf-ptrace.o.
(NAT_FILE): Remove.
* Makefile.in: Re-add v850-tdep.o dependencies.
* configure.tgt: Re-add v850.
* v850-tdep.c: Reorder code slightly. Add register number enumerator.
(struct v850_frame_cache): New structure.
(v850_processor_type_table): Remove. Move functionality into
v850_register_name, v850e_register_name and v850_gdbarch_init.
(v850_register_name): New function.
(v850e_register_name): New function.
(struct prologue_info): Remove definition.
(v850_register_type): New function.
(v850_type_is_scalar): New function.
(v850_use_struct_convention): Align to gcc behaviour.
(v850_handle_prepare): Renamed from handle_prepare. Change third
parameter to struct v850_frame_cache *.
(v850_handle_pushm): Renamed from handle_pushm. Change third parameter
to struct v850_frame_cache *.
(v850_is_save_register): New function to evaluate if a register is
caller-save.
(v850_analyze_prologue): Replace v850_scan_prologue. Change to support
new frame code.
(v850_init_extra_frame_info): Remove.
(v850_frame_chain): Remove.
(v850_find_callers_reg): Remove.
(v850_skip_prologue): Make static.
(v850_pop_frame): Remove.
(v850_frame_align): New function.
(v850_push_dummy_call): Replace v850_push_arguments.
(v850_push_return_address): Remove.
(v850_extract_return_value): New function.
(v850_store_return_value): New function.
(v850_return_value): New function.
(v850_frame_saved_pc): Remove.
(v850_breakpoint_from_pc): New function.
(v850_alloc_frame_cache): New function.
(v850_fix_call_dummy): Remove.
(v850_frame_cache): New function.
(v850_target_architecture_hook): Remove.
(v850_frame_prev_register): New function.
(v850_frame_this_id): New function.
(v850_frame_unwind): New structure.
(v850_frame_sniffer): New function.
(v850_unwind_sp): New function.
(v850_unwind_pc): New function.
(v850_unwind_dummy_id): New function.
(v850_frame_base_address): New function.
(v850_frame_base): New structure.
(v850_gdbarch_init): New function.
* config/v850/v850.mt: Undelete. Drop TM_FILE.
* go32-nat.c: Include top.h. Update copyright years.
(init_go32_ops): Override the default value of gdbinit[] with
"gdb.ini".
* cli/cli-cmds.c (init_cli_cmds): Use gdbinit[] instead of a
compile-time literal string GDBINIT_FILENAME.
* top.c (PATH_MAX): Define if not defined.
(gdbinit): Declare with a constant size PATH_MAX.
* config/i386/go32.mh (XM_FILE): Remove.
* config/i386/xm-go32.h: Remove file.
* Makefile.in: Re-add h8300-tdep.o dependencies.
* h8300-tdep.c: Slightly rearrange type definitions and functions.
(struct frame_extra_info): Remove.
(struct h8300_frame_cache): Replace locals with differently defined
uses_fp member.
(h8300_unwind_pc): Simplify.
(h8300_unwind_sp): New function.
(h8300_unwind_dummy_id): Simplify.
(h8300_init_frame_cache): New function.
(h8300_is_argument_spill): Use reworked defines for opcode scanning.
(h8300_skip_prologue): Rewrite.
(h8300_alloc_frame_cache): Remove.
(h8300_analyze_frame_setup): Remove.
(h8300_analyze_register_saves): Remove.
(h8300_analyze_prologue): Rewrite.
(h8300_frame_cache): Use h8300_init_frame_cache instead of
h8300_alloc_frame_cache. Use BINWORD instead of constant 4 to
accomodate 16 bit mode. Fix saved_sp and register offset evaluation.
(h8300_frame_this_id): Correctly calculate this_id using saved stack
pointer instead of base.
(h8300_frame_prev_register): Drop needless braces.
(h8300_frame_base_address): New function.
(h8300_frame_base): New frame_base.
(h8300_push_dummy_call): Return correct CFA value.
(h8300h_extract_return_value): Fix 8 byte value handling.
(h8300_use_struct_convention): New function.
(h8300h_use_struct_convention): New function.
(h8300h_store_return_value): Fix 8 byte value handling.
(h8300_return_value): New function.
(h8300h_return_value): New function.
(h8300_extract_struct_value_address): Remove deprecated functionality.
(h8300_push_dummy_code): Remove.
(h8300_gdbarch_init): Replace set_gdbarch_extract_return_value and
set_gdbarch_store_return_value calls by set_gdbarch_return_value.
Remove calls to set_gdbarch_deprecated_fp_regnum,
set_gdbarch_deprecated_extract_struct_value_address,
set_gdbarch_deprecated_use_struct_convention and
set_gdbarch_push_dummy_code.
Add calls to set_gdbarch_unwind_sp and frame_base_set_default.
Slightly rearrange code.