aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2008-10-04 17:16:30 +0000
committerHans-Peter Nilsson <hp@axis.com>2008-10-04 17:16:30 +0000
commit1d0376927290381af7edc73c6d0175fbf6699156 (patch)
tree0444bebe241e8f3a29e545977c2009b3ddbceaf1
parentc1828f258e29ed6d1470d8954a01369efed2108a (diff)
downloadgdb-1d0376927290381af7edc73c6d0175fbf6699156.zip
gdb-1d0376927290381af7edc73c6d0175fbf6699156.tar.gz
gdb-1d0376927290381af7edc73c6d0175fbf6699156.tar.bz2
* cris.h (R_CRIS_32_GOT_GD, R_CRIS_16_GOT_GD, R_CRIS_32_GD)
(R_CRIS_DTP, R_CRIS_32_DTPREL, R_CRIS_16_DTPREL, R_CRIS_DTPMOD) (R_CRIS_32_GOT_TPREL, R_CRIS_16_GOT_TPREL, R_CRIS_32_TPREL) (R_CRIS_16_TPREL): New relocations.
-rw-r--r--include/elf/ChangeLog7
-rw-r--r--include/elf/cris.h76
2 files changed, 83 insertions, 0 deletions
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index ae259dc..8d8bcdf 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,3 +1,10 @@
+2008-10-04 Hans-Peter Nilsson <hp@axis.com>
+
+ * cris.h (R_CRIS_32_GOT_GD, R_CRIS_16_GOT_GD, R_CRIS_32_GD)
+ (R_CRIS_DTP, R_CRIS_32_DTPREL, R_CRIS_16_DTPREL, R_CRIS_DTPMOD)
+ (R_CRIS_32_GOT_TPREL, R_CRIS_16_GOT_TPREL, R_CRIS_32_TPREL)
+ (R_CRIS_16_TPREL): New relocations.
+
2008-08-20 Bob Wilson <bob.wilson@acm.org>
* xtensa.h (R_XTENSA_TLSDESC_FN, R_XTENSA_TLSDESC_ARG)
diff --git a/include/elf/cris.h b/include/elf/cris.h
index 8225baa..550955d 100644
--- a/include/elf/cris.h
+++ b/include/elf/cris.h
@@ -91,6 +91,82 @@ START_RELOC_NUMBERS (elf_cris_reloc_type)
The BFD equivalent is BFD_RELOC_CRIS_32_PLT_PCREL. */
RELOC_NUMBER (R_CRIS_32_PLT_PCREL, 19)
+ /* An assembler-generated-only relocation, instructing the linker to
+ reserve two GOT slots, carrying the R_CRIS_DTP relocation for the
+ symbol (pointing to the first slot, the relocation fills in
+ both). The value is a 32-bit-value, relative to the start of the
+ GOT. Assembly syntax: "sym:GDGOTREL". */
+ RELOC_NUMBER (R_CRIS_32_GOT_GD, 20)
+
+ /* Similar to R_CRIS_32_GOT_GD, but the value is a 16-bit unsigned
+ number, limiting access to 65536/4 global symbols per module (or
+ 65536/8 thread variables; loosely speaking G*4+T*8 < 65536, where
+ T is the number of thread variables and G is the number of other
+ external global variables and functions). Assembly syntax:
+ "sym:GDGOTREL16". */
+ RELOC_NUMBER (R_CRIS_16_GOT_GD, 21)
+
+ /* Similar to R_CRIS_32_GOT_GD, but the value is the absolute
+ address of the GOT entry. Disallowed in DSOs created with
+ -shared. Assembly syntax: "sym:GD". */
+ RELOC_NUMBER (R_CRIS_32_GD, 22)
+
+ /* A linker-generated-only relocation, instructing the dynamic
+ linker to fill in the module ID and module-relative-TLS-block
+ offset of the symbol in question, used for GOT entries. Note
+ that this relocation instructs to fill in two 32-bit values. */
+ RELOC_NUMBER (R_CRIS_DTP, 23)
+
+ /* An assembler-generated-only relocation, instructing the linker to
+ reserve the first two GOT slots, and attach the R_CRIS_DTPMOD
+ relocation(*) for the module to the first slot, the second
+ containing zero. The value is 32 bits, the offset from the start
+ of the TLS block of the module to the thread-local symbol
+ mentioned in the relocation. This relocation must only be applied
+ to module-local symbols. Assembly syntax: "expr:DTPREL". */
+ RELOC_NUMBER (R_CRIS_32_DTPREL, 24)
+
+ /* Similar to R_CRIS_32_DTPREL, but the value is a 16-bit signed
+ number, limiting the size of thread-variables of the DSO to 32768
+ bytes. (Note: matches both model 1 and 2 and allows use of addo.w
+ as the instruction where this relocation is used.) Assembly
+ syntax: "expr:DTPREL16". */
+ RELOC_NUMBER (R_CRIS_16_DTPREL, 25)
+
+ /* An assembler-generated-only relocation, instructing the linker to
+ reserve a GOT slot and attach the R_CRIS_32_TPREL relocation for
+ the symbol in question. The value is 32 bits, which is the
+ GOT-relative offset of the slot. Assembly syntax:
+ "sym:TPOFFGOT". */
+ RELOC_NUMBER (R_CRIS_32_GOT_TPREL, 26)
+
+ /* Similar to R_CRIS_32_TPREL, but the value is a 16-bit positive
+ number, limiting the number of thread- and global variables of
+ the DSO to 32768/4. Assembly syntax: "sym:TPOFFGOT16". */
+ RELOC_NUMBER (R_CRIS_16_GOT_TPREL, 27)
+
+ /* An assembler- and linker-generated relocation, instructing to
+ resolve the symbol in question yielding the TLS offset of the
+ thread variable; relative to the module's TLS data if in a DSO,
+ but relative to the executable's thread data if in an
+ executable. Not allowed as input when generating a DSO. Assembly
+ syntax: "expr:TPOFF". */
+ RELOC_NUMBER (R_CRIS_32_TPREL, 28)
+
+ /* Similar to R_CRIS_32_TPREL, but only applicable to executables
+ compiled with -msmall-tls. Not allowed in a DSO. The value is a
+ 16-bit signed number, limiting the size of thread-variables of
+ the executable to 32768 bytes. (Note: being signed makes it match
+ both model 1 and 2 and allows use of addo.w as the instruction
+ where this relocation is applied.) Assembly syntax:
+ "expr:TPOFF16". */
+ RELOC_NUMBER (R_CRIS_16_TPREL, 29)
+
+ /* A linker-generated-only relocation, instructing the dynamic
+ linker to fill in the current module ID, used for GOT entries
+ (always the fourth one). */
+ RELOC_NUMBER (R_CRIS_DTPMOD, 30)
+
/* No other relocs must be visible outside the assembler. */
END_RELOC_NUMBERS (R_CRIS_max)