The AArch64 ELF ABI [1] requires DTPREL relocations to be
8 bytes wide, so added a check to reject %dtprel when used
with anything other than .xword.
[1] https://github.com/ARM-software/abi-aa/blob/main/aaelf64/aaelf64.rst#5715dynamic-relocations
expression (&exp);
+ if (nbytes != 8)
+ {
+ as_bad (_("%%dtprel relocation requires .xword or .dword"));
+ ignore_rest_of_line ();
+ return;
+ }
+
/* Ensure we have a closing parenthesis */
if (*input_line_pointer == ')')
input_line_pointer++;
--- /dev/null
+#as:
+#objdump: -r
+#target: aarch64*-*-*
+#error_output: tls-debug-bad.l
--- /dev/null
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: %dtprel relocation requires \.xword or \.dword
--- /dev/null
+.section .tdata,"awT",@progbits
+.globl var
+var:
+ .word 0
+
+.section .debug_info,"",@progbits
+ .word %dtprel(var)