2005-04-29 Paul Brook * sim/common/callback.c (PIPE_BUF): Provide default refinition. (os_lstat): Use stat if lstat is not available on the host. (os_ftruncate): Return EINVAL if not available on the host. (os_truncate): Ditto. * sim/common/configure.ac: Check for lstat, truncate and ftruncate. * sim/common/configure: Regenerate. * sim/common/config.in: Regenerate. 2005-04-29 Paul Brook * gdb/remote-sim.c (SIGTRAP): Provide default defnition. * gdb/signals/signals.c (SIGRAP): Ditto. 2005-04-28 Paul Brook * gdb/exceptions.c (print_flush): Handle NULL gdb_stdout_serial. 2005-04-27 Paul Brook * sim/common/Make-common.in: Add $(EXEEXT) to "run". 2005-04-25 Paul Brook * gdb/configure.tgt: Don't build rdi-share library. * gdb/config/arm/embed.mt: Ditto. 2005-03-31 Mark Mitchell * gdb/ser-tcp.c (net_write_prim): Correct prototype. * readline/input.c (rl_getc): Use getche to read console input on Windows. Revert: 2005-03-28 Mark Mitchell * gdb/event-top.c (gdb_setup_readline): Put console into character-at-a-time mode under Windows. 2005-03-30 Paul Brook * arm/wrapper.c: Provide SIGTRAP and SIGBUS. 2005-03-30 Daniel Jacobowitz * gdb/Makefile.in (arm-linux-nat.o): Update dependencies. * gdb/arm-linux-nat.c: Include "gdb_assert.h". (PTRACE_GETWMMXREGS, PTRACE_SETWMMXREGS): Define. (arm_linux_has_wmmx_registers): New flag. (GET_THREAD_ID): Remove stray punctuation. (IWMMXT_REGS_SIZE): Define. (fetch_wmmx_regs, store_wmmx_regs): New functions. (fetch_inferior_registers, store_inferior_registers): Call them. (arm_linux_available_registers): New function. * gdb/inftarg.c (child_xfer_partial): Handle TARGET_OBJECT_AVAILABLE_REGISTERS. * gdb/config/arm/nm-linux.h (arm_linux_available_registers): Add prototype. (NATIVE_XFER_AVAILABLE_REGISTERS): Define. * gdb/gdbserver/linux-arm-low.c (arm_fill_wmmxregset) (arm_store_wmmxregset): Remove stray text. (arm_available_registers): Remove debugging output. Use hex. * gdb/gdbserver/regcache.c (num_registers): Make global. * gdb/gdbserver/server.c (handle_p_packet, handle_P_packet): Check the value of regnum. 2005-03-28 Paul Brook Daniel Jacobowitz * gdb/Makefile.in: arm-tdep.o depends on $(observer_h). * gdb/arm-linux-nat.c (fetch_fpregister, fetch_fpregs, store_fpregister, store_fpregs): Rename... (fetch_fpa_register, fetch_fpa_regs, store_fpa_register, store_fpa_regs): ... to this. * gdb/arm-linux-tdep.c (arm_linux_init_abi): Provide ABI specific overrides. * gdb/arm-tdep.c: Include opserver.h. (struct gdbarch_tdep_info): Add. (arm_push_dummy_call): Handle doubleword alignment. (arm_register_type): Handle iWMMXt and VFP regs. (arm_register_byte): Ditto. (arm_pseudo_register_read): New function. (arm_pseudo_register_write): New function. (arm_dwarf_reg_to_regnum): New function. (arm_register_sim_regno): Handle iWMMXT regs. (arm_register_remote_regno): New function. (arm_extract_return_value): Use new macro names. (arm_register_name): Handle iWMMXt and VFP registers. (arm_sim_available_registers): New function. (arm_update_architecture): New function. (arm_gdbarch_init): Handle optional register sets. Register new hooks. Fix misleading error message. (_initialize_arm_tdep): Call observer_attach_inferior_created. * gdb/arm-tdep.h (ARM_NUM_FP_ARG_REGS, ARM_LAST_FP_ARG_REGNUM, FP_REGISTER_SIZE, NUM_FREGS): Rename ... (ARM_NUM_FPA_ARG_REGS, ARM_LAST_FPA_ARG_REGNUM, FPA_REGISTER_SIZE, NUM_FPA_REGS): ... to this. (NUM_IWMMXT_COP0REGS, NUM_IWMMXT_COP1REGS, NUM_IWMMXT_REGS, IWMMXT_COP0_REGSIZE, IWMMXT_COP1_REGSIZE, NUM_VFP_XREGS, VFP_XREG_SIZE, NUM_VFP_SREGS, VFP_SREG_SIZE, NUM_VFP_PSEUDOS): Define. (struct gdbarch_tdep): Add target_has_iwmmxt_regs, target_has_vfp_regs, first_iwmmxt_regnum, target_iwmmxt_regnum, first_vfp_regnum, first_vfp_pseudo and target_vfp_regnum. * gdb/gdbarch.c (struct gdbarch): Add remote_num_g_packet_regs, sim_available_registers and register_remote_regno. (startup_gdbarch, verify_gdbarch): Ditto. (gdbarch_dump): Dump new fields. (gdbarch_remote_num_g_packet_regs_p, gdbarch_remote_num_g_packet_regs, set_gdbarch_remote_num_g_packet_regs, gdbarch_sim_available_registers_p, gdbarch_sim_available_registers, set_gdbarch_sim_available_registers, gdbarch_register_remote_regno_p, gdbarch_register_remote_regno, set_gdbarch_register_remote_regno): New functions. * gdb/gdbarch.h: Add prototypes. * gdb/gdbarch.sh: Add new fields. (deprecated_current_gdbarch_select_hack): Call flush_cached_frames. * gdb/remote-sim.h (gdbsim_create_inferior): Call observer_notify_inferior_created. (gdbsim_xfer_partial): New function. (init_gdbsim_ops): Use it. * gdb/remote.c (struct remote_state): Add num_g_regs. (init_remote_state): Only consider hard regs. Allow target to provide register mapping. (packet_reg_from_regnum): Don't check pseudo regs. (packet_reg_from_pnum): Ditto. (remote_protocol_qPart_availableRegisters): Add. (set_remote_protocol_qPart_availableRegisters_packet_cmd, show_remote_protocol_qPart_availableRegisters_packet_cmd): New functions. (fetch_register_using_p, store_register_using_P): Handle arbitrary register mappings. (fetch_registers_using_g): New function. (remote_fetch_registers): Use it. (store_registers_using_G): New function. (remote_store_registers): Use it. (remote_xfer_partial): Handle TARGET_OBJECT_AVAILABLE_REGISTERS. (show_remote_cmd): Display availableRegisters. (_initialize_remote): Register qPart_availableRegisters. * gdb/target.h (enum target_object): Add TARGET_OBJECT_AVAILABLE_REGISTERS. * gdb/gdbserver/configure.srv (arm*-*-linux*): set srv_linux_regsets=yes. * gdb/gdbserver/linux-arm-low.c (PTRACE_GETWMMXREGS, PTRACE_SETWMMXREGS): Define. (arm_fill_gregset, arm_store_gregset, arm_fill_wmmxregset, arm_store_wmmxregset, arm_available_registers): New functions. (target_regsets): Add. (the_low_target): Use arm_available_registers. * gdb/gdbserver/linux-low.c (linux_available_registers): New function. (linux_target_op): Use it. * gdb/gdbserver/linux-low.h (gdbserver/linux-low.h): Add available_registers. (use_regsets_p): Declare. * gdb/gdbserver/regcache.c (g_register_bytes): Add. (regcache_invalidate, registers_to_string, registers_from_string): Use it. (set_register_cache): Set g_register_bytes. (supply_register_as_string): New function. * gdb/gdbserver/regcache.h (supply_register_as_string): Add prototype. * gdb/gdbserver/server.c (handle_query): Handle qPart:availableRegisters. (handle_p_packet, handle_P_packet): New functions. (main): Handle 'p' and 'P' packets. * gdb/gdbserver/target.h (struct target_ops): Add available_registers. * gdb/regformats/reg-arm.dat: Add last_g_reg and iWMMXT regs. * gdb/regformats/regdat.sh: Handle last_g_reg. * gdb/regformats/regdef.h (set_register_cache): Update prototype. 2005-03-28 Mark Mitchell * include/libiberty.h (ffs): Declare. 2005-03-28 Mark Mitchell * gdb/ser-tcp.c (net_read_prim): Use recv unconditionally. (net_write_prim): Use send unconditionally. * gdb/configure.ac: Do not check for send and recv. * gdb/configure: Regenerated. 2005-03-28 Daniel Jacobowitz * gdb/remote-rdi.c (arm_rdi_insert_breakpoint): Don't call arm_pc_is_thumb_dummy. 2005-03-28 Mark Mitchell * readline/Makefile.in (RLTTYOBJ): New variable. (OBJECTS): Use RLTTYOBJ. * readline/aclocal.m4: Use AC_RTY_LINK to check for mbstate_t. * readline/complete.c (pwd.h): Guard with HAVE_PWD_H. (getpwent): Guard with HAVE_GETPWENT. (rl_username_completion_function): Guard use of getpwent. (endpwent): Likewise. * readline/config.h.in (HAVE_FCNTL): New macro. (HAVE_GETPWENT): Likewise. (HAVE_GETPWNAM): Likewise. (HAVE_GETPWUID): Likewise. (HAVE_PWD_H): Likewise. * readline/configure: Regenerated. * readline/configure.in: Handle MinGW when cross compiling. Check for getpwnam, getpwent, getpwuid, and pwd.h. Set RLTTYOBJ. * readline/display.c (rl_clear_screen): Treat Windows like DOS. (insert_some_chars): Likewise. (delete_chars): Likewise. * readline/rldefs.h (NEW_TTY_DRIVER): Do not define for Windows. * readline/rlnotty.c: New file. * readline/shell.c (pwd.h): Guard with HAVE_PWD_H. (getpwuid): Guard with HAVE_GETPWUID. (sh_unset_nodelay_mode): Guard use of fnctl with HAVE_FNCTL_H. * readline/signals.c (rl_signal_handler): Don't use SIGALRM or SIGQUIT if not defined. Use "raise" rather than "kill". (rl_set_signals): Don't set handlers for SIGQUIT or SIGALRM if they are not defined. (rl_clear_signals): Likewise. * readline/tilde.c (pwd.h): Guard with HAVE_PWD_H. (getpwuid): Guard declaration with HAVE_GETPWUID. (getpwnam): Guard declaration with HAVE_GETPWNAM. (tilde_expand_word): Guard use of getpwnam with HAVE_GETPWNAM. 2005-03-28 Mark Mitchell * gdb/configure.ac: No tgetent on MinGW. * gdb/configure: Regenerated. * gdb/event-loop.c (struct gdb_notifier): Add "handles" for Windows. (create_file_handler): On Windows, update handles, rather than check_masks and ready_masks. (delete_file_handler): Likewise. (gdb_wait_for_event): Use WaitForMultipleObjects, not select, on Windows. * gdb/event-top.c (gdb_setup_readline): Put console into character-at-a-time mode under Windows. 2005-03-28 Mark Mitchell * gdb/configure.ac: Link with -lws2_32 on mingw. * gdb/configure: Regenerated. * gdb/defs.h (WINAPI): Define, conditionally. * gdb/ser-base.c (winsock2.h): Include it. (fd_event): Use read_prim. (ser_base_wait_for): Moved here from ser-unix.c. (do_ser_base_readchar): Likewise. (generic_readchar): Likewise. (ser_base_readchar): Likewise. * gdb/ser-base.h (generic_readchar): Declare. (ser_base_readchar): Likewise. * gdb/ser-pipe.c (_initialize_ser_pipe): Adjust for name changes. * gdb/ser-tcp.c (winsock2.h): Include it. (ETIMEDOUT): Define on Windows. (closesocket): Define on UNIX. (ioctlsocket): Likewise. (net_open): Adjust for differences in socket functions between Windows and UNIX. (_initialize_ser_tcp): Adjust for name changes. (net_read_prim): New function. (net_write_prim): Likewise. * gdb/ser-unix.c (generic_readchar): Remove. (ser_unix_wait_for): Likewise. (do_unix_readchar): Likewise. (ser_unix_readchar): Likewise. (_initialize_ser_hardwire): Adjust for name changes. (ser_unix_read_prim): New function. (ser_unix_write_prim): New function. * gdb/ser-unix.h (ser_unix_readchar): Remove. (ser_unix_read_prim): Declare. (ser_unix_write_prim): Declare. * gdb/serial.h (struct serial_ops): Add read_prim and write_prim. * gdb/utils.c (winerror.h): Include it. (safe_strerror): Handle winsock errors. 2005-03-28 Mark Mitchell Backport from mainline: 2005-03-25 Mark Mitchell * ser-base.c (ser_unix_write): Rename to ... (ser_base_write): ... this. (ser_unix_nop_flush_output): Rename to ... (ser_base_flush_output): ... this. (ser_unix_flush_input): Rename to ... (ser_base_flush_input): ... this. (ser_unix_nop_send_break): Rename to ... (ser_base_send_break): ... this. (ser_unix_nop_drain_output): Rename to ... (ser_base_drain_output): ... this. (ser_unix_nop_raw): Rename to ... (ser_base_raw): ... this. (ser_unix_nop_get_tty_state): Rename to ... (ser_base_set_tty_state): ... this. (ser_unix_nop_noflush_set_tty_state): Rename to ... (ser_base_noflush_set_tty_state): ... this. (ser_unix_nop_print_tty_state): Rename to ... (ser_base_print_tty_state): ... this. (ser_unix_nop_setbaudrate): Rename to ... (ser_base_setbaudrate): ... this. (ser_unix_nop_setstopbits): Rename to ... (ser_base_setstopbits): ... this. (ser_unix_async): Rename to ... (ser_base_async): ... this. * ser-base.h (ser_unix_write): Rename to ... (ser_base_write): ... this. (ser_unix_nop_flush_output): Rename to ... (ser_base_flush_output): ... this. (ser_unix_flush_input): Rename to ... (ser_base_flush_input): ... this. (ser_unix_nop_send_break): Rename to ... (ser_base_send_break): ... this. (ser_unix_nop_drain_output): Rename to ... (ser_base_drain_output): ... this. (ser_unix_nop_raw): Rename to ... (ser_base_raw): ... this. (ser_unix_nop_get_tty_state): Rename to ... (ser_base_set_tty_state): ... this. (ser_unix_nop_noflush_set_tty_state): Rename to ... (ser_base_noflush_set_tty_state): ... this. (ser_unix_nop_print_tty_state): Rename to ... (ser_base_print_tty_state): ... this. (ser_unix_nop_setbaudrate): Rename to ... (ser_base_setbaudrate): ... this. (ser_unix_nop_setstopbits): Rename to ... (ser_base_setstopbits): ... this. (ser_unix_async): Rename to ... (ser_base_async): ... this. * ser-pipe.c (_initialize_ser_pipe): Update accordingly. * ser-tcp.c (_initialize_ser_tcp): Likewise. * ser-unix.c (hardwire_flush_input): Likewise. (_initializer_ser_hardwire): Likewise. 2005-03-28 Mark Mitchell Backport from mainline. 2005-03-22 Mark Mitchell * Makefile.in (SFILES): Add ser-base.c. (ser_base_h): New variable. (ser-base.o): New target. (ser-pipe.o): Depend on $(ser_base_h). (ser-tcp.o): Likewise. (ser-unix.o): Likewise. Do not depend on $(event_loop_h). * configure.ac (SER_HARDWIRE): Include ser-base.o where appropriate. * ser-base.c: New file. (push_event): Move from ser-unix.c. (fd_event): Likewise. (reschedule): Likewise. (ser_unix_write): Likewise. (ser_unix_nop_flush_output): Likewise. (ser_unix_flush_input): Likewise. (ser_unix_nop_send_break): Likewise. (ser_unix_nop_drain_output): Likewise. (ser_unix_nop_raw): Likewise. (ser_unix_nop_get_tty_state): Likewise. (ser_unix_nop_set_tty_state): Likewise. (ser_unix_nop_noflush_set_tty_state): Likewise. (ser_unix_nop_print_tty_state): Likewise. (ser_unix_nop_setbaudrate): Likewise. (ser_unix_nop_setstopbits): Likewise. (ser_unix_async): Likewise. * ser-base.h: New file. * ser-pipe.c (ser-base.h): Include it. * ser-tcp.c (ser-base.h): Likewise. * ser-unix.h (ser_unix_nop_flush_output): Remove. (ser_unix_flush_input): Likewise. (ser_unix_nop_send_break): Likewise. (ser_unix_nop_raw): Likewise. (ser_unix_nop_get_tty_state): Likewise. (ser_unix_nop_set_tty_state): Likewise. (ser_unix_nop_print_tty_state): Likewise. (ser_unix_nop_noflush_set_tty_state): Likewise. (ser_unix_nop_setbaudrate): Likewise. (ser_unix_nop_setstopbits): Likewise. (ser_unix_nop_drain_output): Likewise. (ser_unix_wait_for): Likewise. (ser_unix_write): Likewise. (ser_unix_async): Likewise. * ser-unix.c (event-loop.h): Do not include it. (push_event): Move to ser-base.c. (fd_event): Likewise. (reschedule): Likewise. (ser_unix_write): Likewise. (ser_unix_nop_flush_output): Likewise. (ser_unix_flush_input): Likewise. (ser_unix_nop_send_break): Likewise. (ser_unix_nop_drain_output): Likewise. (ser_unix_nop_raw): Likewise. (ser_unix_nop_get_tty_state): Likewise. (ser_unix_nop_set_tty_state): Likewise. (ser_unix_nop_noflush_set_tty_state): Likewise. (ser_unix_nop_print_tty_state): Likewise. (ser_unix_nop_setbaudrate): Likewise. (ser_unix_nop_setstopbits): Likewise. (ser_unix_async): Likewise. (ser_unix_wait_for): Make it static. 2005-03-25 Daniel Jacobowitz * gdb/Makefile.in (arm-linux-nat.o): Update dependencies. * gdb/arm-linux-nat.c: Include "gdb_proc_service.h". (PTRACE_GET_THREAD_AREA): Define. (ps_get_thread_area): New function. * gdb/gdbserver/Makefile.in (linux-arm-low.o): Update dependencies. * gdb/gdbserver/linux-arm-low.c: Include "../gdb_proc_service.h". (PTRACE_GET_THREAD_AREA): Define. (ps_get_thread_area): New function. 2005-03-25 Paul Brook Daniel Jacobowitz * gdb/configure.tgt: Add default OSABI setting for arm*-*-linux-gnueabi. * gdb/arm-tdep.c (arm_type_align): New function. (arm_push_dummy_call): Use it. Ensure proper argument alignment. Don't try to align the stack. (arm_frame_align): New function. (arm_extract_struct_value_address): Remove. (arm_use_struct_convention): Rename... (arm_return_in_memory): ... To this. Return nonzero for all small aggregates under the EABI. (arm_return_value): New function. (arm_elf_osabi_sniffer): Add EF_ARM_EABI_VER4 case. Handle GDB_OSABI_ARM_EABI_V4_LINUX. (arm_gdbarch_init): Set different FPU and ABI defaults for EABI objects. Use set_gdbarch_return_value instead of obsolete functions. Call set_gdbarch_frame_align. (arm_init_abi_eabi_v4): New function. (_initialize_arm_tdep): Register GDB_OSABI_ARM_EABI_V4. * gdb/arm-linux-tdep.c (ARM_LINUX_EABI_JB_PC): Define. (arm_linux_eabi_init_abi): New function. (_initialize_arm_linux_tdep): Register GDB_OSABI_ARM_EABI_V4_LINUX. * gdb/arm-tdep.h (enum arm_abi_variant): New. (struct gdbarch_tdep): Add abi field. * gdb/defs.h (enum gdb_osabi): Add GDB_OSABI_ARM_EABI_V4 and GDB_OSABI_ARM_EABI_V4_LINUX. * gdb/osabi.c (gdb_osabi_name): Add "ARM EABI v4" and "ARM EABI v4 GNU/Linux". * gdb/testsuite/gdb.base/long_long.exp: Don't expect FPA format for ARM EABI targets. 2005-03-25 Daniel Jacobowitz * gdb/arm-linux-nat.c (store_register, store_regs): Handle ARM_PS_REGNUM. 2005-03-25 Daniel Jacobowitz * gdb/arm-tdep.c (target_is_thumb, caller_is_thumb) (arm_pc_is_thumb_dummy): Remove. (arm_breakpoint_from_pc): Don't call arm_pc_is_thumb_dummy. 2005-03-25 Daniel Jacobowitz * gdb/arm-linux-tdep.c (arm_linux_thumb_be_breakpoint) (arm_linux_thumb_le_breakpoint): New. Update comments. (arm_linux_init_abi): Set Thumb breakpoints also. 2005-03-25 Daniel Jacobowitz * gdb/Makefile.in (arm-tdep.o): Update dependencies. * gdb/arm-tdep.c: Include "objfiles.h" and "dwarf2-frame.h". (arm_gdbarch_init): Register dwarf2_frame_sniffer. 2005-03-25 Daniel Jacobowitz * gdb/elfread.c (elf_symtab_read): Skip symbols which BFD considers special. 2005-03-25 Daniel Jacobowitz * gdb/testsuite/lib/mi-support.exp (mi_gdb_load): Use /tmp for gdbserver downloads. * gdb/testsuite/config/gdbserver.exp (gdb_load): Likewise.