This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [New WinCE support] [patch 4/4] The bulk of the code.
On Mon, Mar 19, 2007 at 01:16:15AM +0000, Pedro Alves wrote:
> ChangeLog
>
> * arm-wince-tdep.c: New.
> * config/arm/wince.mt (DEPRECATED_TM_FILE): Use tm-arm.h.
> (MT_CFLAGS): Delete.
> (TM_CLIBS): Delete.
> (TDEPFILES): Add arm-wince-tdep.o, corelow.o, solib.o,
> solib-legacy.o, solib-svr4.o, and remove wince.o.
> * configure.tgt (arm*-*-mingw32ce*): Add.
> * signals/signals.c [HAVE_SIGNAL_H]: Check.
> (do_target_signal_to_host): Silence 'not used' warning.
> * config/arm/tm-wince.h: Remove.
> * wince.c: Remove.
> * wince-stub.h: Remove.
> * wince-stub.c: Remove.
>
> doc/ChangeLog
>
> * gdb.texinfo (WinCE): Delete subsection.
>
> gdbserver/ChangeLog
>
> * gdbserver/configure.ac: Add errno checking.
> (AC_CHECK_HEADERS): Add errno.h, fcntl.h, signal.h,
> sys/file.h and malloc.h.
> (AC_CHECK_DECLS): Add perror.
> (srv_mingwce): Handle.
> * gdbserver/configure.srv (i[34567]86-*-cygwin*): Add
> win32-i386-low.o to srv_tgtobj.
> (i[34567]86-*-mingw*): Likewise.
> (arm*-*-mingw32ce*): Add case.
> * gdbreplay.c [HAVE_SYS_FILE_H, HAVE_SIGNAL_H,
> HAVE_FCNTL_H, HAVE_ERRNO_H, HAVE_MALLOC_H]: Check.
> [__MINGW32CE__] (strerror): New function.
> [__MINGW32CE__] (errno): Define to GetLastError.
> [__MINGW32CE__] (COUNTOF): New macro.
> (remote_open): Remove extra close call.
> * mem-break.c (delete_breakpoint_at): New function.
> * mem-break.h (delete_breakpoint_at): Declare.
> * remote-utils.c [HAVE_SYS_FILE_H, HAVE_SIGNAL_H,
> HAVE_FCNTL_H, HAVE_UNISTD_H, HAVE_ERRNO_H]: Check.
> [USE_WIN32API] (read, write): Add char* casts.
> * server.c [HAVE_UNISTD_H, HAVE_SIGNAL_H]: Check.
> * server.h: Include wincecompat.h on Windows CE.
> [HAVE_ERRNO_H]: Check.
> (perror): Declare if not declared.
> * utils.c: Add stdlib.h, errno.h and malloc.h includes.
> (perror_with_name): Remove errno declaration.
> * wincecompat.h: New.
> * wincecompat.c: New.
> * win32-low.h: New.
> * win32-arm-low.c: New.
> * win32-i386-low.c: New.
> (win32-low.c): Include mem-break.h and win32-low.h, and winnt.h.
> (OUTMSG2): Make it safe.
> (_T): New macro.
> (COUNTOF): New macro.
> (NUM_REGS): Get it from the low target.
> (CONTEXT_EXTENDED_REGISTERS, CONTEXT_FLOATING_POINT,
> CONTEXT_DEBUG_REGISTERS): Add fallbacks to 0.
> (thread_rec): Let low target handle debug registers.
> (child_add_thread): Likewise.
> (child_init_thread_list): Likewise.
> (continue_one_thread): Likewise.
> (regptr): New.
> (do_child_fetch_inferior_registers): Move to ...
> * win32-i386-low.c: ... here, and rename to ...
> (do_fetch_inferior_registers): ... this.
> * win32-low.c (child_fetch_inferior_registers):
> Go through the low target.
> (do_child_store_inferior_registers): Use regptr.
> (strwinerror): New function.
> (win32_create_inferior): Handle Windows CE.
> Use strwinerror instead of strerror on Windows error
> codes. Add program to the error output.
> Don't close the main thread handle on Windows CE.
> (win32_attach): Use coredll.dll on Windows CE.
> (win32_kill): Close current process and current
> thread handles.
> (win32_detach): Use coredll.dll on Windows CE.
> (win32_resume): Let low target handle debug registers, and
> step request.
> (handle_exception): Add/Remove initial breakpoint. Avoid
> non-existant WSTOPSIG on Windows CE.
> (win32_read_inferior_memory): Cast to remove warning.
> (win32_arch_string): Go through the low target.
> (initialize_low): Call set_breakpoint_data with the low
> target's breakpoint.
> * win32-low.c (dr, FLAG_TRACE_BIT, FCS_REGNUM,
> FOP_REGNUM, mappings): Move to ...
> * win32-i386-low.c: ... here.
> * win32-low.c (win32_thread_info): Move to ...
> * win32-low.h: ... here.
> * Makefile.in (SFILES): Add win32-low.c, win32-i386-low.c,
> win32-arm-low.c and wincecompat.c.
> (all:): Add $EXEEXT.
> (install-only:): Likewise.
> (gdbserver:): Likewise.
> (gdbreplay:): Likewise.
> * config.in: Regenerate.
> * configure: Regenerate.
This is OK. Doesn't it deserve a NEWS entry?
I didn't go over the Windows-specific changes too closely; I trust you
:-) I'll try not to break it too badly when working on the Linux ports.
> @@ -52,8 +52,14 @@ case "${target}" in
> srv_linux_regsets=yes
> srv_linux_thread_db=yes
> ;;
> + arm*-*-mingw32ce*) srv_regobj=reg-arm.o
> + srv_tgtobj="win32-low.o win32-arm-low.o"
> + srv_tgtobj="${srv_tgtobj} wincecompat.o"
> + srv_mingw=yes
> + srv_mingwce=yes
> + ;;
> i[34567]86-*-mingw*) srv_regobj=reg-i386.o
> - srv_tgtobj="win32-low.o"
> + srv_tgtobj="win32-low.o win32-i386-low.o"
> srv_mingw=yes
> ;;
> ia64-*-linux*) srv_regobj=reg-ia64.o
Please put arm*-*-mingw32ce* up higher, near other ARM targets - the
case statement is pretty much sorted.
Should you check arm-wince-pe here too, since you did in the directory
above? Not that I expect a lot of native arm-wince-pe gdb :-)
--
Daniel Jacobowitz
CodeSourcery