This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] Wrap a few opcodes headers in extern "C" for C++
- From: Pedro Alves <palves at redhat dot com>
- To: binutils at sourceware dot org
- Date: Thu, 12 Feb 2015 10:28:47 +0000
- Subject: [PATCH] Wrap a few opcodes headers in extern "C" for C++
- Authentication-results: sourceware.org; auth=none
These are sufficient to link an --enable-targets=all GDB build in C++
mode, on x86_64 Fedora 20.
OK?
include/opcode/
2015-02-12 Pedro Alves <palves@redhat.com>
* cgen.h [__cplusplus]: Wrap in extern "C".
* opcode/msp430-decode.h [__cplusplus]: Likewise.
* opcode/nios2.h [__cplusplus]: Likewise.
include/
2015-02-12 Pedro Alves <palves@redhat.com>
* nios2.h [__cplusplus]: Wrap in extern "C".
* rl78.h [__cplusplus]: Wrap in extern "C".
* rx.h [__cplusplus]: Wrap in extern "C".
* tilegx.h [__cplusplus]: Wrap in extern "C".
opcodes/
2015-02-12 Pedro Alves <palves@redhat.com>
* microblaze-dis.h [__cplusplus]: Wrap in extern "C".
---
include/opcode/cgen.h | 8 ++++++++
include/opcode/msp430-decode.h | 8 ++++++++
include/opcode/nios2.h | 8 ++++++++
include/opcode/rl78.h | 8 ++++++++
include/opcode/rx.h | 8 ++++++++
include/opcode/tilegx.h | 8 ++++++++
opcodes/microblaze-dis.h | 8 ++++++++
7 files changed, 56 insertions(+)
diff --git a/include/opcode/cgen.h b/include/opcode/cgen.h
index a23f0fd..0efbe79 100644
--- a/include/opcode/cgen.h
+++ b/include/opcode/cgen.h
@@ -27,6 +27,10 @@
/* ??? IWBN to replace bfd in the name. */
#include "bfd_stdint.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* ??? This file requires bfd.h but only to get bfd_vma.
Seems like an awful lot to require just to get such a fundamental type.
Perhaps the definition of bfd_vma can be moved outside of bfd.h.
@@ -1476,4 +1480,8 @@ extern void cgen_clear_signed_overflow_ok (CGEN_CPU_DESC);
/* Will an error message be generated if a signed field in an instruction overflows ? */
extern unsigned int cgen_signed_overflow_ok_p (CGEN_CPU_DESC);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* OPCODE_CGEN_H */
diff --git a/include/opcode/msp430-decode.h b/include/opcode/msp430-decode.h
index 3960278..3edd3f2 100644
--- a/include/opcode/msp430-decode.h
+++ b/include/opcode/msp430-decode.h
@@ -19,6 +19,10 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef enum
{
MSO_unknown,
@@ -128,3 +132,7 @@ typedef struct
} MSP430_Opcode_Decoded;
int msp430_decode_opcode (unsigned long, MSP430_Opcode_Decoded *, int (*)(void *), void *);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/include/opcode/nios2.h b/include/opcode/nios2.h
index 44dffb7..cbd2b8c 100644
--- a/include/opcode/nios2.h
+++ b/include/opcode/nios2.h
@@ -25,6 +25,10 @@
#include "bfd.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/****************************************************************************
* This file contains structures, bit masks and shift counts used
* by the GNU toolchain to define the Nios II instruction set and
@@ -153,4 +157,8 @@ extern int nios2_num_regs;
extern const struct nios2_opcode *
nios2_find_opcode_hash (unsigned long, unsigned long);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _NIOS2_H */
diff --git a/include/opcode/rl78.h b/include/opcode/rl78.h
index 5495c4c..72adf14 100644
--- a/include/opcode/rl78.h
+++ b/include/opcode/rl78.h
@@ -26,6 +26,10 @@
#ifndef RL78_OPCODES_H_INCLUDED
#define RL78_OPCODES_H_INCLUDED
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* For the purposes of these structures, the RL78 registers are as
follows, despite most of these being memory-mapped and
bank-switched: */
@@ -164,4 +168,8 @@ typedef struct
int rl78_decode_opcode (unsigned long, RL78_Opcode_Decoded *, int (*)(void *), void *);
+#ifdef __cplusplus
+}
+#endif
+
#endif
diff --git a/include/opcode/rx.h b/include/opcode/rx.h
index e4fe05d..41557b2 100644
--- a/include/opcode/rx.h
+++ b/include/opcode/rx.h
@@ -23,6 +23,10 @@
analyzer, and the disassembler. Given an opcode data source,
it decodes the next opcode into the following structures. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef enum
{
RX_AnySize = 0,
@@ -212,3 +216,7 @@ typedef struct
registers. 32..47 are condition codes. */
int rx_decode_opcode (unsigned long, RX_Opcode_Decoded *, int (*)(void *), void *);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/include/opcode/tilegx.h b/include/opcode/tilegx.h
index e0d8aee..ae8f95b 100644
--- a/include/opcode/tilegx.h
+++ b/include/opcode/tilegx.h
@@ -21,6 +21,10 @@
#ifndef opcode_tile_h
#define opcode_tile_h
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef unsigned long long tilegx_bundle_bits;
@@ -1301,4 +1305,8 @@ typedef tilegx_bundle_bits tile_bundle_bits;
#define TILE_LOG2_BUNDLE_ALIGNMENT_IN_BYTES \
TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES
+#ifdef __cplusplus
+}
+#endif
+
#endif /* opcode_tilegx_h */
diff --git a/opcodes/microblaze-dis.h b/opcodes/microblaze-dis.h
index a837ada..fd09745 100644
--- a/opcodes/microblaze-dis.h
+++ b/opcodes/microblaze-dis.h
@@ -22,6 +22,10 @@
#ifndef MICROBLAZE_DIS_H
#define MICROBLAZE_DIS_H 1
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern enum microblaze_instr microblaze_decode_insn (long, int *, int *,
int *, int *);
extern unsigned long microblaze_get_target_address (long, bfd_boolean, int,
@@ -31,4 +35,8 @@ extern enum microblaze_instr get_insn_microblaze (long, bfd_boolean *,
enum microblaze_instr_type *,
short *);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* microblaze-dis.h */
--
1.9.3