* lib/mi-support.exp (mi_gdb_load): Use /tmp for gdbserver
	downloads.
	* config/gdbserver.exp (gdb_load): Likewise.
	* gdb/elfread.c (elf_symtab_read): Skip symbols which BFD considers
	special.
	* gdb/elfread.c (elf_symtab_read): Skip symbols which BFD considers
	special.
	* 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.
	* 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.
	* 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.
	* 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.
	* 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.
	* 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.
	* 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.
	* gdb/arm-linux-nat.c (store_register, store_regs): Handle
	ARM_PS_REGNUM.
	* gdb/arm-linux-nat.c (store_register, store_regs): Handle
	ARM_PS_REGNUM.
	* 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.
	* 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.
	* 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.
	* 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.
	* 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.
	Backport from mainline.
	2005-03-22  Mark Mitchell  <mark@codesourcery.com>
	* 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.
	Backport from mainline.
	2005-03-22  Mark Mitchell  <mark@codesourcery.com>
	* 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.
	Backport from mainline:
        2005-03-25  Mark Mitchell  <mark@codesourcery.com>
	* 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.