Wrap BFD headers in extern "C"
authorPedro Alves <palves@redhat.com>
Wed, 11 Feb 2015 10:04:47 +0000 (10:04 +0000)
committerPedro Alves <palves@redhat.com>
Wed, 11 Feb 2015 10:04:47 +0000 (10:04 +0000)
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".

bfd/ChangeLog
bfd/doc/ChangeLog
bfd/doc/Makefile.am
bfd/doc/Makefile.in
bfd/elf-bfd.h
bfd/libbfd-in.h
bfd/libbfd.h
bfd/libcoff-in.h
bfd/libcoff.h
bfd/mach-o.h
bfd/som.h

index d5b50b70bf131d3fd5cc1c73175d0c8c52a1689a..3d575f2ffbe1a0c97023d4c038091941cfc23815 100644 (file)
@@ -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
index fe3d6913ac1cdb7613a5acd8e7dc9256854a7d10..07682dae3c332b3fda3e55c1f28347fb4f057cfb 100644 (file)
@@ -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>
 
index 779f361093120e437cf9b64f2b01b8a12ebc8a07..52da14e2a50a0a984eb050cd6afed5c60ca5634a 100644 (file)
@@ -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           \
index 78d8ec058823bfd08ebba978ce128d8541e19985..72099f1025c719a0a54dac6d5cde5109d20f8e40 100644 (file)
@@ -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 > $@
index 49ffe797af5277892179e841a6f5e2d45d4406f7..495053d79fdadc060dd24db4b686cc628abd112d 100644 (file)
 #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_ */
index cb7805f01ea32c69d16e124a37edc7f05ab1ed19..7c661e34797c0d0c1b877f2ba50137df6af87c3f 100644 (file)
 
 #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
index a1c0a01cc710d1a9d4727f3ff1a8e95652c190b1..bd56afbefb9981bc9b023fea07d1397b7686179d 100644 (file)
 
 #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
index 6d00db0cfc7581c3b2bf107adfd0a7dbf2fa2cba..34e71a894478c6b90afc7ebdd46b42c2aa1f980f 100644 (file)
 #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)
index df0e00f65ae13690310a97870d9c92c5cb060d37..ee72de3c98b2d4e52970a7ec2a031197a19ff7b6 100644 (file)
 #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
index bc694ba5d445465d97cfafe31e2597b9550356f6..0445398932ac8a1f68a75a788cf04bc04f66d16f 100644 (file)
 #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_ */
index a30010483eecb60e780d1511429a8950e14c2655..7f8a5baab76be3957439564f8753352d2a052064 100644 (file)
--- a/bfd/som.h
+++ b/bfd/som.h
 #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 */