aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2015-02-11 10:04:47 +0000
committerPedro Alves <palves@redhat.com>2015-02-11 10:04:47 +0000
commit55172d69d08941ecb3bb1abd640f22abca10de47 (patch)
treee727a26c1769b18197b714a443972a4f818a2cf0
parent0703599a49d082a957ee233fe018fb6ea7864920 (diff)
downloadfsf-binutils-gdb-55172d69d08941ecb3bb1abd640f22abca10de47.zip
fsf-binutils-gdb-55172d69d08941ecb3bb1abd640f22abca10de47.tar.gz
fsf-binutils-gdb-55172d69d08941ecb3bb1abd640f22abca10de47.tar.bz2
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".
-rw-r--r--bfd/ChangeLog11
-rw-r--r--bfd/doc/ChangeLog5
-rw-r--r--bfd/doc/Makefile.am6
-rw-r--r--bfd/doc/Makefile.in6
-rw-r--r--bfd/elf-bfd.h7
-rw-r--r--bfd/libbfd-in.h4
-rw-r--r--bfd/libbfd.h7
-rw-r--r--bfd/libcoff-in.h4
-rw-r--r--bfd/libcoff.h7
-rw-r--r--bfd/mach-o.h8
-rw-r--r--bfd/som.h7
11 files changed, 72 insertions, 0 deletions
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 */