diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2007-11-07 12:10:33 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@codesourcery.com> | 2007-11-07 12:10:33 +0000 |
commit | abbda6d05d1dfded890bf0a05dda61e55cf22223 (patch) | |
tree | 1ba1e6e306caf2d37052fb62f29f31b868f46d35 | |
parent | fff279a794cac522ce91ab446f352079f898d438 (diff) | |
download | fsf-binutils-gdb-abbda6d05d1dfded890bf0a05dda61e55cf22223.zip fsf-binutils-gdb-abbda6d05d1dfded890bf0a05dda61e55cf22223.tar.gz fsf-binutils-gdb-abbda6d05d1dfded890bf0a05dda61e55cf22223.tar.bz2 |
ld/
* 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.
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/emulparams/vxworks.sh | 18 | ||||
-rw-r--r-- | ld/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-vxworks/tls-1.d | 25 | ||||
-rw-r--r-- | ld/testsuite/ld-vxworks/tls-1.s | 19 |
5 files changed, 72 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 74eacab..eaf3d9d 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -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. diff --git a/ld/emulparams/vxworks.sh b/ld/emulparams/vxworks.sh index 6e399ea..74a11ac 100644 --- a/ld/emulparams/vxworks.sh +++ b/ld/emulparams/vxworks.sh @@ -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 = .); }" diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index e748cf6..4da2964 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -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 index 0000000..cb5e695 --- /dev/null +++ b/ld/testsuite/ld-vxworks/tls-1.d @@ -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 index 0000000..8fa97ab --- /dev/null +++ b/ld/testsuite/ld-vxworks/tls-1.s @@ -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 + |