diff options
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-arc.c | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/arc/tls-relocs2.d | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/arc/tls-relocs2.s | 12 | ||||
-rw-r--r-- | ld/ChangeLog | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-arc/arc.exp | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-arc/tls-dtpoff.dd | 11 | ||||
-rw-r--r-- | ld/testsuite/ld-arc/tls-dtpoff.rd | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-arc/tls-dtpoff.s | 12 | ||||
-rw-r--r-- | ld/testsuite/ld-arc/tls-relocs.ld | 20 |
10 files changed, 90 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 6544175..12fd861 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2016-09-14 Claudiu Zissulescu <claziss@synopsys.com> + + * testsuite/gas/arc/tls-relocs2.d: New file. + * testsuite/gas/arc/tls-relocs2.s: Likewise. + * config/tc-arc.c (tokenize_arguments): Accept offsets when base + is used. + 2016-09-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/tc-s390.c (s390_parse_cpu): Support alternate arch diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c index 4e4dcb3..58adf0b 100644 --- a/gas/config/tc-arc.c +++ b/gas/config/tc-arc.c @@ -1157,7 +1157,7 @@ tokenize_arguments (char *str, restore_line_pointer (c); tmpE.X_add_number = 0; } - else if ((*input_line_pointer != '+') + if ((*input_line_pointer != '+') && (*input_line_pointer != '-')) { tmpE.X_add_number = 0; diff --git a/gas/testsuite/gas/arc/tls-relocs2.d b/gas/testsuite/gas/arc/tls-relocs2.d new file mode 100644 index 0000000..e52318f --- /dev/null +++ b/gas/testsuite/gas/arc/tls-relocs2.d @@ -0,0 +1,10 @@ +#as: -mcpu=archs +#objdump: -dr + +.*: +file format .*arc.* + + +Disassembly of section .text: + +00000000 <.text>: + 0: 70c3 0000 0804 add_s r0,r0,0x804 diff --git a/gas/testsuite/gas/arc/tls-relocs2.s b/gas/testsuite/gas/arc/tls-relocs2.s new file mode 100644 index 0000000..1f1d045 --- /dev/null +++ b/gas/testsuite/gas/arc/tls-relocs2.s @@ -0,0 +1,12 @@ + .cpu HS +;;; Test if palette is resolved by the assembler. + add_s r0,r0,@palette@dtpoff@.tbss+2048 + + .section .tbss,"awT",@nobits + .align 4 + .zero 4 + .align 4 + .type palette, @object + .size palette, 6144 +palette: + .zero 6144 diff --git a/ld/ChangeLog b/ld/ChangeLog index 58c888d..2a3db2c 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,11 @@ +2016-09-14 Claudiu Zissulescu <claziss@synopsys.com> + + * testsuite/ld-arc/tls-dtpoff.dd: New file. + * testsuite/ld-arc/tls-dtpoff.rd: Likewise. + * testsuite/ld-arc/tls-dtpoff.s: Likewise. + * testsuite/ld-arc/tls-relocs.ld: Likewise. + * testsuite/ld-arc/arc.exp: Add new tdpoff test. + 2016-09-14 Nick Clifton <nickc@redhat.com> PR ld/20537 diff --git a/ld/testsuite/ld-arc/arc.exp b/ld/testsuite/ld-arc/arc.exp index 700edff..fed4d2a 100644 --- a/ld/testsuite/ld-arc/arc.exp +++ b/ld/testsuite/ld-arc/arc.exp @@ -35,6 +35,11 @@ set arccommon_tests { "-q -T sda-relocs.ld -A elf32-arclittle" "" "-mcpu=archs -EL" {sda-relocs.s} {{objdump -fdw sda-relocs.dd} {readelf --relocs sda-relocs.rd}} "sda-relocs.so" } + { "TLS reloc dtpoff" + "-q -T tls-relocs.ld -A elf32-arclittle" "" "-mcpu=archs -EL" + {tls-dtpoff.s} + {{objdump -fdw tls-dtpoff.dd} {readelf --relocs tls-dtpoff.rd}} + "sda-relocs.so" } } run_ld_link_tests $arccommon_tests diff --git a/ld/testsuite/ld-arc/tls-dtpoff.dd b/ld/testsuite/ld-arc/tls-dtpoff.dd new file mode 100644 index 0000000..d27475a --- /dev/null +++ b/ld/testsuite/ld-arc/tls-dtpoff.dd @@ -0,0 +1,11 @@ + +.*: file format .*arc.* +architecture: ARCv2, flags 0x00000113: +HAS_RELOC, EXEC_P, HAS_SYMS, D_PAGED +start address 0x00010000 + + +Disassembly of section .text: + +[0-9a-f]+ <.text>: + [0-9a-f]+: 70c3 0000 0804 add_s r0,r0,0x804 diff --git a/ld/testsuite/ld-arc/tls-dtpoff.rd b/ld/testsuite/ld-arc/tls-dtpoff.rd new file mode 100644 index 0000000..533beea --- /dev/null +++ b/ld/testsuite/ld-arc/tls-dtpoff.rd @@ -0,0 +1,4 @@ + +Relocation section '\.rela\.text' .*: + Offset +Info +Type +Sym.Value +Sym. Name \+ Addend +[0-9a-f]+ [0-9a-f]+ R_ARC_TLS_DTPOFF [0-9a-f]+ palette \+ 800 diff --git a/ld/testsuite/ld-arc/tls-dtpoff.s b/ld/testsuite/ld-arc/tls-dtpoff.s new file mode 100644 index 0000000..d544366 --- /dev/null +++ b/ld/testsuite/ld-arc/tls-dtpoff.s @@ -0,0 +1,12 @@ + .cpu HS +;;; Test if palette is resolved by the linker. + add_s r0,r0,@palette@dtpoff+2048 + + .section .tbss,"awT",@nobits + .align 4 + .zero 4 + .align 4 + .type palette, @object + .size palette, 6144 +palette: + .zero 6144 diff --git a/ld/testsuite/ld-arc/tls-relocs.ld b/ld/testsuite/ld-arc/tls-relocs.ld new file mode 100644 index 0000000..314b0dd --- /dev/null +++ b/ld/testsuite/ld-arc/tls-relocs.ld @@ -0,0 +1,20 @@ +/* Default linker script, for normal executables. */ +OUTPUT_FORMAT("elf32-littlearc", "elf32-bigarc", + "elf32-littlearc") + +OUTPUT_ARCH(arc) +ENTRY(__start) + +SECTIONS +{ + /* Read-only sections, merged into text segment: */ + PROVIDE (__start = 0x10000); + . = 0x10000 + SIZEOF_HEADERS; + + .text : {*(.text .stub .text.*)} =0 + .tdata : {.tdata = .; *(.tdata .tdata.* .gnu.linkonce.td.*) } + .tbss : {.tbss = .; *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } + + /DISCARD/ : { *(.__arc_profile_*) } + /DISCARD/ : { *(.note.GNU-stack) } +} |