From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32466 invoked by alias); 20 Feb 2011 15:06:01 -0000 Received: (qmail 32451 invoked by uid 22791); 20 Feb 2011 15:05:58 -0000 X-SWARE-Spam-Status: No, hits=-1.8 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; Sun, 20 Feb 2011 15:05:49 +0000 Received: (qmail 1913 invoked from network); 20 Feb 2011 15:05:46 -0000 Received: from unknown (HELO ?192.168.0.101?) (yao@127.0.0.2) by mail.codesourcery.com with ESMTPA; 20 Feb 2011 15:05:46 -0000 Message-ID: <4D612DC6.5010805@codesourcery.com> Date: Sun, 20 Feb 2011 21:34:00 -0000 From: Yao Qi User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101208 Lightning/1.0b2 Thunderbird/3.1.7 MIME-Version: 1.0 To: gdb-patches@sourceware.org Subject: Re: [common] Merge duplicated macros in linux-nat.c and linux-low.c References: <4D5E2021.2070107@codesourcery.com> <201102181546.26744.pedro@codesourcery.com> <4D5EA533.608@codesourcery.com> In-Reply-To: <4D5EA533.608@codesourcery.com> Content-Type: multipart/mixed; boundary="------------010000090509090501050802" 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: 2011-02/txt/msg00520.txt.bz2 This is a multi-part message in MIME format. --------------010000090509090501050802 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-length: 635 On 02/19/2011 12:58 AM, Yao Qi wrote: >> > E.g., x86 watchpoint related macros -> x86-watch.h >> > or x86-nat-watch.h or i386-watchpoint.h, or something >> > like that, not x86-common.h. >> > >> > E.g., linux ptrace related macros and definition >> > -> linux-ptrace.h or something like that. >> > > Looks good to me. I'll name my files in this way. All the comments in previous mails are address in this new patch, 1. rename 'linux-common.h' to 'linux-ptrace.h', which includes only ptrace-related macros. 2. include in linux-ptrace.h for macro __WALL, 3. add dependency tracking for gdbserver, -- Yao (齐尧) --------------010000090509090501050802 Content-Type: text/x-patch; name="linux-ptrace-h-0220.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="linux-ptrace-h-0220.patch" Content-length: 7018 gdb/ * linux-nat.c: Move common macros to ... Include linux-ptrace.h. * common/linux-ptrace.h: ... here. New. gdb/gdbserver/ * linux-low.c: Move common macros to linux-ptrace.h. Include linux-ptrace.h. * Makefile.in (linux_ptrace_h): New. (linux-low.o): Depends on linux-ptrace.h. diff --git a/gdb/common/linux-ptrace.h b/gdb/common/linux-ptrace.h new file mode 100644 index 0000000..238a6f0 --- /dev/null +++ b/gdb/common/linux-ptrace.h @@ -0,0 +1,62 @@ +/* Copyright (C) 2011 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifndef COMMON_LINUX_PTRACE_H +#define COMMON_LINUX_PTRACE_H + +#include +#include /* __WAIT */ + +#ifndef PTRACE_GETSIGINFO +# define PTRACE_GETSIGINFO 0x4202 +# define PTRACE_SETSIGINFO 0x4203 +#endif /* PTRACE_GETSIGINF */ + +/* If the system headers did not provide the constants, hard-code the normal + values. */ +#ifndef PTRACE_EVENT_FORK + +#define PTRACE_SETOPTIONS 0x4200 +#define PTRACE_GETEVENTMSG 0x4201 + +/* options set using PTRACE_SETOPTIONS */ +#define PTRACE_O_TRACESYSGOOD 0x00000001 +#define PTRACE_O_TRACEFORK 0x00000002 +#define PTRACE_O_TRACEVFORK 0x00000004 +#define PTRACE_O_TRACECLONE 0x00000008 +#define PTRACE_O_TRACEEXEC 0x00000010 +#define PTRACE_O_TRACEVFORKDONE 0x00000020 +#define PTRACE_O_TRACEEXIT 0x00000040 + +/* Wait extended result codes for the above trace options. */ +#define PTRACE_EVENT_FORK 1 +#define PTRACE_EVENT_VFORK 2 +#define PTRACE_EVENT_CLONE 3 +#define PTRACE_EVENT_EXEC 4 +#define PTRACE_EVENT_VFORK_DONE 5 +#define PTRACE_EVENT_EXIT 6 + +#endif /* PTRACE_EVENT_FORK */ + +/* We can't always assume that this flag is available, but all systems + with the ptrace event handlers also have __WALL, so it's safe to use + in some contexts. */ +#ifndef __WALL +#define __WALL 0x40000000 /* Wait for any child. */ +#endif + +#endif /* COMMON_LINUX_PTRACE_H */ diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index 07e020f..6f4d31f 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -369,6 +369,8 @@ server_h = $(srcdir)/server.h $(regcache_h) config.h $(srcdir)/target.h \ linux_low_h = $(srcdir)/linux-low.h +linux_ptrace_h = $(srcdir)/../common/linux-ptrace.h + lynx_low_h = $(srcdir)/lynx-low.h $(srcdir)/server.h nto_low_h = $(srcdir)/nto-low.h @@ -437,7 +439,7 @@ i386-low.o: i386-low.c $(i386_low_h) $(server_h) $(target_h) i387-fp.o: i387-fp.c $(server_h) -linux-low.o: linux-low.c $(linux_low_h) $(server_h) +linux-low.o: linux-low.c $(linux_low_h) $(linux_ptrace_h) $(server_h) $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< @USE_THREAD_DB@ linux-arm-low.o: linux-arm-low.c $(linux_low_h) $(server_h) \ diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 93f3570..4470e3b 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -24,6 +24,7 @@ #include #include #include +#include "linux-ptrace.h" #include #include #include @@ -52,48 +53,10 @@ #define SPUFS_MAGIC 0x23c9b64e #endif -#ifndef PTRACE_GETSIGINFO -# define PTRACE_GETSIGINFO 0x4202 -# define PTRACE_SETSIGINFO 0x4203 -#endif - #ifndef O_LARGEFILE #define O_LARGEFILE 0 #endif -/* If the system headers did not provide the constants, hard-code the normal - values. */ -#ifndef PTRACE_EVENT_FORK - -#define PTRACE_SETOPTIONS 0x4200 -#define PTRACE_GETEVENTMSG 0x4201 - -/* options set using PTRACE_SETOPTIONS */ -#define PTRACE_O_TRACESYSGOOD 0x00000001 -#define PTRACE_O_TRACEFORK 0x00000002 -#define PTRACE_O_TRACEVFORK 0x00000004 -#define PTRACE_O_TRACECLONE 0x00000008 -#define PTRACE_O_TRACEEXEC 0x00000010 -#define PTRACE_O_TRACEVFORKDONE 0x00000020 -#define PTRACE_O_TRACEEXIT 0x00000040 - -/* Wait extended result codes for the above trace options. */ -#define PTRACE_EVENT_FORK 1 -#define PTRACE_EVENT_VFORK 2 -#define PTRACE_EVENT_CLONE 3 -#define PTRACE_EVENT_EXEC 4 -#define PTRACE_EVENT_VFORK_DONE 5 -#define PTRACE_EVENT_EXIT 6 - -#endif /* PTRACE_EVENT_FORK */ - -/* We can't always assume that this flag is available, but all systems - with the ptrace event handlers also have __WALL, so it's safe to use - in some contexts. */ -#ifndef __WALL -#define __WALL 0x40000000 /* Wait for any child. */ -#endif - #ifndef W_STOPCODE #define W_STOPCODE(sig) ((sig) << 8 | 0x7f) #endif diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index cd88df8..b2860fb 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -30,6 +30,7 @@ #endif #include #include "linux-nat.h" +#include "linux-ptrace.h" #include "linux-fork.h" #include "gdbthread.h" #include "gdbcmd.h" @@ -160,49 +161,11 @@ blocked. */ #define O_LARGEFILE 0 #endif -/* If the system headers did not provide the constants, hard-code the normal - values. */ -#ifndef PTRACE_EVENT_FORK - -#define PTRACE_SETOPTIONS 0x4200 -#define PTRACE_GETEVENTMSG 0x4201 - -/* Options set using PTRACE_SETOPTIONS. */ -#define PTRACE_O_TRACESYSGOOD 0x00000001 -#define PTRACE_O_TRACEFORK 0x00000002 -#define PTRACE_O_TRACEVFORK 0x00000004 -#define PTRACE_O_TRACECLONE 0x00000008 -#define PTRACE_O_TRACEEXEC 0x00000010 -#define PTRACE_O_TRACEVFORKDONE 0x00000020 -#define PTRACE_O_TRACEEXIT 0x00000040 - -/* Wait extended result codes for the above trace options. */ -#define PTRACE_EVENT_FORK 1 -#define PTRACE_EVENT_VFORK 2 -#define PTRACE_EVENT_CLONE 3 -#define PTRACE_EVENT_EXEC 4 -#define PTRACE_EVENT_VFORK_DONE 5 -#define PTRACE_EVENT_EXIT 6 - -#endif /* PTRACE_EVENT_FORK */ - /* Unlike other extended result codes, WSTOPSIG (status) on PTRACE_O_TRACESYSGOOD syscall events doesn't return SIGTRAP, but instead SIGTRAP with bit 7 set. */ #define SYSCALL_SIGTRAP (SIGTRAP | 0x80) -/* We can't always assume that this flag is available, but all systems - with the ptrace event handlers also have __WALL, so it's safe to use - here. */ -#ifndef __WALL -#define __WALL 0x40000000 /* Wait for any child. */ -#endif - -#ifndef PTRACE_GETSIGINFO -# define PTRACE_GETSIGINFO 0x4202 -# define PTRACE_SETSIGINFO 0x4203 -#endif - /* The single-threaded native GNU/Linux target_ops. We save a pointer for the use of the multi-threaded target. */ static struct target_ops *linux_ops; --------------010000090509090501050802--