1 /* Native support for GNU/Linux.
2 
3    Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
4 
5    This file is part of GDB.
6 
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2 of the License, or
10    (at your option) any later version.
11 
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with this program; if not, write to the Free Software
19    Foundation, Inc., 59 Temple Place - Suite 330,
20    Boston, MA 02111-1307, USA.  */
21 
22 struct target_ops;
23 
24 /* GNU/Linux is SVR4-ish but its /proc file system isn't.  */
25 #undef USE_PROC_FS
26 
27 /* Since we're building a native debugger, we can include <signal.h>
28    to find the range of real-time signals.  */
29 
30 #include <signal.h>
31 
32 #ifdef __SIGRTMIN
33 #define REALTIME_LO	__SIGRTMIN
34 #define REALTIME_HI	(__SIGRTMAX + 1)
35 #endif
36 
37 /* We define this if link.h is available, because with ELF we use SVR4
38    style shared libraries.  */
39 
40 #ifdef HAVE_LINK_H
41 #include "solib.h"             /* Support for shared libraries.  */
42 #endif
43 
44 
45 /* Override child_wait in `inftarg.c'.  */
46 struct target_waitstatus;
47 extern ptid_t child_wait (ptid_t ptid, struct target_waitstatus *ourstatus);
48 #define CHILD_WAIT
49 
50 extern void lin_lwp_attach_lwp (ptid_t ptid, int verbose);
51 #define ATTACH_LWP(ptid, verbose) lin_lwp_attach_lwp ((ptid), (verbose))
52 
53 extern void lin_thread_get_thread_signals (sigset_t *mask);
54 #define GET_THREAD_SIGNALS(mask) lin_thread_get_thread_signals (mask)
55 
56 /* Use elf_gregset_t and elf_fpregset_t, rather than
57    gregset_t and fpregset_t.  */
58 
59 #define GDB_GREGSET_T  elf_gregset_t
60 #define GDB_FPREGSET_T elf_fpregset_t
61 
62 /* Override child_pid_to_exec_file in 'inftarg.c'.  */
63 #define CHILD_PID_TO_EXEC_FILE
64 
65 #define CHILD_INSERT_FORK_CATCHPOINT
66 #define CHILD_INSERT_VFORK_CATCHPOINT
67 #define CHILD_INSERT_EXEC_CATCHPOINT
68 #define CHILD_POST_STARTUP_INFERIOR
69 #define CHILD_POST_ATTACH
70 #define CHILD_FOLLOW_FORK
71 #define DEPRECATED_KILL_INFERIOR
72 
73 #define NATIVE_XFER_AUXV	procfs_xfer_auxv
74 #include "auxv.h"		/* Declares it. */
75