aboutsummaryrefslogtreecommitdiff
path: root/bfd/arc-plt.h
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@gmail.com>2023-09-25 17:03:06 +0300
committerClaudiu Zissulescu <claziss@gmail.com>2023-09-25 17:03:06 +0300
commitd9d85c086f5ceed7662572ff101bf6e1b74544a5 (patch)
tree4211a91da1d9cfa8d53618916290fae346056493 /bfd/arc-plt.h
parent7f2b40892ac65feddf8d532548f0fff0af01a3e9 (diff)
downloadgdb-d9d85c086f5ceed7662572ff101bf6e1b74544a5.zip
gdb-d9d85c086f5ceed7662572ff101bf6e1b74544a5.tar.gz
gdb-d9d85c086f5ceed7662572ff101bf6e1b74544a5.tar.bz2
Revert "arc: Add new ARCv3 ISA to BFD."
This reverts commit 06e8d9861d16c5b7e6920ad0e89889ccf45c575a.
Diffstat (limited to 'bfd/arc-plt.h')
-rw-r--r--bfd/arc-plt.h93
1 files changed, 83 insertions, 10 deletions
diff --git a/bfd/arc-plt.h b/bfd/arc-plt.h
index ad1b86f..e11b72e 100644
--- a/bfd/arc-plt.h
+++ b/bfd/arc-plt.h
@@ -22,9 +22,6 @@
#ifndef ARC_PLT_H
#define ARC_PLT_H
-#include "sysdep.h"
-#include "bfd.h"
-
/* Instructions appear in memory as a sequence of half-words (16 bit);
individual half-words are represented on the target in target byte order.
We use 'unsigned short' on the host to represent the PLT templates,
@@ -95,15 +92,47 @@ struct plt_version_t
};
#define PLT_TYPE_START(NAME) \
- extern const insn_hword NAME##_plt_entry[]; \
- extern const struct plt_reloc NAME##_plt_entry_relocs[]; \
- extern const insn_hword NAME##_plt_elem[]; \
- extern const struct plt_reloc NAME##_plt_elem_relocs[];
+ const insn_hword NAME##_plt_entry[] = {
+#define PLT_TYPE_END(NAME) };
+#define PLT_ENTRY(...) __VA_ARGS__,
+#define PLT_ELEM(...)
+#define ENTRY_RELOC(...)
+#define ELEM_RELOC(...)
+#include "arc-plt.def"
-#define PLT_TYPE_END(NAME)
+#undef PLT_TYPE_START
+#undef PLT_TYPE_END
+#undef PLT_ENTRY
+#undef PLT_ELEM
+#undef ENTRY_RELOC
+#undef ELEM_RELOC
+
+#define PLT_TYPE_START(NAME) \
+ const struct plt_reloc NAME##_plt_entry_relocs[] = {
+#define PLT_TYPE_END(NAME) \
+ {0, 0, 0, LAST_RELOC, 0} \
+ };
#define PLT_ENTRY(...)
#define PLT_ELEM(...)
+#define ENTRY_RELOC(...) { __VA_ARGS__ },
+#define ELEM_RELOC(...)
+
+#include "arc-plt.def"
+
+#undef PLT_TYPE_START
+#undef PLT_TYPE_END
+#undef PLT_ENTRY
+#undef PLT_ELEM
+#undef ENTRY_RELOC
+#undef ELEM_RELOC
+
+
+#define PLT_TYPE_START(NAME) \
+ const insn_hword NAME##_plt_elem[] = {
+#define PLT_TYPE_END(NAME) };
+#define PLT_ENTRY(...)
+#define PLT_ELEM(...) __VA_ARGS__,
#define ENTRY_RELOC(...)
#define ELEM_RELOC(...)
@@ -116,6 +145,50 @@ struct plt_version_t
#undef ENTRY_RELOC
#undef ELEM_RELOC
-extern struct plt_version_t plt_versions[PLT_MAX];
+#define PLT_TYPE_START(NAME) \
+ const struct plt_reloc NAME##_plt_elem_relocs[] = {
+#define PLT_TYPE_END(NAME) \
+ {0, 0, 0, LAST_RELOC, 0} \
+ };
+#define PLT_ENTRY(...)
+#define PLT_ELEM(...)
+#define ENTRY_RELOC(...)
+#define ELEM_RELOC(...) { __VA_ARGS__ },
+
+#include "arc-plt.def"
+
+#undef PLT_TYPE_START
+#undef PLT_TYPE_END
+#undef PLT_ENTRY
+#undef PLT_ELEM
+#undef ENTRY_RELOC
+#undef ELEM_RELOC
+
+
+#define PLT_TYPE_START(NAME) \
+ { \
+ .entry = &NAME##_plt_entry, \
+ .entry_size = sizeof (NAME##_plt_entry), \
+ .elem = &NAME##_plt_elem, \
+ .elem_size = sizeof (NAME##_plt_elem), \
+ .entry_relocs = NAME##_plt_entry_relocs, \
+ .elem_relocs = NAME##_plt_elem_relocs
+#define PLT_TYPE_END(NAME) },
+#define PLT_ENTRY(...)
+#define PLT_ELEM(...)
+#define ENTRY_RELOC(...)
+#define ELEM_RELOC(...)
+const struct plt_version_t plt_versions[PLT_MAX] = {
+
+#include "arc-plt.def"
+
+};
+#undef PLT_TYPE_START
+#undef PLT_TYPE_END
+#undef PLT_ENTRY
+#undef PLT_ELEM
+#undef ENTRY_RELOC
+#undef ELEM_RELOC
+
-#endif
+#endif /* ARC_PLT_H */