aboutsummaryrefslogtreecommitdiff
path: root/include/coff
diff options
context:
space:
mode:
authorClément Chigot <clement.chigot@atos.net>2021-03-11 11:08:18 +0100
committerAlan Modra <amodra@gmail.com>2021-03-12 22:08:20 +1030
commit2c1bef53dee85aede31e6de6fa8276d6869f6512 (patch)
tree0d3903dfd673a797ed2c8f38557f8fc06ac424d1 /include/coff
parent0c929e83c1fdb29e553021b1d03565862accfd2d (diff)
downloadgdb-2c1bef53dee85aede31e6de6fa8276d6869f6512.zip
gdb-2c1bef53dee85aede31e6de6fa8276d6869f6512.tar.gz
gdb-2c1bef53dee85aede31e6de6fa8276d6869f6512.tar.bz2
aix: correct HOWTO table and add missing relocations
Since the last time AIX HOWTO table was modified, IBM has now released an official documentation about XCOFF relocations. This commit corrects the wrong ones and add some missing. For now, the "custom" relocations made for xcoff_rtype2howto have been kept. The new relocations are still set as EMPTY_HOWTO because they will be implemented in later commits. In xcoff[64]_ppc_relocate_section, instead of recreating howto from scratch, it's better to use the existing howto from the table and fixing it according to r_size field. bfd/ * coff-rs6000.c (xcoff_calculate_relocation): Correct and add new relocations. (xcoff_howto_table): Likewise. (xcoff_rtype2howto): Increase r_type maximum value. (xcoff_ppc_relocate_section): Reuse predefined HOWTOs instead of create a new one from scratch. Enable only some relocations to have a changing r_size. * coff64-rs6000.c (xcoff64_calculate_relocation): Likewise. (xcoff64_howto_table): Likewise. (xcoff64_rtype2howto): Likewise. (xcoff64_ppc_relocate_section): Likewise. * libxcoff.h (XCOFF_MAX_CALCULATE_RELOCATION): Fix value. binutils/ * od-xcoff.c: Replace RTB by TRL entry. include/ * coff/xcoff.h (R_RTB): Remove. (R_TRL): Fix value.
Diffstat (limited to 'include/coff')
-rw-r--r--include/coff/xcoff.h53
1 files changed, 26 insertions, 27 deletions
diff --git a/include/coff/xcoff.h b/include/coff/xcoff.h
index 50ac0df..36651d4 100644
--- a/include/coff/xcoff.h
+++ b/include/coff/xcoff.h
@@ -97,36 +97,35 @@
The relocations are described in the function
xcoff[64]_ppc_relocate_section in coff64-rs6000.c and coff-rs6000.c */
-#define R_POS (0x00)
-#define R_NEG (0x01)
-#define R_REL (0x02)
-#define R_TOC (0x03)
-#define R_RTB (0x04)
-#define R_GL (0x05)
-#define R_TCL (0x06)
-#define R_BA (0x08)
-#define R_BR (0x0a)
-#define R_RL (0x0c)
-#define R_RLA (0x0d)
-#define R_REF (0x0f)
-#define R_TRL (0x12)
-#define R_TRLA (0x13)
-#define R_RRTBI (0x14)
-#define R_RRTBA (0x15)
-#define R_CAI (0x16)
-#define R_CREL (0x17)
-#define R_RBA (0x18)
-#define R_RBAC (0x19)
-#define R_RBR (0x1a)
-#define R_RBRC (0x1b)
-#define R_TLS (0x20)
+#define R_POS (0x00)
+#define R_NEG (0x01)
+#define R_REL (0x02)
+#define R_TOC (0x03)
+#define R_TRL (0x04)
+#define R_GL (0x05)
+#define R_TCL (0x06)
+#define R_BA (0x08)
+#define R_BR (0x0a)
+#define R_RL (0x0c)
+#define R_RLA (0x0d)
+#define R_REF (0x0f)
+#define R_TRLA (0x13)
+#define R_RRTBI (0x14)
+#define R_RRTBA (0x15)
+#define R_CAI (0x16)
+#define R_CREL (0x17)
+#define R_RBA (0x18)
+#define R_RBAC (0x19)
+#define R_RBR (0x1a)
+#define R_RBRC (0x1b)
+#define R_TLS (0x20)
#define R_TLS_IE (0x21)
#define R_TLS_LD (0x22)
#define R_TLS_LE (0x23)
-#define R_TLSM (0x24)
-#define R_TLSML (0x25)
-#define R_TOCU (0x30)
-#define R_TOCL (0x31)
+#define R_TLSM (0x24)
+#define R_TLSML (0x25)
+#define R_TOCU (0x30)
+#define R_TOCL (0x31)
/* Storage class #defines, from /usr/include/storclass.h that are not already
defined in internal.h */