diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2019-02-13 12:02:20 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2019-02-14 16:02:33 +0100 |
commit | cabb5f067daa9227bf0323cbf64c6065d6e4796f (patch) | |
tree | 62f96bd6149e954c4e635588e79d95264199220c /gdb/gnu-nat.h | |
parent | b1041ae0ae8a2f1c51e75b45004686f1956078ed (diff) | |
download | gdb-cabb5f067daa9227bf0323cbf64c6065d6e4796f.zip gdb-cabb5f067daa9227bf0323cbf64c6065d6e4796f.tar.gz gdb-cabb5f067daa9227bf0323cbf64c6065d6e4796f.tar.bz2 |
[gdb, hurd] Work around conflict between Mach's 'thread_info' function, and GDB's 'thread_info' class
In file included from ./nm.h:25:0,
from [...]/gdb/defs.h:423,
from [...]/gdb/gdb.c:19:
[...]/gdb/regcache.h:35:46: warning: 'get_thread_regcache' initialized and declared 'extern'
extern struct regcache *get_thread_regcache (thread_info *thread);
^~~~~~~~~~~
[...]/gdb/regcache.h:35:46: error: 'regcache* get_thread_regcache' redeclared as different kind of symbol
[...]
[...]/gdb/gdbarch.h:1203:69: error: 'thread_info' is not a type
extern LONGEST gdbarch_get_syscall_number (struct gdbarch *gdbarch, thread_info *thread);
^~~~~~~~~~~
Fixed with a different (self-contained, more maintainable?) approach compared
to what has been done in commit 7aabaf9d4ad52a1df1f551908fbd8cafc5e7597a
"Create private_thread_info hierarchy", and commit
75cbc781e371279f4403045be93b07fd8fe7fde5 "gdb: For macOS, s/thread_info/struct
thread_info/". We don't want to change all the GDB code to everywhere use
'class thread_info' or 'struct thread_info' instead of plain 'thread_info'.
gdb/
* config/i386/nm-i386gnu.h: Don't "#include" any files.
* gnu-nat.h (mach_thread_info): New function.
* gnu-nat.c (thread_takeover_sc_cmd): Use it.
Diffstat (limited to 'gdb/gnu-nat.h')
-rw-r--r-- | gdb/gnu-nat.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gdb/gnu-nat.h b/gdb/gnu-nat.h index 9df479c..dbad0ca 100644 --- a/gdb/gnu-nat.h +++ b/gdb/gnu-nat.h @@ -19,8 +19,21 @@ #ifndef GNU_NAT_H #define GNU_NAT_H -#include <unistd.h> +#include "defs.h" + +/* Work around conflict between Mach's 'thread_info' function, and GDB's + 'thread_info' class. Make the former available as 'mach_thread_info'. */ +#define thread_info mach_thread_info +/* Mach headers are not yet ready for C++ compilation. */ +extern "C" +{ #include <mach.h> +} +#undef thread_info +/* Divert 'mach_thread_info' to the original Mach 'thread_info' function. */ +extern __typeof__ (mach_thread_info) mach_thread_info asm ("thread_info"); + +#include <unistd.h> struct inf; |