From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30787 invoked by alias); 27 Aug 2010 16:06:47 -0000 Received: (qmail 30776 invoked by uid 22791); 27 Aug 2010 16:06:45 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 27 Aug 2010 16:06:39 +0000 Received: (qmail 12131 invoked from network); 27 Aug 2010 16:06:37 -0000 Received: from unknown (HELO orlando.localnet) (pedro@127.0.0.2) by mail.codesourcery.com with ESMTPA; 27 Aug 2010 16:06:37 -0000 From: Pedro Alves To: gdb-patches@sourceware.org Subject: Re: gdbserver with -Werror, win64 socket type Date: Fri, 27 Aug 2010 16:06:00 -0000 User-Agent: KMail/1.13.2 (Linux/2.6.33-29-realtime; KDE/4.4.2; x86_64; ; ) Cc: Ozkan Sezer References: <201008271634.26160.pedro@codesourcery.com> In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201008271706.35298.pedro@codesourcery.com> X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-08/txt/msg00469.txt.bz2 On Friday 27 August 2010 16:46:02, Ozkan Sezer wrote: > On Fri, Aug 27, 2010 at 6:34 PM, Pedro Alves wrote: > > Note the "s/gdb/gdbserver". > > Speaking only for gdbserver, OK. Yeah, that's usual sed-like-speak for, "if you substitute gdb for gdbserver in your statement above, ...". Sorry for not being clear. > > In file included from version.c:1: > ../../../gdb-cvs/gdb/gdbserver/server.h:338: error: expected '=', ',', > ';', 'asm' or '__attribute__' before 'gdb_fildes_t' > ../../../gdb-cvs/gdb/gdbserver/server.h:348: error: expected ')' before 'fd' > ../../../gdb-cvs/gdb/gdbserver/server.h:349: error: expected ')' before 'fd' > ../../../gdb-cvs/gdb/gdbserver/server.h:482: error: expected ')' before 'fd' > > This can be fixed by inserting an #include before the > gdb_fildes_t typedefinition in server.h. After doing this, the build reaches > completion without errors. Thanks, I guess we can live with that. I've done that change, and applied the patch, as below. > Of you want, I can send my full build logs, No need. Let me know if something is still not right. -- Pedro Alves 2010-08-27 Pedro Alves * event-loop.c (event_handle_func): Adjust to use gdb_fildes_t. (struct gdb_event) : Change type to gdb_fildes_t. (struct file_handler) : Change type to gdb_fildes_t. (process_event): Change local fd's type to gdb_fildes_t. (create_file_handler): Adjust prototype. (delete_file_handler): Adjust prototype. (handle_file_event): Adjust prototype. Use pfildes. (create_file_event): Adjsut prototype. * remote-utils.c (remote_desc, listen_desc): Change type to gdb_fildes_t. * server.h: New gdb_fildes_t typedef. [USE_WIN32API]: Include winsock2.h. (delete_file_handler, add_file_handler): Adjust prototypes. (pfildes): Declare. * utils.c (pfildes): New. --- gdb/gdbserver/event-loop.c | 23 ++++++++++++----------- gdb/gdbserver/remote-utils.c | 4 ++-- gdb/gdbserver/server.h | 12 ++++++++++-- gdb/gdbserver/utils.c | 12 ++++++++++++ 4 files changed, 36 insertions(+), 15 deletions(-) Index: src/gdb/gdbserver/event-loop.c =================================================================== --- src.orig/gdb/gdbserver/event-loop.c 2010-08-27 15:58:56.000000000 +0100 +++ src/gdb/gdbserver/event-loop.c 2010-08-27 16:28:18.000000000 +0100 @@ -39,7 +39,7 @@ #endif typedef struct gdb_event gdb_event; -typedef int (event_handler_func) (int); +typedef int (event_handler_func) (gdb_fildes_t); /* Tell create_file_handler what events we are interested in. */ @@ -64,7 +64,7 @@ struct gdb_event event_handler_func *proc; /* File descriptor that is ready. */ - int fd; + gdb_fildes_t fd; /* Next in list of events or NULL. */ struct gdb_event *next_event; @@ -76,7 +76,7 @@ struct gdb_event typedef struct file_handler { /* File descriptor. */ - int fd; + gdb_fildes_t fd; /* Events we want to monitor. */ int mask; @@ -202,7 +202,7 @@ process_event (void) { gdb_event *event_ptr, *prev_ptr; event_handler_func *proc; - int fd; + gdb_fildes_t fd; /* Look in the event queue to find an event that is ready to be processed. */ @@ -332,7 +332,7 @@ process_callback (void) occurs for FD. CLIENT_DATA is the argument to pass to PROC. */ static void -create_file_handler (int fd, int mask, handler_func *proc, +create_file_handler (gdb_fildes_t fd, int mask, handler_func *proc, gdb_client_data client_data) { file_handler *file_ptr; @@ -382,7 +382,8 @@ create_file_handler (int fd, int mask, h /* Wrapper function for create_file_handler. */ void -add_file_handler (int fd, handler_func *proc, gdb_client_data client_data) +add_file_handler (gdb_fildes_t fd, + handler_func *proc, gdb_client_data client_data) { create_file_handler (fd, GDB_READABLE | GDB_EXCEPTION, proc, client_data); } @@ -391,7 +392,7 @@ add_file_handler (int fd, handler_func * i.e. we don't care anymore about events on the FD. */ void -delete_file_handler (int fd) +delete_file_handler (gdb_fildes_t fd) { file_handler *file_ptr, *prev_ptr = NULL; int i; @@ -454,7 +455,7 @@ delete_file_handler (int fd) event in the front of the event queue. */ static int -handle_file_event (int event_file_desc) +handle_file_event (gdb_fildes_t event_file_desc) { file_handler *file_ptr; int mask; @@ -471,8 +472,8 @@ handle_file_event (int event_file_desc) if (file_ptr->ready_mask & GDB_EXCEPTION) { - fprintf (stderr, "Exception condition detected on fd %d\n", - file_ptr->fd); + fprintf (stderr, "Exception condition detected on fd %s\n", + pfildes (file_ptr->fd)); file_ptr->error = 1; } else @@ -502,7 +503,7 @@ handle_file_event (int event_file_desc) associated to FD when it was registered with the event loop. */ static gdb_event * -create_file_event (int fd) +create_file_event (gdb_fildes_t fd) { gdb_event *file_event_ptr; Index: src/gdb/gdbserver/remote-utils.c =================================================================== --- src.orig/gdb/gdbserver/remote-utils.c 2010-08-27 15:58:56.000000000 +0100 +++ src/gdb/gdbserver/remote-utils.c 2010-08-27 16:21:22.000000000 +0100 @@ -107,8 +107,8 @@ struct sym_cache int remote_debug = 0; struct ui_file *gdb_stdlog; -static int remote_desc = INVALID_DESCRIPTOR; -static int listen_desc = INVALID_DESCRIPTOR; +static gdb_fildes_t remote_desc = INVALID_DESCRIPTOR; +static gdb_fildes_t listen_desc = INVALID_DESCRIPTOR; /* FIXME headerize? */ extern int using_threads; Index: src/gdb/gdbserver/server.h =================================================================== --- src.orig/gdb/gdbserver/server.h 2010-08-27 15:58:56.000000000 +0100 +++ src/gdb/gdbserver/server.h 2010-08-27 16:55:30.000000000 +0100 @@ -334,13 +334,20 @@ extern int disable_packet_qfThreadInfo; extern int multi_process; extern int non_stop; +#if USE_WIN32API +#include +typedef SOCKET gdb_fildes_t; +#else +typedef int gdb_fildes_t; +#endif + /* Functions from event-loop.c. */ typedef void *gdb_client_data; typedef int (handler_func) (int, gdb_client_data); typedef int (callback_handler_func) (gdb_client_data); -extern void delete_file_handler (int fd); -extern void add_file_handler (int fd, handler_func *proc, +extern void delete_file_handler (gdb_fildes_t fd); +extern void add_file_handler (gdb_fildes_t fd, handler_func *proc, gdb_client_data client_data); extern int append_callback_event (callback_handler_func *proc, gdb_client_data client_data); @@ -473,6 +480,7 @@ char *paddress (CORE_ADDR addr); char *pulongest (ULONGEST u); char *plongest (LONGEST l); char *phex_nz (ULONGEST l, int sizeof_l); +char *pfildes (gdb_fildes_t fd); #define gdb_assert(expr) \ ((void) ((expr) ? 0 : \ Index: src/gdb/gdbserver/utils.c =================================================================== --- src.orig/gdb/gdbserver/utils.c 2010-07-21 19:13:37.000000000 +0100 +++ src/gdb/gdbserver/utils.c 2010-08-27 16:30:51.000000000 +0100 @@ -370,3 +370,15 @@ paddress (CORE_ADDR addr) { return phex_nz (addr, sizeof (CORE_ADDR)); } + +/* Convert a file descriptor into a printable string. */ + +char * +pfildes (gdb_fildes_t fd) +{ +#if USE_WIN32API + return phex_nz (fd, sizeof (gdb_fildes_t)); +#else + return plongest (fd); +#endif +}