Index: target.h =================================================================== RCS file: /cvs/src/src/gdb/gdbserver/target.h,v retrieving revision 1.36 diff -u -p -r1.36 target.h --- target.h 1 Apr 2009 22:50:24 -0000 1.36 +++ target.h 17 Jun 2009 17:12:04 -0000 @@ -275,6 +283,8 @@ struct target_ops /* Switch to non-stop (1) or all-stop (0) mode. Return 0 on success, -1 otherwise. */ int (*start_non_stop) (int); + + int (*supports_multiprocess) (void); }; extern struct target_ops *the_target; @@ -311,6 +321,10 @@ void set_target_ops (struct target_ops * #define target_async(enable) \ (the_target->async ? (*the_target->async) (enable) : 0) +#define target_supports_multiprocess() \ + (the_target->supports_multiprocess ? \ + (*the_target->supports_multiprocess) () : 0) + /* Start non-stop mode, returns 0 on success, -1 on failure. */ int start_non_stop (int nonstop); Index: server.c =================================================================== RCS file: /cvs/src/src/gdb/gdbserver/server.c,v retrieving revision 1.97 diff -u -p -r1.97 server.c --- server.c 24 May 2009 21:06:53 -0000 1.97 +++ server.c 17 Jun 2009 17:12:04 -0000 @@ -1106,7 +1106,8 @@ handle_query (char *own_buf, int packet_ if (the_target->qxfer_osdata != NULL) strcat (own_buf, ";qXfer:osdata:read+"); - strcat (own_buf, ";multiprocess+"); + if (target_supports_multiprocess ()) + strcat (own_buf, ";multiprocess+"); if (target_supports_non_stop ()) strcat (own_buf, ";QNonStop+"); Index: linux-low.c =================================================================== RCS file: /cvs/src/src/gdb/gdbserver/linux-low.c,v retrieving revision 1.105 diff -u -p -r1.105 linux-low.c --- linux-low.c 24 May 2009 17:44:19 -0000 1.105 +++ linux-low.c 17 Jun 2009 17:12:06 -0000 @@ -3008,6 +3008,12 @@ linux_start_non_stop (int nonstop) return 0; } +static int +linux_supports_multiprocess (void) +{ + return 1; +} + static struct target_ops linux_target_ops = { linux_create_inferior, linux_attach, @@ -3045,6 +3053,7 @@ static struct target_ops linux_target_op linux_supports_non_stop, linux_async, linux_start_non_stop, + linux_supports_multiprocess }; static void