Hurd, C++: Mach/Hurd headers and MIG stubs are not yet fit for C++
..., so handle these in "C" mode still: gdb/ * config/i386/i386gnu.mh (%_S.o %_U.o): Add "-x c" to "COMPILE.post". * gnu-nat.c: #include Mach/Hurd headers before all others. Wrap Mach/Hurd headers and MIG stubs' prototypes in 'extern "C"'. * i386-gnu-nat.c: Likewise.
This commit is contained in:
parent
0947023d1d
commit
21389b7f34
@ -1,5 +1,11 @@
|
||||
2016-12-08 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* config/i386/i386gnu.mh (%_S.o %_U.o): Add "-x c" to
|
||||
"COMPILE.post".
|
||||
* gnu-nat.c: #include Mach/Hurd headers before all others. Wrap
|
||||
Mach/Hurd headers and MIG stubs' prototypes in 'extern "C"'.
|
||||
* i386-gnu-nat.c: Likewise.
|
||||
|
||||
* gnu-nat.c (proc_get_exception_port, proc_set_exception_port)
|
||||
(INF_RESUME_MSGPORT_RPC, proc_get_state, _proc_get_exc_port)
|
||||
(proc_steal_exc_port, proc_restore_exc_port, make_proc)
|
||||
|
@ -32,6 +32,9 @@ MIGCOM = $(MIG) -cc cat - /dev/null
|
||||
$(CPP) $(CPPFLAGS) $($*-MIGUFLAGS) -x c $< \
|
||||
| $(MIGCOM) -sheader /dev/null -server /dev/null -user $*_U.c -header $*_U.h
|
||||
|
||||
# MIG stubs are not yet ready for C++ compilation.
|
||||
%_S.o %_U.o : COMPILE.post += -x c
|
||||
|
||||
NAT_GENERATED_FILES = notify_S.h notify_S.c \
|
||||
process_reply_S.h process_reply_S.c \
|
||||
msg_reply_S.h msg_reply_S.c msg_U.h msg_U.c \
|
||||
|
@ -20,14 +20,9 @@
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "defs.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <limits.h>
|
||||
#include <setjmp.h>
|
||||
#include <signal.h>
|
||||
#include <sys/ptrace.h>
|
||||
|
||||
/* Mach/Hurd headers are not yet ready for C++ compilation. */
|
||||
extern "C"
|
||||
{
|
||||
#include <mach.h>
|
||||
#include <mach_error.h>
|
||||
#include <mach/exception.h>
|
||||
@ -48,6 +43,15 @@
|
||||
#include <hurd/sigpreempt.h>
|
||||
|
||||
#include <portinfo.h>
|
||||
}
|
||||
|
||||
#include "defs.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <limits.h>
|
||||
#include <setjmp.h>
|
||||
#include <signal.h>
|
||||
#include <sys/ptrace.h>
|
||||
|
||||
#include "inferior.h"
|
||||
#include "symtab.h"
|
||||
@ -63,12 +67,16 @@
|
||||
#include "gnu-nat.h"
|
||||
#include "inf-child.h"
|
||||
|
||||
/* MIG stubs are not yet ready for C++ compilation. */
|
||||
extern "C"
|
||||
{
|
||||
#include "exc_request_S.h"
|
||||
#include "notify_S.h"
|
||||
#include "process_reply_S.h"
|
||||
#include "msg_reply_S.h"
|
||||
#include "exc_request_U.h"
|
||||
#include "msg_U.h"
|
||||
}
|
||||
|
||||
static process_t proc_server = MACH_PORT_NULL;
|
||||
|
||||
@ -1443,6 +1451,12 @@ struct inf *gnu_current_inf = 0;
|
||||
multi-threaded, we don't bother to lock this. */
|
||||
struct inf *waiting_inf;
|
||||
|
||||
/* MIG stubs are not yet ready for C++ compilation. */
|
||||
extern "C" int exc_server (mach_msg_header_t *, mach_msg_header_t *);
|
||||
extern "C" int msg_reply_server (mach_msg_header_t *, mach_msg_header_t *);
|
||||
extern "C" int notify_server (mach_msg_header_t *, mach_msg_header_t *);
|
||||
extern "C" int process_reply_server (mach_msg_header_t *, mach_msg_header_t *);
|
||||
|
||||
/* Wait for something to happen in the inferior, returning what in STATUS. */
|
||||
static ptid_t
|
||||
gnu_wait (struct target_ops *ops,
|
||||
@ -1458,11 +1472,6 @@ gnu_wait (struct target_ops *ops,
|
||||
struct proc *thread;
|
||||
struct inf *inf = gnu_current_inf;
|
||||
|
||||
extern int exc_server (mach_msg_header_t *, mach_msg_header_t *);
|
||||
extern int msg_reply_server (mach_msg_header_t *, mach_msg_header_t *);
|
||||
extern int notify_server (mach_msg_header_t *, mach_msg_header_t *);
|
||||
extern int process_reply_server (mach_msg_header_t *, mach_msg_header_t *);
|
||||
|
||||
gdb_assert (inf->task);
|
||||
|
||||
if (!inf->threads && !inf->pending_execs)
|
||||
|
@ -17,17 +17,21 @@
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Mach/Hurd headers are not yet ready for C++ compilation. */
|
||||
extern "C"
|
||||
{
|
||||
#include <mach.h>
|
||||
#include <mach_error.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/exception.h>
|
||||
}
|
||||
|
||||
#include "defs.h"
|
||||
#include "x86-nat.h"
|
||||
#include "inferior.h"
|
||||
#include "floatformat.h"
|
||||
#include "regcache.h"
|
||||
|
||||
#include <mach.h>
|
||||
#include <mach_error.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/exception.h>
|
||||
|
||||
#include "i386-tdep.h"
|
||||
|
||||
#include "gnu-nat.h"
|
||||
|
Loading…
Reference in New Issue
Block a user