ld/
authorNathan Sidwell <nathan@codesourcery.com>
Wed, 7 Nov 2007 12:10:33 +0000 (12:10 +0000)
committerNathan Sidwell <nathan@codesourcery.com>
Wed, 7 Nov 2007 12:10:33 +0000 (12:10 +0000)
* emulparams/vxworks.sh (OTHER_READONLY_SECTIONS,
OTHER_READWRITE_SECTIONS): Add TLS sections.

ld/testsuite/
* ld-vxworks/tls-1.d: New.
* ld-vxworks/tls-1.s: New.

ld/ChangeLog
ld/emulparams/vxworks.sh
ld/testsuite/ChangeLog
ld/testsuite/ld-vxworks/tls-1.d [new file with mode: 0644]
ld/testsuite/ld-vxworks/tls-1.s [new file with mode: 0644]

index 74eacabd33d70393418d9c6b60565bb8fcbd9de2..eaf3d9d2556f26d8bb507412aea9f54b3150999c 100644 (file)
@@ -1,3 +1,8 @@
+2007-11-07  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * emulparams/vxworks.sh (OTHER_READONLY_SECTIONS,
+       OTHER_READWRITE_SECTIONS): Add TLS sections.
+
 2007-11-06  Kai Tietz  <kai.tietz@onevision.com>
 
        * emultempl/pe.em: (init): Add __ImageBase symbol.
index 6e399ea87ac6d04dcdacd87b0be5653591122067..74a11ac67c0dabc9a4edbd632e4d61aad99f0268 100644 (file)
@@ -22,6 +22,24 @@ FINI_START='_fini = .;
 FINI_END="KEEP (*(.fini\$99));
           PROVIDE (${SYMPREFIX}_etext = .);"
 
+OTHER_READONLY_SECTIONS=".tls_data ${RELOCATING-0} : {${RELOCATING+
+    __wrs_rtp_tls_data_start = .;
+    ___wrs_rtp_tls_data_start = .;}
+    *(.tls_data${RELOCATING+ .tls_data.*})
+  }${RELOCATING+
+  __wrs_rtp_tls_data_size = . - __wrs_rtp_tls_data_start;
+  ___wrs_rtp_tls_data_size = . - __wrs_rtp_tls_data_start;
+  __wrs_rtp_tls_data_align = ALIGNOF(.tls_data);
+  ___wrs_rtp_tls_data_align = ALIGNOF(.tls_data);}"
+
+OTHER_READWRITE_SECTIONS=".tls_vars ${RELOCATING-0} : {${RELOCATING+
+    __wrs_rtp_tls_vars_start = .;
+    ___wrs_rtp_tls_vars_start = .;}
+    *(.tls_vars${RELOCATING+ .tls_vars.*})
+  }${RELOCATING+
+  __wrs_rtp_tls_vars_size = SIZEOF(.tls_vars);
+  ___wrs_rtp_tls_vars_size = SIZEOF(.tls_vars);}"
+
 ETEXT_NAME=etext_unrelocated
 OTHER_END_SYMBOLS="PROVIDE (${SYMPREFIX}_ehdr = ${TEXT_START_ADDR});"
 DATA_END_SYMBOLS=".edata : { PROVIDE (${SYMPREFIX}_edata = .); }"
index e748cf6f80638a979beae76d80e306db5375bff1..4da2964ef466537132c9bb33100d13319a35302b 100644 (file)
@@ -1,3 +1,8 @@
+2007-11-07  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * ld-vxworks/tls-1.d: New.
+       * ld-vxworks/tls-1.s: New.
+
 2007-11-06  Alan Modra  <amodra@bigpond.net.au>
 
        * ld-powerpc/tlsso.d: Update for changed got alloc order.
diff --git a/ld/testsuite/ld-vxworks/tls-1.d b/ld/testsuite/ld-vxworks/tls-1.d
new file mode 100644 (file)
index 0000000..cb5e695
--- /dev/null
@@ -0,0 +1,25 @@
+# source: tls-1.s
+# ld: --entry foo -q
+# nm: -r
+
+#...
+[0-9a-f]+ N __wrs_rtp_tls_vars_start
+#...
+0000000c A __wrs_rtp_tls_vars_size
+#...
+[0-9a-f]+ N __wrs_rtp_tls_data_start
+#...
+00000004 A __wrs_rtp_tls_data_size
+#...
+00000004 A __wrs_rtp_tls_data_align
+#...
+[0-9a-f]+ N ___wrs_rtp_tls_vars_start
+#...
+0000000c A ___wrs_rtp_tls_vars_size
+#...
+[0-9a-f]+ N ___wrs_rtp_tls_data_start
+#...
+00000004 A ___wrs_rtp_tls_data_size
+#...
+00000004 A ___wrs_rtp_tls_data_align
+#pass
diff --git a/ld/testsuite/ld-vxworks/tls-1.s b/ld/testsuite/ld-vxworks/tls-1.s
new file mode 100644 (file)
index 0000000..8fa97ab
--- /dev/null
@@ -0,0 +1,19 @@
+       .globl  foo
+foo:
+
+       .section        .tls_data
+       .p2align        2
+       .type   i,%object
+       .size   i,4
+i:
+       .space  4
+       .globl  __tls__i
+       .section        .tls_vars
+       .p2align        2
+       .type   __tls__i,%object
+       .size   __tls__i,12
+__tls__i:
+       .4byte  i
+       .4byte  0
+       .4byte  4
+