Kyle McMartin cd1fc13
commit eea6dad2b3ae91189caa91145dd133bae0398d21
Kyle McMartin cd1fc13
Author: Kyle McMartin <kyle@redhat.com>
Kyle McMartin cd1fc13
Date:   Fri Jun 20 11:14:09 2014 +0100
Kyle McMartin cd1fc13
Kyle McMartin cd1fc13
    Similarly to the AArch64 patch, set DF_STATIC_TLS for consistency with
Kyle McMartin cd1fc13
    other architectures when we emit IE relocs in a shared library.
Kyle McMartin cd1fc13
    
Kyle McMartin cd1fc13
    	* elf32-arm.c (elf32_arm_check_relocs): Set DF_STATIC_TLS when
Kyle McMartin cd1fc13
    	emitting initial-exec relocs when not linking an executable.
Kyle McMartin cd1fc13
Kyle McMartin cd1fc13
--- a/bfd/elf32-arm.c
Kyle McMartin cd1fc13
+++ b/bfd/elf32-arm.c
Kyle McMartin cd1fc13
@@ -12711,6 +12711,9 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info,
Kyle McMartin cd1fc13
 		default: tls_type = GOT_NORMAL; break;
Kyle McMartin cd1fc13
 		}
Kyle McMartin cd1fc13
 
Kyle McMartin cd1fc13
+	      if (!info->executable && (tls_type & GOT_TLS_IE))
Kyle McMartin cd1fc13
+		info->flags |= DF_STATIC_TLS;
Kyle McMartin cd1fc13
+
Kyle McMartin cd1fc13
 	      if (h != NULL)
Kyle McMartin cd1fc13
 		{
Kyle McMartin cd1fc13
 		  h->got.refcount++;
Kyle McMartin cd1fc13
--- a/ld/testsuite/ld-arm/tls-gdierelax2.d
Kyle McMartin cd1fc13
+++ b/ld/testsuite/ld-arm/tls-gdierelax2.d
Kyle McMartin cd1fc13
@@ -11,13 +11,13 @@ Disassembly of section .text:
Kyle McMartin cd1fc13
     [0-9a-f]+:	e59f0004 	ldr	r0, \[pc, #4\]	; .*
Kyle McMartin cd1fc13
     [0-9a-f]+:	e79f0000 	ldr	r0, \[pc, r0\]
Kyle McMartin cd1fc13
     [0-9a-f]+:	e1a00000 	nop			; .*
Kyle McMartin cd1fc13
-    [0-9a-f]+:	00008098 	.word	0x00008098
Kyle McMartin cd1fc13
-    [0-9a-f]+:	0000809c 	.word	0x0000809c
Kyle McMartin cd1fc13
+    [0-9a-f]+:	000080a0 	.word	0x000080a0
Kyle McMartin cd1fc13
+    [0-9a-f]+:	000080a4 	.word	0x000080a4
Kyle McMartin cd1fc13
 
Kyle McMartin cd1fc13
 [0-9a-f]+ <bar>:
Kyle McMartin cd1fc13
     [0-9a-f]+:	4801      	ldr	r0, \[pc, #4\]	; .*
Kyle McMartin cd1fc13
     [0-9a-f]+:	4478      	add	r0, pc
Kyle McMartin cd1fc13
     [0-9a-f]+:	6800      	ldr	r0, \[r0, #0\]
Kyle McMartin cd1fc13
     [0-9a-f]+:	46c0      	nop			; .*
Kyle McMartin cd1fc13
-    [0-9a-f]+:	0000808a 	.word	0x0000808a
Kyle McMartin cd1fc13
-    [0-9a-f]+:	0000808c 	.word	0x0000808c
Kyle McMartin cd1fc13
+    [0-9a-f]+:	00008092 	.word	0x00008092
Kyle McMartin cd1fc13
+    [0-9a-f]+:	00008094 	.word	0x00008094