This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Wrap a few opcodes headers in extern "C" for C++


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]