This is the mail archive of the binutils-cvs@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]

[binutils-gdb] Wrap BFD headers in extern "C"


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=55172d69d08941ecb3bb1abd640f22abca10de47

commit 55172d69d08941ecb3bb1abd640f22abca10de47
Author: Pedro Alves <palves@redhat.com>
Date:   Wed Feb 11 10:04:47 2015 +0000

    Wrap BFD headers in extern "C"
    
    These were the BFD changes needed for building a C++ GDB with
    --enable-targets=all, on x86_64 Fedora 20.
    
    For libbfd.h and libcoff.h, this does same as already done when
    generating bfd.h: open extern "C" in the -in.h header, and close it
    from the Makefile.
    
    bfd/doc/ChangeLog:
    2015-02-11  Pedro Alves  <palves@redhat.com>
    
    	* Makefile.am (libbfd.h, libcoff.h): Close extern "C" scope.
    	* Makefile.in: Regenerate.
    
    bfd/ChangeLog:
    2015-02-11  Pedro Alves  <palves@redhat.com>
    
    	* libbfd-in.h [__cplusplus]: Open extern "C" scope.
    	* libcoff-in.h [__cplusplus]: Open extern "C" scope.
    	* libbfd.h: Regenerate.
    	* libcoff.h: Regenerate.
    
    	* elf-bfd.h [__cplusplus]: Wrap in extern "C".
    	* mach-o.h [__cplusplus]: Wrap in extern "C".
    	* som.h [__cplusplus]: Wrap in extern "C".

Diff:
---
 bfd/ChangeLog       | 11 +++++++++++
 bfd/doc/ChangeLog   |  5 +++++
 bfd/doc/Makefile.am |  6 ++++++
 bfd/doc/Makefile.in |  6 ++++++
 bfd/elf-bfd.h       |  7 +++++++
 bfd/libbfd-in.h     |  4 ++++
 bfd/libbfd.h        |  7 +++++++
 bfd/libcoff-in.h    |  4 ++++
 bfd/libcoff.h       |  7 +++++++
 bfd/mach-o.h        |  8 ++++++++
 bfd/som.h           |  7 +++++++
 11 files changed, 72 insertions(+)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d5b50b7..3d575f2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,14 @@
+2015-02-11  Pedro Alves  <palves@redhat.com>
+
+	* libbfd-in.h [__cplusplus]: Open extern "C" scope.
+	* libcoff-in.h [__cplusplus]: Open extern "C" scope.
+	* libbfd.h: Regenerate.
+	* libcoff.h: Regenerate.
+
+	* elf-bfd.h [__cplusplus]: Wrap in extern "C".
+	* mach-o.h [__cplusplus]: Wrap in extern "C".
+	* som.h [__cplusplus]: Wrap in extern "C".
+
 2015-02-10  Nick Clifton  <nickc@redhat.com>
 
 	PR binutils/17512
diff --git a/bfd/doc/ChangeLog b/bfd/doc/ChangeLog
index fe3d691..07682da 100644
--- a/bfd/doc/ChangeLog
+++ b/bfd/doc/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-11  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.am (libbfd.h, libcoff.h): Close extern "C" scope.
+	* Makefile.in: Regenerate.
+
 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 	    Alan Modra  <amodra@gmail.com>
 
diff --git a/bfd/doc/Makefile.am b/bfd/doc/Makefile.am
index 779f361..52da14e 100644
--- a/bfd/doc/Makefile.am
+++ b/bfd/doc/Makefile.am
@@ -275,6 +275,9 @@ libbfd.h: $(LIBBFD_H_DEP)
 		./$(MKDOC) -i -f $(srcdir)/proto.str < $$file >> $@ ;; \
 	  esac; \
 	done
+	echo "#ifdef __cplusplus" >> $@
+	echo "}" >> $@
+	echo "#endif" >> $@
 
 LIBCOFF_H_DEP = \
 	$(srcdir)/../libcoff-in.h	\
@@ -294,6 +297,9 @@ libcoff.h: $(LIBCOFF_H_DEP)
 		./$(MKDOC) -i -f $(srcdir)/proto.str < $$file >> $@ ;; \
 	  esac; \
 	done
+	echo "#ifdef __cplusplus" >> $@
+	echo "}" >> $@
+	echo "#endif" >> $@
 
 BFD_H_DEP = \
 	$(srcdir)/../bfd-in.h 		\
diff --git a/bfd/doc/Makefile.in b/bfd/doc/Makefile.in
index 78d8ec0..72099f1 100644
--- a/bfd/doc/Makefile.in
+++ b/bfd/doc/Makefile.in
@@ -960,6 +960,9 @@ libbfd.h: $(LIBBFD_H_DEP)
 		./$(MKDOC) -i -f $(srcdir)/proto.str < $$file >> $@ ;; \
 	  esac; \
 	done
+	echo "#ifdef __cplusplus" >> $@
+	echo "}" >> $@
+	echo "#endif" >> $@
 
 libcoff.h: $(LIBCOFF_H_DEP)
 	echo "$(LIBCOFF_H_DEP)" | sed -f $(srcdir)/header.sed > $@
@@ -972,6 +975,9 @@ libcoff.h: $(LIBCOFF_H_DEP)
 		./$(MKDOC) -i -f $(srcdir)/proto.str < $$file >> $@ ;; \
 	  esac; \
 	done
+	echo "#ifdef __cplusplus" >> $@
+	echo "}" >> $@
+	echo "#endif" >> $@
 
 bfd.h: $(BFD_H_DEP)
 	echo "$(BFD_H_DEP)" | sed -f $(srcdir)/header.sed > $@
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 49ffe79..495053d 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -27,6 +27,10 @@
 #include "elf/internal.h"
 #include "bfdlink.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* The number of entries in a section is its size divided by the size
    of a single entry.  This is normally only applicable to reloc and
    symbol table sections.
@@ -2540,4 +2544,7 @@ extern asection _bfd_elf_large_com_section;
     (!(H)->unique_global \
      && ((INFO)->symbolic || ((INFO)->dynamic && !(H)->dynamic)))
 
+#ifdef __cplusplus
+}
+#endif
 #endif /* _LIBELF_H_ */
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
index cb7805f..7c661e3 100644
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -24,6 +24,10 @@
 
 #include "hashtab.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Align an address upward to a boundary, expressed as a number of bytes.
    E.g. align to an 8-byte boundary with argument of 8.  Take care never
    to wrap around if the address is within boundary-1 of the end of the
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index a1c0a01..bd56afb 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -29,6 +29,10 @@
 
 #include "hashtab.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Align an address upward to a boundary, expressed as a number of bytes.
    E.g. align to an 8-byte boundary with argument of 8.  Take care never
    to wrap around if the address is within boundary-1 of the end of the
@@ -3015,3 +3019,6 @@ void *bfd_arch_default_fill (bfd_size_type count,
     bfd_boolean code);
 
 /* Extracted from elf.c.  */
+#ifdef __cplusplus
+}
+#endif
diff --git a/bfd/libcoff-in.h b/bfd/libcoff-in.h
index 6d00db0..34e71a8 100644
--- a/bfd/libcoff-in.h
+++ b/bfd/libcoff-in.h
@@ -22,6 +22,10 @@
 #include "bfdlink.h"
 #include "coff-bfd.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Object file tdata; access macros.  */
 
 #define coff_data(bfd)		      ((bfd)->tdata.coff_obj_data)
diff --git a/bfd/libcoff.h b/bfd/libcoff.h
index df0e00f..ee72de3 100644
--- a/bfd/libcoff.h
+++ b/bfd/libcoff.h
@@ -26,6 +26,10 @@
 #include "bfdlink.h"
 #include "coff-bfd.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Object file tdata; access macros.  */
 
 #define coff_data(bfd)		      ((bfd)->tdata.coff_obj_data)
@@ -951,3 +955,6 @@ typedef struct
    PE object file.  */
 #define bfd_pei_p(abfd) \
   (CONST_STRNEQ ((abfd)->xvec->name, "pei-"))
+#ifdef __cplusplus
+}
+#endif
diff --git a/bfd/mach-o.h b/bfd/mach-o.h
index bc694ba..0445398 100644
--- a/bfd/mach-o.h
+++ b/bfd/mach-o.h
@@ -24,6 +24,10 @@
 #include "bfd.h"
 #include "mach-o/loader.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct bfd_mach_o_header
 {
   unsigned long magic;
@@ -746,4 +750,8 @@ bfd_mach_o_backend_data;
 #define SYM_MACHO_FIELDS_UNSET ((bfd_vma) -1)
 #define SYM_MACHO_FIELDS_NOT_VALIDATED ((bfd_vma) -2)
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* _BFD_MACH_O_H_ */
diff --git a/bfd/som.h b/bfd/som.h
index a300104..7f8a5ba 100644
--- a/bfd/som.h
+++ b/bfd/som.h
@@ -40,6 +40,10 @@
 #include <dl.h>
 #endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #if defined (HOST_HPPABSD) || defined (HOST_HPPAOSF)
 /* BSD uses a completely different scheme for object file identification.
    so for now, define _PA_RISC_ID to accept any random value for a model
@@ -235,4 +239,7 @@ int **       hppa_som_gen_reloc_type           (bfd *, int, int, enum hppa_reloc
 bfd_boolean  bfd_som_attach_compilation_unit   (bfd *, const char *, const char *, const char *, const char *);
 asection *   bfd_section_from_som_symbol       (bfd *abfd, struct som_external_symbol_dictionary_record *symbol);
 
+#ifdef __cplusplus
+}
+#endif
 #endif /* _SOM_H */


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