summaryrefslogtreecommitdiffstats
path: root/binutils-2.24/ld/testsuite/ld-tic6x
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-03-26 11:03:35 -0700
committerBen Cheng <bccheng@google.com>2014-03-26 11:03:35 -0700
commit09797ba54abf3683ea66eedddf6afbe7653f9cb9 (patch)
tree8030b2ed79c7463c89d6da294782e9d503c84f50 /binutils-2.24/ld/testsuite/ld-tic6x
parent5a2caf34e4995860baf405552163df288000b7bf (diff)
downloadtoolchain_binutils-09797ba54abf3683ea66eedddf6afbe7653f9cb9.zip
toolchain_binutils-09797ba54abf3683ea66eedddf6afbe7653f9cb9.tar.gz
toolchain_binutils-09797ba54abf3683ea66eedddf6afbe7653f9cb9.tar.bz2
Initial checkin of binutils 2.24.
Change-Id: I0dfcbae6608dded6c3586bf5f4ac27e9612e70a2
Diffstat (limited to 'binutils-2.24/ld/testsuite/ld-tic6x')
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-16.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-4.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-416.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-48.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-8.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-816.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16.s2
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-16.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-4.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-416.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-48.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-8.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-816.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4.s2
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-16.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-4.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-416.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-48.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-8.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-816.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416.s2
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-16.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-4.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-416.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-48.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-8.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-816.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48.s2
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-16.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-4.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-416.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-48.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-8.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-816.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8.s2
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-16.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-4.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-416.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-48.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-8.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-816.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816.s2
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-other.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-10.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-11.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-none.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-10.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-11.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-none.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-10.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-11.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-none.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-0.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-00.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-01.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-1.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-10.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-11.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-0.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-00.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-01.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-1.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-10.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-11.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-0.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-00.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-01.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-02.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-1.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-10.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-11.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-12.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-2.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-20.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-21.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-22.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-16.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-8.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-816.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16.s2
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-16.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-8.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-816.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8.s2
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-16.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-8.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-816.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816.s2
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-1.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-2.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1024-1.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-2.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-3.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-4.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-5.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-54-1.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-55-a.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-6.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-7.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-a.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-b.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-0.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-00.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-01.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-02.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-1.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-10.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-11.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-12.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-2.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-20.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-21.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-22.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/common.d28
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/common.ld11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/common.s2
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.s21
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.s23
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-1.s5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-2.s8
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d23
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r.d23
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-rel.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/discard-unwind.ld15
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/dsbt-be.ld67
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index-error.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.d14
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/dsbt-inrange.ld68
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/dsbt-overflow.ld68
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/dsbt.ld67
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1-rel.d14
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.d14
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.s9
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/generic.ld8
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.s11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.s11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global.s11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-inrange.d15
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-1.s8
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-2.s8
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-r.d23
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-overflow.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d20
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s14
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.s20
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1.s12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2.s12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d23
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r.d27
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d19
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local.d21
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.d39
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.s28
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d20
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.d20
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.s18
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s16
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s16
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d62
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d62
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d62
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d44
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local.d44
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s3
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d24
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s24
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.d27
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.s27
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s21
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1.s24
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s21
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2.s24
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d55
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r.d67
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d35
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local.d41
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/sbr.ld9
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shared-nopic.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shared-nopid.d5
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.dd67
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.rd124
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.s44
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.sd7
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.dd67
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.rd124
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.sd7
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.dd67
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.rd124
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.sd7
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.dd67
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.rd124
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.sd7
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-2.s23
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.dd40
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.od13
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.rd128
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.s31
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.sd6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.dd40
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.od13
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.rd128
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.sd6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.dd36
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.od11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.rd116
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.s19
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.sd6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.dd36
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.od11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.rd116
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.sd6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.dd67
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.rd131
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.sd7
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.dd56
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.od14
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.rd114
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.sd6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.dd56
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.od14
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.rd114
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.sd6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.dd52
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.od12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.rd111
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.sd6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.dd52
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.od12
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.rd111
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.sd6
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/tic6x.exp201
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.s25
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.s23
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.s39
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.s68
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.d7
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.s16
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind-6.d13
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/unwind.ld20
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/weak-be.d19
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/weak-data.d11
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/weak.d19
-rw-r--r--binutils-2.24/ld/testsuite/ld-tic6x/weak.s19
339 files changed, 6222 insertions, 0 deletions
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d
new file mode 100644
index 0000000..53da208
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C62x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d
new file mode 100644
index 0000000..49570fe
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x\+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d
new file mode 100644
index 0000000..2ec8b6c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d
new file mode 100644
index 0000000..4500114
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d
new file mode 100644
index 0000000..a7a7c0e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x\+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d
new file mode 100644
index 0000000..2d539df
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x.s
new file mode 100644
index 0000000..e69fbf4
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x.s
@@ -0,0 +1 @@
+.arch c62x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d
new file mode 100644
index 0000000..bd19310
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x\+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d
new file mode 100644
index 0000000..3881215
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x\+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d
new file mode 100644
index 0000000..76a6296
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x\+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d
new file mode 100644
index 0000000..7548fad
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d
new file mode 100644
index 0000000..ba6e135
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d
new file mode 100644
index 0000000..63c4f58
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+.s
new file mode 100644
index 0000000..2c2f210
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+.s
@@ -0,0 +1 @@
+.arch c64x+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d
new file mode 100644
index 0000000..3aaf293
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d
new file mode 100644
index 0000000..7c89f1e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x\+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d
new file mode 100644
index 0000000..9274720
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d
new file mode 100644
index 0000000..529ecef
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d
new file mode 100644
index 0000000..16c8c42
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d
new file mode 100644
index 0000000..55a8391
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x.s
new file mode 100644
index 0000000..438d0f8
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x.s
@@ -0,0 +1 @@
+.arch c64x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d
new file mode 100644
index 0000000..07f0eac
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d
new file mode 100644
index 0000000..81d0946
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d
new file mode 100644
index 0000000..245b4b8
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d
new file mode 100644
index 0000000..50f03a6
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d
new file mode 100644
index 0000000..dbbac9a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d
new file mode 100644
index 0000000..c3140ca
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x.s
new file mode 100644
index 0000000..41b3886
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x.s
@@ -0,0 +1 @@
+.arch c674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d
new file mode 100644
index 0000000..c7ff793
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x\+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d
new file mode 100644
index 0000000..b7d2b53
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d
new file mode 100644
index 0000000..cdee2fe
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d
new file mode 100644
index 0000000..511acb0
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d
new file mode 100644
index 0000000..63685b0
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x\+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d
new file mode 100644
index 0000000..864b6e5
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x\+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+.s
new file mode 100644
index 0000000..f4c22de
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+.s
@@ -0,0 +1 @@
+.arch c67x+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d
new file mode 100644
index 0000000..b230a71
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d
new file mode 100644
index 0000000..99abb3c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d
new file mode 100644
index 0000000..d8313e4
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d
new file mode 100644
index 0000000..2100d40
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d
new file mode 100644
index 0000000..75c4c5b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x\+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d
new file mode 100644
index 0000000..f71c12b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x.s
new file mode 100644
index 0000000..a7e5ba6
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x.s
@@ -0,0 +1 @@
+.arch c67x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-16.d
new file mode 100644
index 0000000..d39e045
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-16.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 16 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-4.d
new file mode 100644
index 0000000..1d38f2a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-4.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 16 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-4.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-416.d
new file mode 100644
index 0000000..ec74ed5
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-416.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 16 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-48.d
new file mode 100644
index 0000000..5ef2908
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-48.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 16 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-48.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-8.d
new file mode 100644
index 0000000..e8228f0
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-8.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 16 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-8.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-816.d
new file mode 100644
index 0000000..14bc984
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-816.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 16 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16.s
new file mode 100644
index 0000000..70401ff
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 2
+.c6xabi_attribute Tag_ABI_array_object_alignment, 2
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-16.d
new file mode 100644
index 0000000..3c2c138
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-16.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 4 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-16.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-4.d
new file mode 100644
index 0000000..920ff10
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-4.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 4 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-4.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 4-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-416.d
new file mode 100644
index 0000000..1b5e516
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-416.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 4 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 4-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-48.d
new file mode 100644
index 0000000..e998162
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-48.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 4 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-48.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 4-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-8.d
new file mode 100644
index 0000000..d8b41c7
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-8.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 4 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-8.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-816.d
new file mode 100644
index 0000000..a4dcc01
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-816.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 4 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-816.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4.s
new file mode 100644
index 0000000..abaa25f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
+.c6xabi_attribute Tag_ABI_array_object_alignment, 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-16.d
new file mode 100644
index 0000000..8168658
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-16.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 416 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-4.d
new file mode 100644
index 0000000..53d4bc7
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-4.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 416 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-4.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 4-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-416.d
new file mode 100644
index 0000000..9ca864d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-416.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 416 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-48.d
new file mode 100644
index 0000000..760a023
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-48.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 416 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-48.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-8.d
new file mode 100644
index 0000000..58a4325
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-8.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 416 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-816.d
new file mode 100644
index 0000000..12b4abc
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-816.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 416 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416.s
new file mode 100644
index 0000000..a9cba9d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
+.c6xabi_attribute Tag_ABI_array_object_alignment, 2
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-16.d
new file mode 100644
index 0000000..68fa058
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-16.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 48 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-16.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-4.d
new file mode 100644
index 0000000..76faefa
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-4.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 48 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-4.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 4-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-416.d
new file mode 100644
index 0000000..c02d8f9
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-416.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 48 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-48.d
new file mode 100644
index 0000000..9801173
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-48.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 48 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-48.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-8.d
new file mode 100644
index 0000000..cd70604
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-8.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 48 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-816.d
new file mode 100644
index 0000000..795d839
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-816.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 48 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48.s
new file mode 100644
index 0000000..a1cb22a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
+.c6xabi_attribute Tag_ABI_array_object_alignment, 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-16.d
new file mode 100644
index 0000000..0d6bafb
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-16.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 8 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-16.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-4.d
new file mode 100644
index 0000000..c7a6033
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-4.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 8 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-4.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-416.d
new file mode 100644
index 0000000..f5f5261
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-416.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 8 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-48.d
new file mode 100644
index 0000000..506ec4c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-48.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 8 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-48.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-8.d
new file mode 100644
index 0000000..86329f3
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-8.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 8 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-816.d
new file mode 100644
index 0000000..ecb9374
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-816.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 8 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8.s
new file mode 100644
index 0000000..2d69687
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 0
+.c6xabi_attribute Tag_ABI_array_object_alignment, 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-16.d
new file mode 100644
index 0000000..2ef2f8e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-16.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 816 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-4.d
new file mode 100644
index 0000000..bd06a2d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-4.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 816 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-4.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-416.d
new file mode 100644
index 0000000..9563f7e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-416.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 816 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-48.d
new file mode 100644
index 0000000..e965643
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-48.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 816 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-48.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-8.d
new file mode 100644
index 0000000..7a29cc5
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-8.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 816 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-816.d
new file mode 100644
index 0000000..0888eae
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-816.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 816 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816.s
new file mode 100644
index 0000000..49ac948
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 0
+.c6xabi_attribute Tag_ABI_array_object_alignment, 2
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d
new file mode 100644
index 0000000..4cba64e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d
@@ -0,0 +1,11 @@
+#name: C6X compatibility attribute merging, gnu gnu
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-compatibility-gnu.s
+#source: attr-compatibility-gnu.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_compatibility: flag = 1, vendor = gnu
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d
new file mode 100644
index 0000000..423ab07
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d
@@ -0,0 +1,6 @@
+#name: C6X compatibility attribute merging, gnu other
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-compatibility-gnu.s
+#source: attr-compatibility-other.s
+#error: .*Object has vendor-specific contents that must be processed by the 'other' toolchain
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu.s
new file mode 100644
index 0000000..b013058
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_compatibility, 1, "gnu"
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d
new file mode 100644
index 0000000..80d73e5
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d
@@ -0,0 +1,6 @@
+#name: C6X compatibility attribute merging, other gnu
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-compatibility-other.s
+#source: attr-compatibility-gnu.s
+#error: .*Object tag '1, gnu' is incompatible with tag '1, other'
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-other.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-other.d
new file mode 100644
index 0000000..0ebd99b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-other.d
@@ -0,0 +1,6 @@
+#name: C6X compatibility attribute merging, other other
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-compatibility-other.s
+#source: attr-compatibility-other.s
+#error: .*Object has vendor-specific contents that must be processed by the 'other' toolchain
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other.s
new file mode 100644
index 0000000..38a605a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_compatibility, 1, "other"
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-10.d
new file mode 100644
index 0000000..a16e503
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-10.d
@@ -0,0 +1,11 @@
+#name: C6X conformance attribute merging, 10 10
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-10.s
+#source: attr-conformance-10.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ABI_conformance: "1.0"
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-11.d
new file mode 100644
index 0000000..94993d9
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-11.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, 10 11
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-10.s
+#source: attr-conformance-11.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-none.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-none.d
new file mode 100644
index 0000000..2de2b50
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-none.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, 10 none
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-10.s
+#source: attr-conformance-none.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10.s
new file mode 100644
index 0000000..2964084
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_conformance, "1.0"
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-10.d
new file mode 100644
index 0000000..34ebd26
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-10.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, 11 10
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-11.s
+#source: attr-conformance-10.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-11.d
new file mode 100644
index 0000000..43ff4a2
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-11.d
@@ -0,0 +1,11 @@
+#name: C6X conformance attribute merging, 11 11
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-11.s
+#source: attr-conformance-11.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ABI_conformance: "1.1"
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-none.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-none.d
new file mode 100644
index 0000000..ad5c58e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-none.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, 11 none
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-11.s
+#source: attr-conformance-none.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11.s
new file mode 100644
index 0000000..d33640c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_conformance, "1.1"
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-10.d
new file mode 100644
index 0000000..94bf8db
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-10.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, none 10
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-none.s
+#source: attr-conformance-10.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-11.d
new file mode 100644
index 0000000..e9ff4c8
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-11.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, none 11
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-none.s
+#source: attr-conformance-11.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-none.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-none.d
new file mode 100644
index 0000000..6856355
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-none.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, none none
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-none.s
+#source: attr-conformance-none.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none.s
new file mode 100644
index 0000000..ffd9c71
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none.s
@@ -0,0 +1 @@
+# No conformance attribute.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-0.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-0.s
new file mode 100644
index 0000000..abd72e3
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-0.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_DSBT, 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-00.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-00.d
new file mode 100644
index 0000000..c49752d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-00.d
@@ -0,0 +1,10 @@
+#name: C6X DSBT attribute merging, 0 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-dsbt-0.s
+#source: attr-dsbt-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-01.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-01.d
new file mode 100644
index 0000000..5f534a7
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-01.d
@@ -0,0 +1,6 @@
+#name: C6X DSBT attribute merging, 0 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-dsbt-0.s
+#source: attr-dsbt-1.s
+#warning: .*differ in whether code is compiled for DSBT
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-1.s
new file mode 100644
index 0000000..75c972e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-1.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_DSBT, 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-10.d
new file mode 100644
index 0000000..283efab
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-10.d
@@ -0,0 +1,6 @@
+#name: C6X DSBT attribute merging, 1 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-dsbt-1.s
+#source: attr-dsbt-0.s
+#warning: .*differ in whether code is compiled for DSBT
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-11.d
new file mode 100644
index 0000000..d004c10
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-11.d
@@ -0,0 +1,11 @@
+#name: C6X DSBT attribute merging, 1 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-dsbt-1.s
+#source: attr-dsbt-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_DSBT: DSBT addressing used
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-0.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-0.s
new file mode 100644
index 0000000..64b8ec9
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-0.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PIC, 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-00.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-00.d
new file mode 100644
index 0000000..b8b3f52
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-00.d
@@ -0,0 +1,10 @@
+#name: C6X PIC attribute merging, 0 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-0.s
+#source: attr-pic-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-01.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-01.d
new file mode 100644
index 0000000..91fb599
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-01.d
@@ -0,0 +1,10 @@
+#name: C6X PIC attribute merging, 0 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-0.s
+#source: attr-pic-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-1.s
new file mode 100644
index 0000000..2bab373
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-1.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PIC, 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-10.d
new file mode 100644
index 0000000..ff52a7a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-10.d
@@ -0,0 +1,10 @@
+#name: C6X PIC attribute merging, 1 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-1.s
+#source: attr-pic-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-11.d
new file mode 100644
index 0000000..6fd720d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-11.d
@@ -0,0 +1,11 @@
+#name: C6X PIC attribute merging, 1 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-1.s
+#source: attr-pic-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_PIC: Code addressing position-independent
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-0.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-0.s
new file mode 100644
index 0000000..d2ea7ad
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-0.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PID, 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-00.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-00.d
new file mode 100644
index 0000000..573cfda
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-00.d
@@ -0,0 +1,10 @@
+#name: C6X PID attribute merging, 0 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-0.s
+#source: attr-pid-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-01.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-01.d
new file mode 100644
index 0000000..a5449dc
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-01.d
@@ -0,0 +1,11 @@
+#name: C6X PID attribute merging, 0 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-0.s
+#source: attr-pid-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-02.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-02.d
new file mode 100644
index 0000000..2a7bfd1
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-02.d
@@ -0,0 +1,11 @@
+#name: C6X PID attribute merging, 0 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-0.s
+#source: attr-pid-2.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-1.s
new file mode 100644
index 0000000..b973177
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-1.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PID, 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-10.d
new file mode 100644
index 0000000..a421d40
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-10.d
@@ -0,0 +1,11 @@
+#name: C6X PID attribute merging, 1 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-1.s
+#source: attr-pid-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-11.d
new file mode 100644
index 0000000..7498282
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-11.d
@@ -0,0 +1,11 @@
+#name: C6X PID attribute merging, 1 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-1.s
+#source: attr-pid-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_PID: Data addressing position-independent, GOT near DP
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-12.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-12.d
new file mode 100644
index 0000000..af7a765
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-12.d
@@ -0,0 +1,12 @@
+#name: C6X PID attribute merging, 1 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-1.s
+#source: attr-pid-2.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_PID: Data addressing position-independent, GOT near DP
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-2.s
new file mode 100644
index 0000000..f556188
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-2.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PID, 2
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-20.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-20.d
new file mode 100644
index 0000000..e2cd0bc
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-20.d
@@ -0,0 +1,10 @@
+#name: C6X PID attribute merging, 2 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-2.s
+#source: attr-pid-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-21.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-21.d
new file mode 100644
index 0000000..c0f71df
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-21.d
@@ -0,0 +1,11 @@
+#name: C6X PID attribute merging, 2 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-2.s
+#source: attr-pid-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_PID: Data addressing position-independent, GOT near DP
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-22.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-22.d
new file mode 100644
index 0000000..7a3fe47
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-22.d
@@ -0,0 +1,11 @@
+#name: C6X PID attribute merging, 2 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-2.s
+#source: attr-pid-2.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_PID: Data addressing position-independent, GOT far from DP
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-16.d
new file mode 100644
index 0000000..8eb94bd
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-16.d
@@ -0,0 +1,12 @@
+#name: C6X stack attribute merging, 16 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-16.s
+#source: attr-stack-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_stack_align_needed: 16-byte
+ Tag_ABI_stack_align_preserved: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-8.d
new file mode 100644
index 0000000..291a368
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-8.d
@@ -0,0 +1,6 @@
+#name: C6X stack attribute merging, 16 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-16.s
+#source: attr-stack-8.s
+#error: .*requires more stack alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-816.d
new file mode 100644
index 0000000..cbd384f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-816.d
@@ -0,0 +1,12 @@
+#name: C6X stack attribute merging, 16 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-16.s
+#source: attr-stack-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_stack_align_needed: 16-byte
+ Tag_ABI_stack_align_preserved: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16.s
new file mode 100644
index 0000000..b1e492a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_stack_align_needed, 1
+.c6xabi_attribute Tag_ABI_stack_align_preserved, 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-16.d
new file mode 100644
index 0000000..9e52e92
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-16.d
@@ -0,0 +1,6 @@
+#name: C6X stack attribute merging, 8 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-8.s
+#source: attr-stack-16.s
+#error: .*requires more stack alignment than .* preserves
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-8.d
new file mode 100644
index 0000000..1a8cb62
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-8.d
@@ -0,0 +1,10 @@
+#name: C6X stack attribute merging, 8 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-8.s
+#source: attr-stack-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-816.d
new file mode 100644
index 0000000..89a0740
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-816.d
@@ -0,0 +1,10 @@
+#name: C6X stack attribute merging, 8 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-8.s
+#source: attr-stack-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8.s
new file mode 100644
index 0000000..ce63951
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_stack_align_needed, 0
+.c6xabi_attribute Tag_ABI_stack_align_preserved, 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-16.d
new file mode 100644
index 0000000..da8ca3b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-16.d
@@ -0,0 +1,12 @@
+#name: C6X stack attribute merging, 816 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-816.s
+#source: attr-stack-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_stack_align_needed: 16-byte
+ Tag_ABI_stack_align_preserved: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-8.d
new file mode 100644
index 0000000..fe8630e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-8.d
@@ -0,0 +1,10 @@
+#name: C6X stack attribute merging, 816 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-816.s
+#source: attr-stack-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-816.d
new file mode 100644
index 0000000..0ab01ac
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-816.d
@@ -0,0 +1,11 @@
+#name: C6X stack attribute merging, 816 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-816.s
+#source: attr-stack-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_stack_align_preserved: 16-byte
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816.s
new file mode 100644
index 0000000..46295d2
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_stack_align_needed, 0
+.c6xabi_attribute Tag_ABI_stack_align_preserved, 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1.d
new file mode 100644
index 0000000..e2b8f45
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1.d
@@ -0,0 +1,6 @@
+#name: C6X unknown attribute merging 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-unknown-54-1.s
+#source: attr-unknown-54-1.s
+#error: .*error: unknown mandatory EABI object attribute 54
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-1.s
new file mode 100644
index 0000000..bb17345
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-1.s
@@ -0,0 +1 @@
+.c6xabi_attribute 1000, 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-2.s
new file mode 100644
index 0000000..658868b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-2.s
@@ -0,0 +1 @@
+.c6xabi_attribute 1000, 2
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1024-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1024-1.s
new file mode 100644
index 0000000..e2d7e4f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1024-1.s
@@ -0,0 +1 @@
+.c6xabi_attribute 1024, 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-2.d
new file mode 100644
index 0000000..8062a9a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-2.d
@@ -0,0 +1,6 @@
+#name: C6X unknown attribute merging 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-unknown-55-a.s
+#source: attr-unknown-55-a.s
+#error: .*error: unknown mandatory EABI object attribute 55
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-3.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-3.d
new file mode 100644
index 0000000..ed7acdc
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-3.d
@@ -0,0 +1,12 @@
+#name: C6X unknown attribute merging 3
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-unknown-71-a.s
+#source: attr-unknown-71-a.s
+#warning: .*warning: unknown EABI object attribute 71
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_unknown_71: "a"
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-4.d
new file mode 100644
index 0000000..dd165d6
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-4.d
@@ -0,0 +1,11 @@
+#name: C6X unknown attribute merging 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-unknown-71-a.s
+#source: attr-unknown-71-b.s
+#warning: .*warning: unknown EABI object attribute 71
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-5.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-5.d
new file mode 100644
index 0000000..5a17b9a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-5.d
@@ -0,0 +1,12 @@
+#name: C6X unknown attribute merging 5
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-unknown-1000-1.s
+#source: attr-unknown-1000-1.s
+#warning: .*warning: unknown EABI object attribute 1000
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_unknown_1000: 1 \(0x1\)
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-54-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-54-1.s
new file mode 100644
index 0000000..8f0600e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-54-1.s
@@ -0,0 +1 @@
+.c6xabi_attribute 54, 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-55-a.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-55-a.s
new file mode 100644
index 0000000..7b09d2b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-55-a.s
@@ -0,0 +1 @@
+.c6xabi_attribute 55, "a"
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-6.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-6.d
new file mode 100644
index 0000000..6509693
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-6.d
@@ -0,0 +1,11 @@
+#name: C6X unknown attribute merging 6
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-unknown-1000-1.s
+#source: attr-unknown-1000-2.s
+#warning: .*warning: unknown EABI object attribute 1000
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-7.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-7.d
new file mode 100644
index 0000000..79ab8c5
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-7.d
@@ -0,0 +1,6 @@
+#name: C6X unknown attribute merging 7
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-unknown-1024-1.s
+#source: attr-unknown-1024-1.s
+#error: .*error: unknown mandatory EABI object attribute 1024
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-a.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-a.s
new file mode 100644
index 0000000..b7bf77e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-a.s
@@ -0,0 +1 @@
+.c6xabi_attribute 71, "a"
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-b.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-b.s
new file mode 100644
index 0000000..de0f18b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-b.s
@@ -0,0 +1 @@
+.c6xabi_attribute 71, "b"
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-0.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-0.s
new file mode 100644
index 0000000..5427103
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-0.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_wchar_t, 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-00.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-00.d
new file mode 100644
index 0000000..3f5feae
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-00.d
@@ -0,0 +1,10 @@
+#name: C6X wchar_t attribute merging, 0 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-0.s
+#source: attr-wchar-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-01.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-01.d
new file mode 100644
index 0000000..e32ded6
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-01.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 0 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-0.s
+#source: attr-wchar-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 2 bytes
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-02.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-02.d
new file mode 100644
index 0000000..57ed66b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-02.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 0 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-0.s
+#source: attr-wchar-2.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 4 bytes
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-1.s
new file mode 100644
index 0000000..69d1186
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-1.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_wchar_t, 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-10.d
new file mode 100644
index 0000000..c476859
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-10.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 1 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-1.s
+#source: attr-wchar-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 2 bytes
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-11.d
new file mode 100644
index 0000000..5105d19
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-11.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 1 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-1.s
+#source: attr-wchar-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 2 bytes
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-12.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-12.d
new file mode 100644
index 0000000..a0d3bd8
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-12.d
@@ -0,0 +1,6 @@
+#name: C6X wchar_t attribute merging, 1 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-1.s
+#source: attr-wchar-2.s
+#warning: .*differ in wchar_t size
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-2.s
new file mode 100644
index 0000000..cf87e4c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-2.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_wchar_t, 2
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-20.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-20.d
new file mode 100644
index 0000000..9a2b356
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-20.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 2 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-2.s
+#source: attr-wchar-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 4 bytes
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-21.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-21.d
new file mode 100644
index 0000000..60d06f1
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-21.d
@@ -0,0 +1,6 @@
+#name: C6X wchar_t attribute merging, 2 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-2.s
+#source: attr-wchar-1.s
+#warning: .*differ in wchar_t size
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-22.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-22.d
new file mode 100644
index 0000000..7500a31
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-22.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 2 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-2.s
+#source: attr-wchar-2.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 4 bytes
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/common.d b/binutils-2.24/ld/testsuite/ld-tic6x/common.d
new file mode 100644
index 0000000..68529f8
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/common.d
@@ -0,0 +1,28 @@
+#name: C6X common symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tcommon.ld
+#source: common.s
+#readelf: -Ss
+
+There are 6 section headers, starting at offset 0x7c:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.far NOBITS 00000080 000080 000008 00 WA 0 0 4
+ \[ 2\] \.bss NOBITS 00000100 000080 000004 00 WA 0 0 4
+ \[ 3\] \.shstrtab STRTAB 00000000 000054 000025 00 0 0 1
+ \[ 4\] \.symtab SYMTAB 00000000 00016c 000050 10 5 3 4
+ \[ 5\] \.strtab STRTAB 00000000 0001bc 000005 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Symbol table '\.symtab' contains 5 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 00000080 0 SECTION LOCAL DEFAULT 1
+ 2: 00000100 0 SECTION LOCAL DEFAULT 2
+ 3: 00000100 4 OBJECT GLOBAL DEFAULT 2 x
+ 4: 00000080 8 OBJECT GLOBAL DEFAULT 1 y
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/common.ld b/binutils-2.24/ld/testsuite/ld-tic6x/common.ld
new file mode 100644
index 0000000..5597c3f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/common.ld
@@ -0,0 +1,11 @@
+SECTIONS
+{
+ . = 0x80;
+ .far : { *(.far) *(COMMON) }
+ . = 0x100;
+ .bss : { *(.scommon) }
+
+ . = 0x10000000;
+ .text : { *(.text*) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/common.s b/binutils-2.24/ld/testsuite/ld-tic6x/common.s
new file mode 100644
index 0000000..4743066
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/common.s
@@ -0,0 +1,2 @@
+ .scomm x,4,4
+ .comm y,8,4
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.d
new file mode 100644
index 0000000..82e2caf
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.d
@@ -0,0 +1,11 @@
+#name: C6X data relocations, global symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym sff=0xff --defsym sffff=0xffff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffff80=0xffffff80 --defsym sffffffff=0xffffffff
+#source: data-reloc-global-rel.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+Contents of section \.data:
+[ \t]*0080 00000080 ffffffff 00000000 feffffff \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.
+[ \t]*0090 00000000 ffffffff 00800080 ffff8080 \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.s
new file mode 100644
index 0000000..8c7ba2e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.s
@@ -0,0 +1,21 @@
+.globl s0
+.globl sff
+.globl sffff
+.globl s80000000
+.globl sffff8000
+.globl sffffff80
+.globl sffffffff
+.data
+ .word s80000000
+ .word sffffffff
+ .word s0
+ .word sffffffff+0xffffffff
+ .word s80000000+0x80000000
+ .short sffffffff
+ .short sffff
+ .short sffff8000
+ .short s0-0x8000
+ .byte sffffffff
+ .byte sff
+ .byte sffffff80
+ .byte s0-0x80
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.d
new file mode 100644
index 0000000..416f9d3
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.d
@@ -0,0 +1,12 @@
+#name: C6X data relocations, global symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym sff=0xff --defsym sffff=0xffff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffff80=0xffffff80 --defsym sffffffff=0xffffffff
+#source: data-reloc-global.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+Contents of section \.data:
+[ \t]*0080 00000080 ffffffff 00000000 feffffff .*
+[ \t]*0090 00000000 ffffffff 00800080 0000ffff .*
+[ \t]*00a0 808000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.s b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.s
new file mode 100644
index 0000000..6a03376
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.s
@@ -0,0 +1,23 @@
+.globl s0
+.globl sff
+.globl sffff
+.globl s80000000
+.globl sffff8000
+.globl sffffff80
+.globl sffffffff
+.data
+ .word s80000000
+ .word sffffffff
+ .word s0
+ .word sffffffff+0xffffffff
+ .word s80000000+0x80000000
+ .short sffffffff
+ .short sffff
+ .short sffff8000
+ .short s0-0x8000
+ .short s80000000+0x80000000
+ .byte sffffffff
+ .byte sff
+ .byte sffffff80
+ .byte s0-0x80
+ .byte s80000000+0x80000000
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-1.s
new file mode 100644
index 0000000..d5cc7cf
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-1.s
@@ -0,0 +1,5 @@
+.data
+a:
+ .word a
+b:
+ .word b
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-2.s
new file mode 100644
index 0000000..2e9196b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-2.s
@@ -0,0 +1,8 @@
+.data
+c:
+ .word d
+d:
+ .word c
+ .short d
+ .byte c
+ .byte d
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d
new file mode 100644
index 0000000..18f23f9
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d
@@ -0,0 +1,23 @@
+#name: C6X data relocations, local symbols, -r, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -r -melf32_tic6x_le
+#source: data-reloc-local-1.s
+#source: data-reloc-local-2.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+RELOCATION RECORDS FOR \[\.data\]:
+OFFSET TYPE VALUE
+0+ R_C6000_ABS32 \.data
+0+4 R_C6000_ABS32 \.data
+0+8 R_C6000_ABS32 \.data
+0+c R_C6000_ABS32 \.data
+0+10 R_C6000_ABS16 \.data
+0+12 R_C6000_ABS8 \.data
+0+13 R_C6000_ABS8 \.data
+
+
+Contents of section \.data:
+[ \t]*0000 00000000 04000000 0c000000 08000000 \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.
+[ \t]*0010 0c00080c \.\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r.d
new file mode 100644
index 0000000..0f5567b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r.d
@@ -0,0 +1,23 @@
+#name: C6X data relocations, local symbols, -r
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: data-reloc-local-1.s
+#source: data-reloc-local-2.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+RELOCATION RECORDS FOR \[\.data\]:
+OFFSET TYPE VALUE
+0+ R_C6000_ABS32 \.data
+0+4 R_C6000_ABS32 \.data\+0x00000004
+0+8 R_C6000_ABS32 \.data\+0x0000000c
+0+c R_C6000_ABS32 \.data\+0x00000008
+0+10 R_C6000_ABS16 \.data\+0x0000000c
+0+12 R_C6000_ABS8 \.data\+0x00000008
+0+13 R_C6000_ABS8 \.data\+0x0000000c
+
+
+Contents of section \.data:
+[ \t]*0000 00000000 00000000 00000000 00000000 .*
+[ \t]*0010 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-rel.d
new file mode 100644
index 0000000..686ca6e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-rel.d
@@ -0,0 +1,12 @@
+#name: C6X data relocations, local symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: data-reloc-local-1.s
+#source: data-reloc-local-2.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+Contents of section \.data:
+[ \t]*0080 80000000 84000000 8c000000 88000000 .*
+[ \t]*0090 8c00888c .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local.d
new file mode 100644
index 0000000..13d6f75
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local.d
@@ -0,0 +1,12 @@
+#name: C6X data relocations, local symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: data-reloc-local-1.s
+#source: data-reloc-local-2.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+Contents of section \.data:
+[ \t]*0080 80000000 84000000 8c000000 88000000 .*
+[ \t]*0090 8c00888c .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/discard-unwind.ld b/binutils-2.24/ld/testsuite/ld-tic6x/discard-unwind.ld
new file mode 100644
index 0000000..00582c1
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/discard-unwind.ld
@@ -0,0 +1,15 @@
+/* Script for unwinding ld tests */
+SECTIONS
+{
+ /* Read-only sections, merged into text segment: */
+ . = 0x8000;
+ .text :
+ {
+ *(.before)
+ *(.text)
+ *(.after)
+ *(.c6xabi.extab*)
+ } =0
+ /DISCARD/ : { *(.c6xabi.exidx*) }
+ .c6xabi.attribues 0 : { *(.c6xabi.atttributes) }
+}
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-be.ld b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-be.ld
new file mode 100644
index 0000000..40ba14c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-be.ld
@@ -0,0 +1,67 @@
+OUTPUT_FORMAT("elf32-tic6x-be", "elf32-tic6x-be",
+ "elf32-tic6x-be")
+EXTERN (__c6xabi_DSBT_BASE);
+SECTIONS
+{
+ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS;
+ . = 0x8000;
+ .hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
+ .gnu.version : { *(.gnu.version) }
+ .gnu.version_d : { *(.gnu.version_d) }
+ .gnu.version_r : { *(.gnu.version_r) }
+ .rel.init : { *(.rel.init) }
+ .rela.init : { *(.rela.init) }
+ .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
+ .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
+ .rel.fini : { *(.rel.fini) }
+ .rela.fini : { *(.rela.fini) }
+ .rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) }
+ .rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) }
+ .rel.rodata : { *(.rel.rodata .rel.rodata.*) }
+ .rela.rodata : { *(.rela.rodata .rela.rodata.*) }
+ .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
+ .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
+ .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
+ .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
+ .rel.fardata : { *(.rel.fardata .rel.fardata.*) }
+ .rela.fardata : { *(.rela.fardata .rela.fardata.*) }
+ .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
+ .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
+ .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
+ .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
+ .rel.ctors : { *(.rel.ctors) }
+ .rela.ctors : { *(.rela.ctors) }
+ .rel.dtors : { *(.rel.dtors) }
+ .rela.dtors : { *(.rela.dtors) }
+ .rel.got : { *(.rel.got) }
+ .rela.got : { *(.rela.got) }
+ .rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) }
+ .rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) }
+ .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) }
+ .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) }
+ .rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) }
+ .rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) }
+ .rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) }
+ .rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) }
+ .rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) }
+ .rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) }
+ .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
+ .dynamic : { *(.dynamic) }
+ .data : { *(.data*) }
+ . = 0x10000000;
+ .rel.plt : { *(.rel.plt) }
+ .rela.plt : { *(.rela.plt) }
+ .plt : { *(.plt) }
+ .text : { *(.text*) }
+ . = .; PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);
+ .got : { *(.dsbt) *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
+ .neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) }
+ .rodata : { *(.rodata .rodata.*) }
+ .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) }
+ .far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) }
+ .c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index-error.d b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index-error.d
new file mode 100644
index 0000000..5c9f96a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index-error.d
@@ -0,0 +1,5 @@
+#name: C6X invalid DSBT_INDEX
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --dsbt-index 5 --dsbt-size 3
+#source: dsbt-index.s
+#error: .*invalid --dsbt-index 5, outside DSBT size.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.d b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.d
new file mode 100644
index 0000000..cc33c89
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.d
@@ -0,0 +1,14 @@
+#name: C6X DSBT_INDEX reloc
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --dsbt-index 5
+#source: dsbt-index.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+0700056e[ \t]+ldw \.D2T2 \*\+b14\(20\),b14
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.s b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.s
new file mode 100644
index 0000000..16e3b76
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-inrange.ld b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-inrange.ld
new file mode 100644
index 0000000..603f020
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-inrange.ld
@@ -0,0 +1,68 @@
+EXTERN (__c6xabi_DSBT_BASE);
+SECTIONS
+{
+ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS;
+ . = 0x8000;
+ .hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
+ .gnu.version : { *(.gnu.version) }
+ .gnu.version_d : { *(.gnu.version_d) }
+ .gnu.version_r : { *(.gnu.version_r) }
+ .rel.init : { *(.rel.init) }
+ .rela.init : { *(.rela.init) }
+ .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
+ .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
+ .rel.fini : { *(.rel.fini) }
+ .rela.fini : { *(.rela.fini) }
+ .rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) }
+ .rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) }
+ .rel.rodata : { *(.rel.rodata .rel.rodata.*) }
+ .rela.rodata : { *(.rela.rodata .rela.rodata.*) }
+ .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
+ .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
+ .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
+ .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
+ .rel.fardata : { *(.rel.fardata .rel.fardata.*) }
+ .rela.fardata : { *(.rela.fardata .rela.fardata.*) }
+ .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
+ .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
+ .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
+ .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
+ .rel.ctors : { *(.rel.ctors) }
+ .rela.ctors : { *(.rela.ctors) }
+ .rel.dtors : { *(.rel.dtors) }
+ .rela.dtors : { *(.rela.dtors) }
+ .rel.got : { *(.rel.got) }
+ .rela.got : { *(.rela.got) }
+ .rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) }
+ .rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) }
+ .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) }
+ .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) }
+ .rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) }
+ .rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) }
+ .rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) }
+ .rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) }
+ .rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) }
+ .rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) }
+ .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
+ .dynamic : { *(.dynamic) }
+ .data : { *(.data*) }
+ . = 0x10000000;
+ .rel.plt : { *(.rel.plt) }
+ .rela.plt : { *(.rela.plt) }
+ .plt : { *(.plt) }
+ .text : { *(.text*) }
+ . = 0x20000000;
+ PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);
+ .dsbt : { *(.dsbt) }
+ . = 0x2001fff4;
+ .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
+ .neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) }
+ .rodata : { *(.rodata .rodata.*) }
+ .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) }
+ .far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) }
+ .c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-overflow.ld b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-overflow.ld
new file mode 100644
index 0000000..3128a35
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-overflow.ld
@@ -0,0 +1,68 @@
+EXTERN (__c6xabi_DSBT_BASE);
+SECTIONS
+{
+ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS;
+ . = 0x8000;
+ .hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
+ .gnu.version : { *(.gnu.version) }
+ .gnu.version_d : { *(.gnu.version_d) }
+ .gnu.version_r : { *(.gnu.version_r) }
+ .rel.init : { *(.rel.init) }
+ .rela.init : { *(.rela.init) }
+ .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
+ .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
+ .rel.fini : { *(.rel.fini) }
+ .rela.fini : { *(.rela.fini) }
+ .rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) }
+ .rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) }
+ .rel.rodata : { *(.rel.rodata .rel.rodata.*) }
+ .rela.rodata : { *(.rela.rodata .rela.rodata.*) }
+ .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
+ .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
+ .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
+ .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
+ .rel.fardata : { *(.rel.fardata .rel.fardata.*) }
+ .rela.fardata : { *(.rela.fardata .rela.fardata.*) }
+ .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
+ .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
+ .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
+ .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
+ .rel.ctors : { *(.rel.ctors) }
+ .rela.ctors : { *(.rela.ctors) }
+ .rel.dtors : { *(.rel.dtors) }
+ .rela.dtors : { *(.rela.dtors) }
+ .rel.got : { *(.rel.got) }
+ .rela.got : { *(.rela.got) }
+ .rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) }
+ .rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) }
+ .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) }
+ .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) }
+ .rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) }
+ .rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) }
+ .rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) }
+ .rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) }
+ .rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) }
+ .rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) }
+ .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
+ .dynamic : { *(.dynamic) }
+ .data : { *(.data*) }
+ . = 0x10000000;
+ .rel.plt : { *(.rel.plt) }
+ .rela.plt : { *(.rela.plt) }
+ .plt : { *(.plt) }
+ .text : { *(.text*) }
+ . = 0x20000000;
+ PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);
+ .dsbt : { *(.dsbt) }
+ . = 0x2001fff8;
+ .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
+ .neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) }
+ .rodata : { *(.rodata .rodata.*) }
+ .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) }
+ .far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) }
+ .c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt.ld b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt.ld
new file mode 100644
index 0000000..fdde8ba
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt.ld
@@ -0,0 +1,67 @@
+OUTPUT_FORMAT("elf32-tic6x-le", "elf32-tic6x-le",
+ "elf32-tic6x-le")
+EXTERN (__c6xabi_DSBT_BASE);
+SECTIONS
+{
+ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS;
+ . = 0x8000;
+ .hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
+ .gnu.version : { *(.gnu.version) }
+ .gnu.version_d : { *(.gnu.version_d) }
+ .gnu.version_r : { *(.gnu.version_r) }
+ .rel.init : { *(.rel.init) }
+ .rela.init : { *(.rela.init) }
+ .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
+ .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
+ .rel.fini : { *(.rel.fini) }
+ .rela.fini : { *(.rela.fini) }
+ .rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) }
+ .rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) }
+ .rel.rodata : { *(.rel.rodata .rel.rodata.*) }
+ .rela.rodata : { *(.rela.rodata .rela.rodata.*) }
+ .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
+ .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
+ .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
+ .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
+ .rel.fardata : { *(.rel.fardata .rel.fardata.*) }
+ .rela.fardata : { *(.rela.fardata .rela.fardata.*) }
+ .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
+ .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
+ .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
+ .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
+ .rel.ctors : { *(.rel.ctors) }
+ .rela.ctors : { *(.rela.ctors) }
+ .rel.dtors : { *(.rel.dtors) }
+ .rela.dtors : { *(.rela.dtors) }
+ .rel.got : { *(.rel.got) }
+ .rela.got : { *(.rela.got) }
+ .rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) }
+ .rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) }
+ .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) }
+ .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) }
+ .rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) }
+ .rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) }
+ .rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) }
+ .rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) }
+ .rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) }
+ .rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) }
+ .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
+ .dynamic : { *(.dynamic) }
+ .data : { *(.data*) }
+ . = 0x10000000;
+ .rel.plt : { *(.rel.plt) }
+ .rela.plt : { *(.rela.plt) }
+ .plt : { *(.plt) }
+ .text : { *(.text*) }
+ . = .; PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);
+ .got : { *(.dsbt) *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
+ .neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) }
+ .rodata : { *(.rodata .rodata.*) }
+ .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) }
+ .far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) }
+ .c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1-rel.d
new file mode 100644
index 0000000..c29ae68
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1-rel.d
@@ -0,0 +1,14 @@
+#name: EHTYPE relocations (REL)
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le --defsym s1=0x2a -Tdsbt-inrange.ld
+#source: ehtype-reloc-1.s
+#objdump: -s -j.data -j.text -j.got
+
+.*: *file format elf32-tic6x-le
+
+Contents of section .data:
+ 8018 78563412 .*
+Contents of section .text:
+ 10000000 08000000 0c000000 .*
+Contents of section .got:
+ 2001fff4 00000000 00000000 2a000000 18800000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.d
new file mode 100644
index 0000000..c14eeef
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.d
@@ -0,0 +1,14 @@
+#name: EHTYPE relocations (RELA)
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le --defsym s1=0x2a -Tdsbt-inrange.ld
+#source: ehtype-reloc-1.s
+#objdump: -s -j.data -j.text -j.got
+
+.*: *file format elf32-tic6x-le
+
+Contents of section .data:
+ 8018 78563412 .*
+Contents of section .text:
+ 10000000 08000000 0c000000 .*
+Contents of section .got:
+ 2001fff4 00000000 00000000 2a000000 18800000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.s
new file mode 100644
index 0000000..46c6de4
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.s
@@ -0,0 +1,9 @@
+.globl s2
+.globl _start
+.text
+_start:
+.ehtype s1
+.ehtype s2
+.data
+s2:
+.word 0x12345678
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/generic.ld b/binutils-2.24/ld/testsuite/ld-tic6x/generic.ld
new file mode 100644
index 0000000..2e9c5e8
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/generic.ld
@@ -0,0 +1,8 @@
+SECTIONS
+{
+ . = 0x80;
+ .data : { *(.data*) }
+ . = 0x10000000;
+ .text : { *(.text*) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.d
new file mode 100644
index 0000000..597e74d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.d
@@ -0,0 +1,5 @@
+#name: C6X GOT relocations, addend
+#as: -mlittle-endian -mdsbt
+#ld: -melf32_tic6x_le -Tdsbt.ld --dsbt-index 4 -shared
+#source: got-reloc-global-addend-1.s
+#error: .*relocation R_C6000_SBR_GOT_U15_W with non-zero addend 4.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.s
new file mode 100644
index 0000000..9b99805
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.s
@@ -0,0 +1,11 @@
+.text
+.nocmp
+ ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
+ ldw .d2t1 *+B14($GOT(a)+4), A1
+
+ .global a
+ .section .neardata,"aw",@progbits
+ .align 2
+ .type a, @object
+ .size a, 4
+a:
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.d
new file mode 100644
index 0000000..44d6319
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.d
@@ -0,0 +1,5 @@
+#name: C6X GOT relocations, addend
+#as: -mlittle-endian -mdsbt
+#ld: -melf32_tic6x_le -Tdsbt.ld --dsbt-index 4 -shared
+#source: got-reloc-global-addend-2.s
+#error: .*relocation R_C6000_SBR_GOT_L16_W with non-zero addend 4.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.s
new file mode 100644
index 0000000..507cf84
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.s
@@ -0,0 +1,11 @@
+.text
+.nocmp
+ ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
+ mvkl .s1 $DPR_GOT(a)+4, A1
+
+ .global a
+ .section .neardata,"aw",@progbits
+ .align 2
+ .type a, @object
+ .size a, 4
+a:
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global.s b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global.s
new file mode 100644
index 0000000..054c297
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global.s
@@ -0,0 +1,11 @@
+.text
+.nocmp
+ ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
+ ldw .d2t1 *+B14($GOT(a)), A1
+
+ .global a
+ .section .neardata,"aw",@progbits
+ .align 2
+ .type a, @object
+ .size a, 4
+a:
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-inrange.d b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-inrange.d
new file mode 100644
index 0000000..4260444
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-inrange.d
@@ -0,0 +1,15 @@
+#name: C6X GOT relocations, no overflow
+#as: -mlittle-endian -mdsbt -mpic -mpid=near
+#ld: -melf32_tic6x_le -Tdsbt-inrange.ld --dsbt-index 4 -shared
+#source: got-reloc-global.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+0700046e[ \t]+ldw \.D2T2 \*\+b14\(16\),b14
+10000004:[ \t]+00ffff6c[ \t]+ldw \.D2T1 \*\+b14\(131068\),a1
+[ \t]+...
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-1.s
new file mode 100644
index 0000000..bb3278e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-1.s
@@ -0,0 +1,8 @@
+.text
+.nocmp
+ ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
+ ldw .d2t1 *+B14($GOT(a)), A1
+
+.data
+a:
+ .word 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-2.s
new file mode 100644
index 0000000..81f651b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-2.s
@@ -0,0 +1,8 @@
+.text
+.nocmp
+ ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
+ ldw .d2t1 *+B14($GOT(b)), A1
+
+.data
+b:
+ .word 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-r.d b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-r.d
new file mode 100644
index 0000000..de13473
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-r.d
@@ -0,0 +1,23 @@
+#name: C6X GOT relocations, local symbols, -r
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: got-reloc-local-1.s
+#source: got-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+[ ]*0:[ ]*0700006e[ ]*ldw \.D2T2 \*\+b14\(0\),b14
+[ ]*0:[ ]*R_C6000_DSBT_INDEX __c6xabi_DSBT_BASE
+[ ]*4:[ ]*0080006c[ ]*ldw \.D2T1 \*\+b14\(0\),a1
+[ ]*4:[ ]*R_C6000_SBR_GOT_U15_W a
+ \.\.\.
+[ ]*20:[ ]*0700006e[ ]*ldw \.D2T2 \*\+b14\(0\),b14
+[ ]*20: R_C6000_DSBT_INDEX __c6xabi_DSBT_BASE
+[ ]*24:[ ]*0080006c[ ]*ldw \.D2T1 \*\+b14\(0\),a1
+[ ]*24:[ ]*R_C6000_SBR_GOT_U15_W b
+ \.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-overflow.d b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-overflow.d
new file mode 100644
index 0000000..12063ef
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-overflow.d
@@ -0,0 +1,5 @@
+#name: C6X GOT relocations, overflow
+#as: -mlittle-endian -mdsbt
+#ld: -melf32_tic6x_le -Tdsbt-overflow.ld --dsbt-index 4 -shared
+#source: got-reloc-global.s
+#error: .*relocation truncated to fit: R_C6000_SBR_GOT_U15_W.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d
new file mode 100644
index 0000000..a082bbf
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d
@@ -0,0 +1,20 @@
+#name: C6X MVK relocations, global symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym s7fff=0x7fff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffffff=0xffffffff
+#source: mvk-reloc-global-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000004:[ \t]+00ffffa8[ \t]+mvk \.S1 -1,a1
+10000008:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+1000000c:[ \t]+00ffff28[ \t]+mvk \.S1 -2,a1
+10000010:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+10000014:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+10000018:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1
+1000001c:[ \t]+00000000[ \t]+nop 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s
new file mode 100644
index 0000000..0690873
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s
@@ -0,0 +1,14 @@
+.globl s0
+.globl s7fff
+.globl s80000000
+.globl sffff8000
+.globl sffffffff
+.text
+.nocmp
+ mvkl .S1 s80000000,a1
+ mvkl .S1 sffffffff,a1
+ mvkl .S1 s0,a1
+ mvkl .S1 sffffffff+0xffffffff,a1
+ mvk .S1 sffff8000,a1
+ mvk .S1 s0-0x8000,a1
+ mvk .S1 s7fff,a1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.d
new file mode 100644
index 0000000..8eadae7
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.d
@@ -0,0 +1,26 @@
+#name: C6X MVK relocations, global symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym s7fff=0x7fff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffffff=0xffffffff
+#source: mvk-reloc-global.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000004:[ \t]+00c00068[ \t]+mvkh \.S1 2147483648,a1
+10000008:[ \t]+00ffffa8[ \t]+mvk \.S1 -1,a1
+1000000c:[ \t]+00ffffe8[ \t]+mvkh \.S1 4294901760,a1
+10000010:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000014:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+10000018:[ \t]+00ffff28[ \t]+mvk \.S1 -2,a1
+1000001c:[ \t]+00ffffe8[ \t]+mvkh \.S1 4294901760,a1
+10000020:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000024:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+10000028:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+1000002c:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+10000030:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.s
new file mode 100644
index 0000000..ef13d7a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.s
@@ -0,0 +1,20 @@
+.globl s0
+.globl s7fff
+.globl s80000000
+.globl sffff8000
+.globl sffffffff
+.text
+.nocmp
+ mvkl .S1 s80000000,a1
+ mvkh .S1 s80000000,a1
+ mvkl .S1 sffffffff,a1
+ mvkh .S1 sffffffff,a1
+ mvkl .S1 s0,a1
+ mvkh .S1 s0,a1
+ mvkl .S1 sffffffff+0xffffffff,a1
+ mvkh .S1 sffffffff+0xffffffff,a1
+ mvkl .S1 s80000000+0x80000000,a1
+ mvkh .S1 s80000000+0x80000000,a1
+ mvk .S1 sffff8000,a1
+ mvk .S1 s0-0x8000,a1
+ mvk .S1 s7fff,a1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s
new file mode 100644
index 0000000..1255177
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s
@@ -0,0 +1,11 @@
+.text
+.nocmp
+ mvk .S1 a,a1
+ mvkl .S1 b,a2
+.data
+a:
+ .word 0
+b:
+ .word 0
+c:
+ .word 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1.s
new file mode 100644
index 0000000..f5de8b6
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1.s
@@ -0,0 +1,12 @@
+.text
+.nocmp
+ mvk .S1 a,a1
+ mvkl .S1 b,a2
+ mvkh .S1 c,a3
+.data
+a:
+ .word 0
+b:
+ .word 0
+c:
+ .word 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s
new file mode 100644
index 0000000..320c988
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s
@@ -0,0 +1,11 @@
+.text
+.nocmp
+ mvk .S1 d,a1
+ mvkl .S1 e,a2
+.data
+d:
+ .word 0
+e:
+ .word 0
+f:
+ .word 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2.s
new file mode 100644
index 0000000..2f9952d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2.s
@@ -0,0 +1,12 @@
+.text
+.nocmp
+ mvk .S1 d,a1
+ mvkl .S1 e,a2
+ mvkh .S1 f-0x100,a3
+.data
+d:
+ .word 0
+e:
+ .word 0
+f:
+ .word 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d
new file mode 100644
index 0000000..dcbd55b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d
@@ -0,0 +1,23 @@
+#name: C6X MVK relocations, local symbols, -r, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -r -melf32_tic6x_le
+#source: mvk-reloc-local-1-rel.s
+#source: mvk-reloc-local-2-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*0: R_C6000_ABS_S16[ \t]+\.data
+[ \t]*4:[ \t]+01000228[ \t]+mvk \.S1 4,a2
+[ \t]*4: R_C6000_ABS_L16[ \t]+\.data
+[ \t]*\.\.\.
+[ \t]*20:[ \t]+00800628[ \t]+mvk \.S1 12,a1
+[ \t]*20: R_C6000_ABS_S16[ \t]+\.data
+[ \t]*24:[ \t]+01000828[ \t]+mvk \.S1 16,a2
+[ \t]*24: R_C6000_ABS_L16[ \t]+\.data
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r.d
new file mode 100644
index 0000000..096b6ae
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r.d
@@ -0,0 +1,27 @@
+#name: C6X MVK relocations, local symbols, -r
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: mvk-reloc-local-1.s
+#source: mvk-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*0: R_C6000_ABS_S16[ \t]+\.data
+[ \t]*4:[ \t]+01000028[ \t]+mvk \.S1 0,a2
+[ \t]*4: R_C6000_ABS_L16[ \t]+\.data\+0x4
+[ \t]*8:[ \t]+01800068[ \t]+mvkh \.S1 0,a3
+[ \t]*8: R_C6000_ABS_H16[ \t]+\.data\+0x8
+[ \t]*\.\.\.
+[ \t]*20:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*20: R_C6000_ABS_S16[ \t]+\.data\+0xc
+[ \t]*24:[ \t]+01000028[ \t]+mvk \.S1 0,a2
+[ \t]*24: R_C6000_ABS_L16[ \t]+\.data\+0x10
+[ \t]*28:[ \t]+01800068[ \t]+mvkh \.S1 0,a3
+[ \t]*28: R_C6000_ABS_H16[ \t]+\.data-0xec
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d
new file mode 100644
index 0000000..d91a693
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d
@@ -0,0 +1,19 @@
+#name: C6X MVK relocations, local symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: mvk-reloc-local-1-rel.s
+#source: mvk-reloc-local-2-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00804028[ \t]+mvk \.S1 128,a1
+10000004:[ \t]+01004228[ \t]+mvk \.S1 132,a2
+[ \t]*\.\.\.
+10000020:[ \t]+00804628[ \t]+mvk \.S1 140,a1
+10000024:[ \t]+01004828[ \t]+mvk \.S1 144,a2
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local.d
new file mode 100644
index 0000000..1b10c4d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local.d
@@ -0,0 +1,21 @@
+#name: C6X MVK relocations, local symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: mvk-reloc-local-1.s
+#source: mvk-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00804028[ \t]+mvk \.S1 128,a1
+10000004:[ \t]+01004228[ \t]+mvk \.S1 132,a2
+10000008:[ \t]+01800068[ \t]+mvkh \.S1 0,a3
+[ \t]*\.\.\.
+10000020:[ \t]+00804628[ \t]+mvk \.S1 140,a1
+10000024:[ \t]+01004828[ \t]+mvk \.S1 144,a2
+10000028:[ \t]+01ffffe8[ \t]+mvkh \.S1 4294901760,a3
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.d
new file mode 100644
index 0000000..8c35e04
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.d
@@ -0,0 +1,39 @@
+#name: C6X PCR relocations
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: pcr-reloc.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00800264[ \t]+ldw \.D1T1 \*\+a0\(0\),a1
+10000004:[ \t]+00800264[ \t]+ldw \.D1T1 \*\+a0\(0\),a1
+10000008:[ \t]+00800264[ \t]+ldw \.D1T1 \*\+a0\(0\),a1
+
+1000000c <[^>]*>:
+1000000c:[ \t]+004003e2[ \t]+mvc \.S2 pce1,b0
+10000010:[ \t]+01000264[ \t]+ldw \.D1T1 \*\+a0\(0\),a2
+10000014:[ \t]+01001a2a[ \t]+mvk \.S2 52,b2
+10000018:[ \t]+0100006a[ \t]+mvkh \.S2 0,b2
+1000001c:[ \t]+01000a2a[ \t]+mvk \.S2 20,b2
+10000020:[ \t]+0100006a[ \t]+mvkh \.S2 0,b2
+10000024:[ \t]+01001e2a[ \t]+mvk \.S2 60,b2
+10000028:[ \t]+0100006a[ \t]+mvkh \.S2 0,b2
+1000002c:[ \t]+01000e2a[ \t]+mvk \.S2 28,b2
+10000030:[ \t]+0100006a[ \t]+mvkh \.S2 0,b2
+
+10000034 <[^>]*>:
+10000034:[ \t]+00800264[ \t]+ldw \.D1T1 \*\+a0\(0\),a1
+
+10000038 <[^>]*>:
+10000038:[ \t]+004003e2[ \t]+mvc \.S2 pce1,b0
+
+1000003c <[^>]*>:
+1000003c:[ \t]+00800264[ \t]+ldw \.D1T1 \*\+a0\(0\),a1
+10000040:[ \t]+017ff02a[ \t]+mvk \.S2 -32,b2
+10000044:[ \t]+017fffea[ \t]+mvkh \.S2 4294901760,b2
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.s b/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.s
new file mode 100644
index 0000000..00362ff
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.s
@@ -0,0 +1,28 @@
+ .text
+ .align 5
+_start:
+L0:
+ ldw .d1t1 *a0,a1
+ ldw .d1t1 *a0,a1
+ ldw .d1t1 *a0,a1
+L1:
+ MVC .s2 PCE1, b0
+ ldw .d1t1 *a0,a2
+ mvk .s2 $PCR_OFFSET (S0,L1), b2
+ mvkh .s2 $PCR_OFFSET (S0,L1), b2
+ mvk .s2 $PCR_OFFSET (S0,L2), b2
+ mvkh .s2 $PCR_OFFSET (S0,L2), b2
+ mvk .s2 $PCR_OFFSET (S1,L1), b2
+ mvkh .s2 $PCR_OFFSET (S1,L1), b2
+ mvk .s2 $PCR_OFFSET (S1,L2), b2
+ mvkh .s2 $PCR_OFFSET (S1,L2), b2
+
+S0:
+ ldw .d1t1 *a0,a1
+L2:
+ MVC .s2 PCE1, b0
+
+S1:
+ ldw .d1t1 *a0,a1
+ mvkl .s2 $PCR_OFFSET (L0,L2), b2
+ mvkh .s2 $PCR_OFFSET (L0,L2), b2
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d
new file mode 100644
index 0000000..cf564e9
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d
@@ -0,0 +1,20 @@
+#name: C6X PC-relative relocations, global symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s7a=0x0fffff00 --defsym s7b=0x100000fc --defsym s10a=0x0ffff800 --defsym s10b=0x100007fc --defsym s12a=0x0fffe000 --defsym s12b=0x10001ffc --defsym s21a=0x0fc00000 --defsym s21b=0x103ffffc
+#source: pcrel-reloc-global.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00c00162[ \t]+addkpc \.S2 fffff00 <[^>]*>,b1,0
+10000004:[ \t]+00bf0162[ \t]+addkpc \.S2 100000fc <[^>]*>,b1,0
+10000008:[ \t]+08000012[ \t]+b \.S2 fc00000 <[^>]*>
+1000000c:[ \t]+07ffff92[ \t]+b \.S2 103ffffc <[^>]*>
+10000010:[ \t]+00c01022[ \t]+bdec \.S2 ffff800 <[^>]*>,b1
+10000014:[ \t]+00bff022[ \t]+bdec \.S2 100007fc <[^>]*>,b1
+10000018:[ \t]+08000122[ \t]+bnop \.S2 fffe000 <[^>]*>,0
+1000001c:[ \t]+07ff0122[ \t]+bnop \.S2 10001ffc <[^>]*>,0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.d
new file mode 100644
index 0000000..dbf6caa
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.d
@@ -0,0 +1,20 @@
+#name: C6X PC-relative relocations, global symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s7a=0x0fffff00 --defsym s7b=0x100000fc --defsym s10a=0x0ffff800 --defsym s10b=0x100007fc --defsym s12a=0x0fffe000 --defsym s12b=0x10001ffc --defsym s21a=0x0fc00000 --defsym s21b=0x103ffffc
+#source: pcrel-reloc-global.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00c00162[ \t]+addkpc \.S2 fffff00 <[^>]*>,b1,0
+10000004:[ \t]+00bf0162[ \t]+addkpc \.S2 100000fc <[^>]*>,b1,0
+10000008:[ \t]+08000012[ \t]+b \.S2 fc00000 <[^>]*>
+1000000c:[ \t]+07ffff92[ \t]+b \.S2 103ffffc <[^>]*>
+10000010:[ \t]+00c01022[ \t]+bdec \.S2 ffff800 <[^>]*>,b1
+10000014:[ \t]+00bff022[ \t]+bdec \.S2 100007fc <[^>]*>,b1
+10000018:[ \t]+08000122[ \t]+bnop \.S2 fffe000 <[^>]*>,0
+1000001c:[ \t]+07ff0122[ \t]+bnop \.S2 10001ffc <[^>]*>,0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.s b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.s
new file mode 100644
index 0000000..b5fbf2a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.s
@@ -0,0 +1,18 @@
+.globl s7a
+.globl s7b
+.globl s21a
+.globl s21b
+.globl s10a
+.globl s10b
+.globl s12a
+.globl s12b
+.text
+.nocmp
+ addkpc .S2 s7a,b1,0
+ addkpc .S2 s7b,b1,0
+ b .S2 s21a
+ b .S2 s21b
+ bdec .S2 s10a,b1
+ bdec .S2 s10b,b1
+ bnop .S2 s12a,0
+ bnop .S2 s12b,0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s
new file mode 100644
index 0000000..5a750e7
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s
@@ -0,0 +1,16 @@
+.text
+.nocmp
+ nop
+ addkpc .S2 f1,b1,0
+ addkpc .S2 f2,b1,0
+ b .S2 f1
+ b .S2 f2
+ bdec .S2 f1,b1
+ bdec .S2 f2,b1
+ bnop .S2 f1,0
+ bnop .S2 f2,0
+.section .text.1,"ax",@progbits
+f1:
+ nop
+f2:
+ nop
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s
new file mode 100644
index 0000000..287165f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s
@@ -0,0 +1,16 @@
+.text
+.nocmp
+ nop
+ bnop .S2 f3,0
+ bnop .S2 f4,0
+ bdec .S2 f3,b1
+ bdec .S2 f4,b1
+ b .S2 f3
+ b .S2 f4
+ addkpc .S2 f3,b1,0
+ addkpc .S2 f4,b1,0
+.section .text.1,"ax",@progbits
+f3:
+ nop
+f4:
+ nop
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d
new file mode 100644
index 0000000..81cfc6c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d
@@ -0,0 +1,62 @@
+#name: C6X PC-relative relocations, local symbols, -r, mixed link of REL/RELA
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: pcrel-reloc-local-1.s -mgenerate-rel
+#source: pcrel-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+[ \t]*4:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0
+[ \t]*4: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*8:[ \t]+00810162[ \t]+addkpc \.S2 4 <[^>]*>,b1,0
+[ \t]*8: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*c:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*>
+[ \t]*c: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*10:[ \t]+00000092[ \t]+b \.S2 4 <[^>]*>
+[ \t]*10: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*14:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1
+[ \t]*14: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*18:[ \t]+00803022[ \t]+bdec \.S2 4 <[^>]*>,b1
+[ \t]*18: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*1c:[ \t]+00000122[ \t]+bnop \.S2 0 <[^>]*>,0
+[ \t]*1c: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*20:[ \t]+00010122[ \t]+bnop \.S2 24 <[^>]*>,0
+[ \t]*20: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*\.\.\.
+[ \t]*44:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0
+[ \t]*44: R_C6000_PCR_S12[ \t]+\.text\.1\+0x20
+[ \t]*48:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0
+[ \t]*48: R_C6000_PCR_S12[ \t]+\.text\.1\+0x24
+[ \t]*4c:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1
+[ \t]*4c: R_C6000_PCR_S10[ \t]+\.text\.1\+0x20
+[ \t]*50:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1
+[ \t]*50: R_C6000_PCR_S10[ \t]+\.text\.1\+0x24
+[ \t]*54:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*>
+[ \t]*54: R_C6000_PCR_S21[ \t]+\.text\.1\+0x20
+[ \t]*58:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*>
+[ \t]*58: R_C6000_PCR_S21[ \t]+\.text\.1\+0x24
+[ \t]*5c:[ \t]+00800162[ \t]+addkpc \.S2 40 <[^>]*>,b1,0
+[ \t]*5c: R_C6000_PCR_S7[ \t]+\.text\.1\+0x20
+[ \t]*60:[ \t]+00800162[ \t]+addkpc \.S2 60 <[^>]*>,b1,0
+[ \t]*60: R_C6000_PCR_S7[ \t]+\.text\.1\+0x24
+[ \t]*\.\.\.
+
+Disassembly of section \.text\.1:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+
+0+4 <[^>]*>:
+[ \t]*\.\.\.
+
+0+20 <[^>]*>:
+[ \t]*20:[ \t]+00000000[ \t]+nop 1
+
+0+24 <[^>]*>:
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d
new file mode 100644
index 0000000..e54c370
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d
@@ -0,0 +1,62 @@
+#name: C6X PC-relative relocations, local symbols, -r, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -r -melf32_tic6x_le
+#source: pcrel-reloc-local-1.s
+#source: pcrel-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+[ \t]*4:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0
+[ \t]*4: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*8:[ \t]+00810162[ \t]+addkpc \.S2 4 <[^>]*>,b1,0
+[ \t]*8: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*c:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*>
+[ \t]*c: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*10:[ \t]+00000092[ \t]+b \.S2 4 <[^>]*>
+[ \t]*10: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*14:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1
+[ \t]*14: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*18:[ \t]+00803022[ \t]+bdec \.S2 4 <[^>]*>,b1
+[ \t]*18: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*1c:[ \t]+00000122[ \t]+bnop \.S2 0 <[^>]*>,0
+[ \t]*1c: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*20:[ \t]+00010122[ \t]+bnop \.S2 24 <[^>]*>,0
+[ \t]*20: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*\.\.\.
+[ \t]*44:[ \t]+00080122[ \t]+bnop \.S2 60 <[^>]*>,0
+[ \t]*44: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*48:[ \t]+00090122[ \t]+bnop \.S2 64 <[^>]*>,0
+[ \t]*48: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*4c:[ \t]+00811022[ \t]+bdec \.S2 60 <[^>]*>,b1
+[ \t]*4c: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*50:[ \t]+00813022[ \t]+bdec \.S2 64 <[^>]*>,b1
+[ \t]*50: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*54:[ \t]+00000412[ \t]+b \.S2 60 <[^>]*>
+[ \t]*54: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*58:[ \t]+00000492[ \t]+b \.S2 64 <[^>]*>
+[ \t]*58: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*5c:[ \t]+00880162[ \t]+addkpc \.S2 60 <[^>]*>,b1,0
+[ \t]*5c: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*60:[ \t]+00890162[ \t]+addkpc \.S2 84 <[^>]*>,b1,0
+[ \t]*60: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*\.\.\.
+
+Disassembly of section \.text\.1:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+
+0+4 <[^>]*>:
+[ \t]*\.\.\.
+
+0+20 <[^>]*>:
+[ \t]*20:[ \t]+00000000[ \t]+nop 1
+
+0+24 <[^>]*>:
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d
new file mode 100644
index 0000000..fa54742
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d
@@ -0,0 +1,62 @@
+#name: C6X PC-relative relocations, local symbols, -r
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: pcrel-reloc-local-1.s
+#source: pcrel-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+[ \t]*4:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0
+[ \t]*4: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*8:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0
+[ \t]*8: R_C6000_PCR_S7[ \t]+\.text\.1\+0x4
+[ \t]*c:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*>
+[ \t]*c: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*10:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*>
+[ \t]*10: R_C6000_PCR_S21[ \t]+\.text\.1\+0x4
+[ \t]*14:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1
+[ \t]*14: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*18:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1
+[ \t]*18: R_C6000_PCR_S10[ \t]+\.text\.1\+0x4
+[ \t]*1c:[ \t]+00000122[ \t]+bnop \.S2 0 <[^>]*>,0
+[ \t]*1c: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*20:[ \t]+00000122[ \t]+bnop \.S2 20 <[^>]*>,0
+[ \t]*20: R_C6000_PCR_S12[ \t]+\.text\.1\+0x4
+[ \t]*\.\.\.
+[ \t]*44:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0
+[ \t]*44: R_C6000_PCR_S12[ \t]+\.text\.1\+0x20
+[ \t]*48:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0
+[ \t]*48: R_C6000_PCR_S12[ \t]+\.text\.1\+0x24
+[ \t]*4c:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1
+[ \t]*4c: R_C6000_PCR_S10[ \t]+\.text\.1\+0x20
+[ \t]*50:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1
+[ \t]*50: R_C6000_PCR_S10[ \t]+\.text\.1\+0x24
+[ \t]*54:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*>
+[ \t]*54: R_C6000_PCR_S21[ \t]+\.text\.1\+0x20
+[ \t]*58:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*>
+[ \t]*58: R_C6000_PCR_S21[ \t]+\.text\.1\+0x24
+[ \t]*5c:[ \t]+00800162[ \t]+addkpc \.S2 40 <[^>]*>,b1,0
+[ \t]*5c: R_C6000_PCR_S7[ \t]+\.text\.1\+0x20
+[ \t]*60:[ \t]+00800162[ \t]+addkpc \.S2 60 <[^>]*>,b1,0
+[ \t]*60: R_C6000_PCR_S7[ \t]+\.text\.1\+0x24
+[ \t]*\.\.\.
+
+Disassembly of section \.text\.1:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+
+0+4 <[^>]*>:
+[ \t]*\.\.\.
+
+0+20 <[^>]*>:
+[ \t]*20:[ \t]+00000000[ \t]+nop 1
+
+0+24 <[^>]*>:
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d
new file mode 100644
index 0000000..108ad53
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d
@@ -0,0 +1,44 @@
+#name: C6X PC-relative relocations, local symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: pcrel-reloc-local-1.s
+#source: pcrel-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00000000[ \t]+nop 1
+10000004:[ \t]+00900162[ \t]+addkpc \.S2 10000040 <[^>]*>,b1,0
+10000008:[ \t]+00910162[ \t]+addkpc \.S2 10000044 <[^>]*>,b1,0
+1000000c:[ \t]+00000812[ \t]+b \.S2 10000040 <[^>]*>
+10000010:[ \t]+00000892[ \t]+b \.S2 10000044 <[^>]*>
+10000014:[ \t]+00821022[ \t]+bdec \.S2 10000040 <[^>]*>,b1
+10000018:[ \t]+00823022[ \t]+bdec \.S2 10000044 <[^>]*>,b1
+1000001c:[ \t]+00100122[ \t]+bnop \.S2 10000040 <[^>]*>,0
+10000020:[ \t]+00090122[ \t]+bnop \.S2 10000044 <[^>]*>,0
+[ \t]*\.\.\.
+
+10000040 <[^>]*>:
+10000040:[ \t]+00000000[ \t]+nop 1
+
+10000044 <[^>]*>:
+[ \t]*\.\.\.
+10000064:[ \t]+00100122[ \t]+bnop \.S2 100000a0 <[^>]*>,0
+10000068:[ \t]+00110122[ \t]+bnop \.S2 100000a4 <[^>]*>,0
+1000006c:[ \t]+00821022[ \t]+bdec \.S2 100000a0 <[^>]*>,b1
+10000070:[ \t]+00823022[ \t]+bdec \.S2 100000a4 <[^>]*>,b1
+10000074:[ \t]+00000812[ \t]+b \.S2 100000a0 <[^>]*>
+10000078:[ \t]+00000892[ \t]+b \.S2 100000a4 <[^>]*>
+1000007c:[ \t]+00900162[ \t]+addkpc \.S2 100000a0 <[^>]*>,b1,0
+10000080:[ \t]+00890162[ \t]+addkpc \.S2 100000a4 <[^>]*>,b1,0
+[ \t]*\.\.\.
+
+100000a0 <[^>]*>:
+100000a0:[ \t]+00000000[ \t]+nop 1
+
+100000a4 <[^>]*>:
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local.d
new file mode 100644
index 0000000..b7cd444
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local.d
@@ -0,0 +1,44 @@
+#name: C6X PC-relative relocations, local symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: pcrel-reloc-local-1.s
+#source: pcrel-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00000000[ \t]+nop 1
+10000004:[ \t]+00900162[ \t]+addkpc \.S2 10000040 <[^>]*>,b1,0
+10000008:[ \t]+00910162[ \t]+addkpc \.S2 10000044 <[^>]*>,b1,0
+1000000c:[ \t]+00000812[ \t]+b \.S2 10000040 <[^>]*>
+10000010:[ \t]+00000892[ \t]+b \.S2 10000044 <[^>]*>
+10000014:[ \t]+00821022[ \t]+bdec \.S2 10000040 <[^>]*>,b1
+10000018:[ \t]+00823022[ \t]+bdec \.S2 10000044 <[^>]*>,b1
+1000001c:[ \t]+00100122[ \t]+bnop \.S2 10000040 <[^>]*>,0
+10000020:[ \t]+00090122[ \t]+bnop \.S2 10000044 <[^>]*>,0
+[ \t]*\.\.\.
+
+10000040 <[^>]*>:
+10000040:[ \t]+00000000[ \t]+nop 1
+
+10000044 <[^>]*>:
+[ \t]*\.\.\.
+10000064:[ \t]+00100122[ \t]+bnop \.S2 100000a0 <[^>]*>,0
+10000068:[ \t]+00110122[ \t]+bnop \.S2 100000a4 <[^>]*>,0
+1000006c:[ \t]+00821022[ \t]+bdec \.S2 100000a0 <[^>]*>,b1
+10000070:[ \t]+00823022[ \t]+bdec \.S2 100000a4 <[^>]*>,b1
+10000074:[ \t]+00000812[ \t]+b \.S2 100000a0 <[^>]*>
+10000078:[ \t]+00000892[ \t]+b \.S2 100000a4 <[^>]*>
+1000007c:[ \t]+00900162[ \t]+addkpc \.S2 100000a0 <[^>]*>,b1,0
+10000080:[ \t]+00890162[ \t]+addkpc \.S2 100000a4 <[^>]*>,b1,0
+[ \t]*\.\.\.
+
+100000a0 <[^>]*>:
+100000a0:[ \t]+00000000[ \t]+nop 1
+
+100000a4 <[^>]*>:
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d
new file mode 100644
index 0000000..6046491
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, ABS_S16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x8000
+#source: reloc-overflow-abs-s16.s
+#error: .*relocation truncated to fit: R_C6000_ABS_S16.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d
new file mode 100644
index 0000000..1119665
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, ABS_S16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0xffff7fff
+#source: reloc-overflow-abs-s16.s
+#error: .*relocation truncated to fit: R_C6000_ABS_S16.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s
new file mode 100644
index 0000000..023d7b2
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ mvk .S1 s,a1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d
new file mode 100644
index 0000000..5344944
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, ABS16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10000
+#source: reloc-overflow-abs16.s
+#error: .*relocation truncated to fit: R_C6000_ABS16.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d
new file mode 100644
index 0000000..9b858a8
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, ABS16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0xffff7fff
+#source: reloc-overflow-abs16.s
+#error: .*relocation truncated to fit: R_C6000_ABS16.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16.s
new file mode 100644
index 0000000..a8c2200
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16.s
@@ -0,0 +1,3 @@
+.globl s
+.data
+ .short s
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d
new file mode 100644
index 0000000..1bb87fc
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, ABS8
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x100
+#source: reloc-overflow-abs8.s
+#error: .*relocation truncated to fit: R_C6000_ABS8.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d
new file mode 100644
index 0000000..85df882
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, ABS8
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0xffffff7f
+#source: reloc-overflow-abs8.s
+#error: .*relocation truncated to fit: R_C6000_ABS8.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8.s
new file mode 100644
index 0000000..e08a65e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8.s
@@ -0,0 +1,3 @@
+.globl s
+.data
+ .byte s
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d
new file mode 100644
index 0000000..a19131c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, PCR_S10
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10000800
+#source: reloc-overflow-pcr-s10.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S10.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d
new file mode 100644
index 0000000..7ca26fb
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, PCR_S10
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0ffff7fc
+#source: reloc-overflow-pcr-s10.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S10.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s
new file mode 100644
index 0000000..302eef0
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ bdec .S2 s,b1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d
new file mode 100644
index 0000000..60e8717
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, PCR_S12
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10002000
+#source: reloc-overflow-pcr-s12.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S12.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d
new file mode 100644
index 0000000..6a90764
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, PCR_S12
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0fffdffc
+#source: reloc-overflow-pcr-s12.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S12.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s
new file mode 100644
index 0000000..ea7946d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ bnop .S2 s,0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d
new file mode 100644
index 0000000..4b8ca82
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, PCR_S21
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10400000
+#source: reloc-overflow-pcr-s21.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S21.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d
new file mode 100644
index 0000000..1339b7b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, PCR_S21
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0fbffffc
+#source: reloc-overflow-pcr-s21.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S21.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s
new file mode 100644
index 0000000..c902884
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ b .S2 s
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d
new file mode 100644
index 0000000..f4391ff
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, PCR_S7
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10000100
+#source: reloc-overflow-pcr-s7.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S7.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d
new file mode 100644
index 0000000..e0db0f1
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, PCR_S7
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0ffffefc
+#source: reloc-overflow-pcr-s7.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S7.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s
new file mode 100644
index 0000000..58df0c6
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ addkpc .S2 s,b1,0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d
new file mode 100644
index 0000000..2712e90
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, SBR_S16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x8080
+#source: reloc-overflow-sbr-s16.s
+#error: .*relocation truncated to fit: R_C6000_SBR_S16.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d
new file mode 100644
index 0000000..144e414
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, SBR_S16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0xffff807f
+#source: reloc-overflow-sbr-s16.s
+#error: .*relocation truncated to fit: R_C6000_SBR_S16.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s
new file mode 100644
index 0000000..d208c8c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ mvk .S1 $dpr_byte(s),a1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d
new file mode 100644
index 0000000..d21ab5f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, SBR_U15_B
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x8080
+#source: reloc-overflow-sbr-u15-b.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_B.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d
new file mode 100644
index 0000000..f3b48b6
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, SBR_U15_B
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x7f
+#source: reloc-overflow-sbr-u15-b.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_B.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s
new file mode 100644
index 0000000..8fcd019
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ ldb .D2T2 *+b14(s),b1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d
new file mode 100644
index 0000000..178b781
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, SBR_U15_H
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x10080
+#source: reloc-overflow-sbr-u15-h.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_H.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d
new file mode 100644
index 0000000..914ec48
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, SBR_U15_H
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x7e
+#source: reloc-overflow-sbr-u15-h.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_H.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s
new file mode 100644
index 0000000..ed54caa
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ ldh .D2T2 *+b14(s),b1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d
new file mode 100644
index 0000000..e152f85
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, SBR_U15_W
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x20080
+#source: reloc-overflow-sbr-u15-w.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_W.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d
new file mode 100644
index 0000000..995bee2
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, SBR_U15_W
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x7c
+#source: reloc-overflow-sbr-u15-w.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_W.*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s
new file mode 100644
index 0000000..1f6208c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ ldw .D2T2 *+b14(s),b1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d
new file mode 100644
index 0000000..bc88717
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d
@@ -0,0 +1,24 @@
+#name: C6X SB-relative relocations, global symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym sw1=0x80 --defsym sw2=0x2007c --defsym sh1=0x80 --defsym sh2=0x1007e --defsym sb1=0x80 --defsym sb2=0x807f --defsym sb16a=0xffff8080 --defsym sb16b=0x807f --defsym sbw=0x123456f8 --defsym shw=0x2468ad70 --defsym sww=0x48d15a60
+#source: sbr-reloc-global-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+10000004:[ \t]+00ffff6e[ \t]+ldw \.D2T2 \*\+b14\(131068\),b1
+10000008:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+1000000c:[ \t]+00ffff4e[ \t]+ldh \.D2T2 \*\+b14\(65534\),b1
+10000010:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+10000014:[ \t]+00ffff2e[ \t]+ldb \.D2T2 \*\+b14\(32767\),b1
+10000018:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+1000001c:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1
+10000020:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+10000024:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+10000028:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s
new file mode 100644
index 0000000..515e03e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s
@@ -0,0 +1,24 @@
+.globl sw1
+.globl sw2
+.globl sh1
+.globl sh2
+.globl sb1
+.globl sb2
+.globl sb16a
+.globl sb16b
+.globl sbw
+.globl shw
+.globl sww
+.text
+.nocmp
+ ldw .D2T2 *+b14(sw1),b1
+ ldw .D2T2 *+b14(sw2),b1
+ ldh .D2T2 *+b14(sh1),b1
+ ldh .D2T2 *+b14(sh2),b1
+ ldb .D2T2 *+b14(sb1),b1
+ ldb .D2T2 *+b14(sb2),b1
+ mvk .S1 $dpr_byte(sb16a),a1
+ mvk .S1 $dpr_byte(sb16b),a1
+ mvkl .S1 $dpr_byte(sbw),a1
+ mvkl .S1 $dpr_hword(shw),a1
+ mvkl .S1 $dpr_word(sww),a1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.d
new file mode 100644
index 0000000..92bf89c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.d
@@ -0,0 +1,27 @@
+#name: C6X SB-relative relocations, global symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym sw1=0x80 --defsym sw2=0x2007c --defsym sh1=0x80 --defsym sh2=0x1007e --defsym sb1=0x80 --defsym sb2=0x807f --defsym sb16a=0xffff8080 --defsym sb16b=0x807f --defsym sbw=0x123456f8 --defsym shw=0x2468ad70 --defsym sww=0x48d15a60
+#source: sbr-reloc-global.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+10000004:[ \t]+00ffff6e[ \t]+ldw \.D2T2 \*\+b14\(131068\),b1
+10000008:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+1000000c:[ \t]+00ffff4e[ \t]+ldh \.D2T2 \*\+b14\(65534\),b1
+10000010:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+10000014:[ \t]+00ffff2e[ \t]+ldb \.D2T2 \*\+b14\(32767\),b1
+10000018:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+1000001c:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1
+10000020:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+10000024:[ \t]+00891a68[ \t]+mvkh \.S1 305397760,a1
+10000028:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+1000002c:[ \t]+00891a68[ \t]+mvkh \.S1 305397760,a1
+10000030:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+10000034:[ \t]+00891a68[ \t]+mvkh \.S1 305397760,a1
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.s
new file mode 100644
index 0000000..12edd08
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.s
@@ -0,0 +1,27 @@
+.globl sw1
+.globl sw2
+.globl sh1
+.globl sh2
+.globl sb1
+.globl sb2
+.globl sb16a
+.globl sb16b
+.globl sbw
+.globl shw
+.globl sww
+.text
+.nocmp
+ ldw .D2T2 *+b14(sw1),b1
+ ldw .D2T2 *+b14(sw2),b1
+ ldh .D2T2 *+b14(sh1),b1
+ ldh .D2T2 *+b14(sh2),b1
+ ldb .D2T2 *+b14(sb1),b1
+ ldb .D2T2 *+b14(sb2),b1
+ mvk .S1 $dpr_byte(sb16a),a1
+ mvk .S1 $dpr_byte(sb16b),a1
+ mvkl .S1 $dpr_byte(sbw),a1
+ mvkh .S1 $dpr_byte(sbw),a1
+ mvkl .S1 $dpr_hword(shw),a1
+ mvkh .S1 $dpr_hword(shw),a1
+ mvkl .S1 $dpr_word(sww),a1
+ mvkh .S1 $dpr_word(sww),a1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s
new file mode 100644
index 0000000..1316496
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s
@@ -0,0 +1,21 @@
+.text
+.nocmp
+ ldw .D2T2 *+b14(a),b1
+ ldw .D2T2 *+b14(b),b1
+ ldh .D2T2 *+b14(b),b1
+ ldh .D2T2 *+b14(c),b1
+ ldb .D2T2 *+b14(c),b1
+ ldb .D2T2 *+b14(d),b1
+ mvk .S1 $dpr_byte(d),a1
+ mvkl .S1 $dpr_byte(c),a1
+ mvkl .S1 $dpr_hword(b),a1
+ mvkl .S1 $dpr_word(a),a1
+.data
+a:
+ .word 0
+b:
+ .short 0
+c:
+ .byte 0
+d:
+ .byte 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1.s
new file mode 100644
index 0000000..25bb75c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1.s
@@ -0,0 +1,24 @@
+.text
+.nocmp
+ ldw .D2T2 *+b14(a),b1
+ ldw .D2T2 *+b14(b),b1
+ ldh .D2T2 *+b14(b),b1
+ ldh .D2T2 *+b14(c),b1
+ ldb .D2T2 *+b14(c),b1
+ ldb .D2T2 *+b14(d),b1
+ mvk .S1 $dpr_byte(d),a1
+ mvkl .S1 $dpr_byte(c),a1
+ mvkh .S1 $dpr_byte(d),a1
+ mvkl .S1 $dpr_hword(b),a1
+ mvkh .S1 $dpr_hword(c),a1
+ mvkl .S1 $dpr_word(a),a1
+ mvkh .S1 $dpr_word(b),a1
+.data
+a:
+ .word 0
+b:
+ .short 0
+c:
+ .byte 0
+d:
+ .byte 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s
new file mode 100644
index 0000000..e1268fb
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s
@@ -0,0 +1,21 @@
+.text
+.nocmp
+ ldw .D2T2 *+b14(e),b1
+ ldw .D2T2 *+b14(f),b1
+ ldh .D2T2 *+b14(f),b1
+ ldh .D2T2 *+b14(g),b1
+ ldb .D2T2 *+b14(g),b1
+ ldb .D2T2 *+b14(h),b1
+ mvk .S1 $dpr_byte(h),a1
+ mvkl .S1 $dpr_byte(g),a1
+ mvkl .S1 $dpr_hword(f),a1
+ mvkl .S1 $dpr_word(e),a1
+.data
+e:
+ .word 0
+f:
+ .short 0
+g:
+ .byte 0
+h:
+ .byte 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2.s
new file mode 100644
index 0000000..2ced424
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2.s
@@ -0,0 +1,24 @@
+.text
+.nocmp
+ ldw .D2T2 *+b14(e),b1
+ ldw .D2T2 *+b14(f),b1
+ ldh .D2T2 *+b14(f),b1
+ ldh .D2T2 *+b14(g),b1
+ ldb .D2T2 *+b14(g),b1
+ ldb .D2T2 *+b14(h),b1
+ mvk .S1 $dpr_byte(h),a1
+ mvkl .S1 $dpr_byte(g),a1
+ mvkh .S1 $dpr_byte(h),a1
+ mvkl .S1 $dpr_hword(f),a1
+ mvkh .S1 $dpr_hword(g),a1
+ mvkl .S1 $dpr_word(e),a1
+ mvkh .S1 $dpr_word(f),a1
+.data
+e:
+ .word 0
+f:
+ .short 0
+g:
+ .byte 0
+h:
+ .byte 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d
new file mode 100644
index 0000000..801c6a2
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d
@@ -0,0 +1,55 @@
+#name: C6X SB-relative relocations, local symbols, -r, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -r -melf32_tic6x_le
+#source: sbr-reloc-local-1-rel.s
+#source: sbr-reloc-local-2-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+[ \t]*0: R_C6000_SBR_U15_W[ \t]+\.data
+[ \t]*4:[ \t]+0080016e[ \t]+ldw \.D2T2 \*\+b14\(4\),b1
+[ \t]*4: R_C6000_SBR_U15_W[ \t]+\.data
+[ \t]*8:[ \t]+0080024e[ \t]+ldh \.D2T2 \*\+b14\(4\),b1
+[ \t]*8: R_C6000_SBR_U15_H[ \t]+\.data
+[ \t]*c:[ \t]+0080034e[ \t]+ldh \.D2T2 \*\+b14\(6\),b1
+[ \t]*c: R_C6000_SBR_U15_H[ \t]+\.data
+[ \t]*10:[ \t]+0080062e[ \t]+ldb \.D2T2 \*\+b14\(6\),b1
+[ \t]*10: R_C6000_SBR_U15_B[ \t]+\.data
+[ \t]*14:[ \t]+0080072e[ \t]+ldb \.D2T2 \*\+b14\(7\),b1
+[ \t]*14: R_C6000_SBR_U15_B[ \t]+\.data
+[ \t]*18:[ \t]+008003a8[ \t]+mvk \.S1 7,a1
+[ \t]*18: R_C6000_SBR_S16[ \t]+\.data
+[ \t]*1c:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+[ \t]*1c: R_C6000_SBR_L16_B[ \t]+\.data
+[ \t]*20:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+[ \t]*20: R_C6000_SBR_L16_H[ \t]+\.data
+[ \t]*24:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*24: R_C6000_SBR_L16_W[ \t]+\.data
+[ \t]*\.\.\.
+[ \t]*40:[ \t]+0080026e[ \t]+ldw \.D2T2 \*\+b14\(8\),b1
+[ \t]*40: R_C6000_SBR_U15_W[ \t]+\.data
+[ \t]*44:[ \t]+0080036e[ \t]+ldw \.D2T2 \*\+b14\(12\),b1
+[ \t]*44: R_C6000_SBR_U15_W[ \t]+\.data
+[ \t]*48:[ \t]+0080064e[ \t]+ldh \.D2T2 \*\+b14\(12\),b1
+[ \t]*48: R_C6000_SBR_U15_H[ \t]+\.data
+[ \t]*4c:[ \t]+0080074e[ \t]+ldh \.D2T2 \*\+b14\(14\),b1
+[ \t]*4c: R_C6000_SBR_U15_H[ \t]+\.data
+[ \t]*50:[ \t]+00800e2e[ \t]+ldb \.D2T2 \*\+b14\(14\),b1
+[ \t]*50: R_C6000_SBR_U15_B[ \t]+\.data
+[ \t]*54:[ \t]+00800f2e[ \t]+ldb \.D2T2 \*\+b14\(15\),b1
+[ \t]*54: R_C6000_SBR_U15_B[ \t]+\.data
+[ \t]*58:[ \t]+008007a8[ \t]+mvk \.S1 15,a1
+[ \t]*58: R_C6000_SBR_S16[ \t]+\.data
+[ \t]*5c:[ \t]+00800728[ \t]+mvk \.S1 14,a1
+[ \t]*5c: R_C6000_SBR_L16_B[ \t]+\.data
+[ \t]*60:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+[ \t]*60: R_C6000_SBR_L16_H[ \t]+\.data
+[ \t]*64:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+[ \t]*64: R_C6000_SBR_L16_W[ \t]+\.data
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r.d
new file mode 100644
index 0000000..fdb2e14
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r.d
@@ -0,0 +1,67 @@
+#name: C6X SB-relative relocations, local symbols, -r
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: sbr-reloc-local-1.s
+#source: sbr-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+[ \t]*0: R_C6000_SBR_U15_W[ \t]+\.data
+[ \t]*4:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+[ \t]*4: R_C6000_SBR_U15_W[ \t]+\.data\+0x4
+[ \t]*8:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+[ \t]*8: R_C6000_SBR_U15_H[ \t]+\.data\+0x4
+[ \t]*c:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+[ \t]*c: R_C6000_SBR_U15_H[ \t]+\.data\+0x6
+[ \t]*10:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+[ \t]*10: R_C6000_SBR_U15_B[ \t]+\.data\+0x6
+[ \t]*14:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+[ \t]*14: R_C6000_SBR_U15_B[ \t]+\.data\+0x7
+[ \t]*18:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*18: R_C6000_SBR_S16[ \t]+\.data\+0x7
+[ \t]*1c:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*1c: R_C6000_SBR_L16_B[ \t]+\.data\+0x6
+[ \t]*20:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*20: R_C6000_SBR_H16_B[ \t]+\.data\+0x7
+[ \t]*24:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*24: R_C6000_SBR_L16_H[ \t]+\.data\+0x4
+[ \t]*28:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*28: R_C6000_SBR_H16_H[ \t]+\.data\+0x6
+[ \t]*2c:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*2c: R_C6000_SBR_L16_W[ \t]+\.data
+[ \t]*30:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*30: R_C6000_SBR_H16_W[ \t]+\.data\+0x4
+[ \t]*\.\.\.
+[ \t]*40:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+[ \t]*40: R_C6000_SBR_U15_W[ \t]+\.data\+0x8
+[ \t]*44:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+[ \t]*44: R_C6000_SBR_U15_W[ \t]+\.data\+0xc
+[ \t]*48:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+[ \t]*48: R_C6000_SBR_U15_H[ \t]+\.data\+0xc
+[ \t]*4c:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+[ \t]*4c: R_C6000_SBR_U15_H[ \t]+\.data\+0xe
+[ \t]*50:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+[ \t]*50: R_C6000_SBR_U15_B[ \t]+\.data\+0xe
+[ \t]*54:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+[ \t]*54: R_C6000_SBR_U15_B[ \t]+\.data\+0xf
+[ \t]*58:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*58: R_C6000_SBR_S16[ \t]+\.data\+0xf
+[ \t]*5c:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*5c: R_C6000_SBR_L16_B[ \t]+\.data\+0xe
+[ \t]*60:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*60: R_C6000_SBR_H16_B[ \t]+\.data\+0xf
+[ \t]*64:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*64: R_C6000_SBR_L16_H[ \t]+\.data\+0xc
+[ \t]*68:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*68: R_C6000_SBR_H16_H[ \t]+\.data\+0xe
+[ \t]*6c:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*6c: R_C6000_SBR_L16_W[ \t]+\.data\+0x8
+[ \t]*70:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*70: R_C6000_SBR_H16_W[ \t]+\.data\+0xc
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d
new file mode 100644
index 0000000..005167e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d
@@ -0,0 +1,35 @@
+#name: C6X SB-relative relocations, local symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tsbr.ld
+#source: sbr-reloc-local-1-rel.s
+#source: sbr-reloc-local-2-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+10000004:[ \t]+0080016e[ \t]+ldw \.D2T2 \*\+b14\(4\),b1
+10000008:[ \t]+0080024e[ \t]+ldh \.D2T2 \*\+b14\(4\),b1
+1000000c:[ \t]+0080034e[ \t]+ldh \.D2T2 \*\+b14\(6\),b1
+10000010:[ \t]+0080062e[ \t]+ldb \.D2T2 \*\+b14\(6\),b1
+10000014:[ \t]+0080072e[ \t]+ldb \.D2T2 \*\+b14\(7\),b1
+10000018:[ \t]+008003a8[ \t]+mvk \.S1 7,a1
+1000001c:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+10000020:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+10000024:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*\.\.\.
+10000040:[ \t]+0080026e[ \t]+ldw \.D2T2 \*\+b14\(8\),b1
+10000044:[ \t]+0080036e[ \t]+ldw \.D2T2 \*\+b14\(12\),b1
+10000048:[ \t]+0080064e[ \t]+ldh \.D2T2 \*\+b14\(12\),b1
+1000004c:[ \t]+0080074e[ \t]+ldh \.D2T2 \*\+b14\(14\),b1
+10000050:[ \t]+00800e2e[ \t]+ldb \.D2T2 \*\+b14\(14\),b1
+10000054:[ \t]+00800f2e[ \t]+ldb \.D2T2 \*\+b14\(15\),b1
+10000058:[ \t]+008007a8[ \t]+mvk \.S1 15,a1
+1000005c:[ \t]+00800728[ \t]+mvk \.S1 14,a1
+10000060:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+10000064:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local.d
new file mode 100644
index 0000000..0db2c24
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local.d
@@ -0,0 +1,41 @@
+#name: C6X SB-relative relocations, local symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld
+#source: sbr-reloc-local-1.s
+#source: sbr-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+10000004:[ \t]+0080016e[ \t]+ldw \.D2T2 \*\+b14\(4\),b1
+10000008:[ \t]+0080024e[ \t]+ldh \.D2T2 \*\+b14\(4\),b1
+1000000c:[ \t]+0080034e[ \t]+ldh \.D2T2 \*\+b14\(6\),b1
+10000010:[ \t]+0080062e[ \t]+ldb \.D2T2 \*\+b14\(6\),b1
+10000014:[ \t]+0080072e[ \t]+ldb \.D2T2 \*\+b14\(7\),b1
+10000018:[ \t]+008003a8[ \t]+mvk \.S1 7,a1
+1000001c:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+10000020:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+10000024:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+10000028:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+1000002c:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000030:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*\.\.\.
+10000040:[ \t]+0080026e[ \t]+ldw \.D2T2 \*\+b14\(8\),b1
+10000044:[ \t]+0080036e[ \t]+ldw \.D2T2 \*\+b14\(12\),b1
+10000048:[ \t]+0080064e[ \t]+ldh \.D2T2 \*\+b14\(12\),b1
+1000004c:[ \t]+0080074e[ \t]+ldh \.D2T2 \*\+b14\(14\),b1
+10000050:[ \t]+00800e2e[ \t]+ldb \.D2T2 \*\+b14\(14\),b1
+10000054:[ \t]+00800f2e[ \t]+ldb \.D2T2 \*\+b14\(15\),b1
+10000058:[ \t]+008007a8[ \t]+mvk \.S1 15,a1
+1000005c:[ \t]+00800728[ \t]+mvk \.S1 14,a1
+10000060:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+10000064:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+10000068:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+1000006c:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+10000070:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr.ld b/binutils-2.24/ld/testsuite/ld-tic6x/sbr.ld
new file mode 100644
index 0000000..909f589
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr.ld
@@ -0,0 +1,9 @@
+EXTERN (__c6xabi_DSBT_BASE);
+SECTIONS
+{
+ . = 0x80;
+ .data : { PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .); *(.data*) }
+ . = 0x10000000;
+ .text : { *(.text*) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopic.d b/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopic.d
new file mode 100644
index 0000000..8748f10
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopic.d
@@ -0,0 +1,5 @@
+#name: C6X shared library without PIC code
+#as: -mlittle-endian -mdsbt -mpid=near
+#ld: -melf32_tic6x_le -Tdsbt-inrange.ld --dsbt-index 4 -shared
+#source: got-reloc-global.s
+#warning: non-PIC code
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopid.d b/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopid.d
new file mode 100644
index 0000000..7f366f3
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopid.d
@@ -0,0 +1,5 @@
+#name: C6X shared library without PIC code
+#as: -mlittle-endian -mdsbt -mpic
+#ld: -melf32_tic6x_le -Tdsbt-inrange.ld --dsbt-index 4 -shared
+#source: got-reloc-global.s
+#warning: non-PID code
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.dd
new file mode 100644
index 0000000..d33887e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.dd
@@ -0,0 +1,67 @@
+
+tmpdir/libtest\.so: file format elf32-tic6x-le
+
+
+Disassembly of section \.plt:
+
+10000020 <sub0@plt-0x18>:
+10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
+10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
+10000028:[ \t]*00004000[ \t]*nop 3
+1000002c:[ \t]*00080362[ \t]*b \.S2 b2
+10000030:[ \t]*00008000[ \t]*nop 5
+10000034:[ \t]*00000000[ \t]*nop 1
+
+10000038 <sub0@plt>:
+10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
+1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
+10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+10000044:[ \t]*00002000[ \t]*nop 2
+10000048:[ \t]*00080362[ \t]*b \.S2 b2
+1000004c:[ \t]*00008000[ \t]*nop 5
+
+10000050 <sub@plt>:
+10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2
+10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0
+10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+1000005c:[ \t]*00002000[ \t]*nop 2
+10000060:[ \t]*00080362[ \t]*b \.S2 b2
+10000064:[ \t]*00008000[ \t]*nop 5
+ \.\.\.
+
+Disassembly of section \.text:
+
+10000080 <sub1>:
+10000080:[ \t]*000c0362[ \t]*b \.S2 b3
+10000084:[ \t]*00008000[ \t]*nop 5
+
+10000088 <sub0>:
+10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
+10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
+10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14
+10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt>
+1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt>
+100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
+100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
+100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
+100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15
+100000b0:[ \t]*00004000[ \t]*nop 3
+100000b4:[ \t]*000c0362[ \t]*b \.S2 b3
+100000b8:[ \t]*00008000[ \t]*nop 5
+100000bc:[ \t]*00000000[ \t]*nop 1
+
+100000c0 <sub>:
+100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
+100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
+100000cc:[ \t]*00006000[ \t]*nop 4
+100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
+100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
+100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
+100000dc:[ \t]*000c0362[ \t]*b \.S2 b3
+100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6
+100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7
+100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8
+100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9
+ \.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.rd
new file mode 100644
index 0000000..029bda1
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.rd
@@ -0,0 +1,124 @@
+There are 17 section headers, starting at offset 0x21c4:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4
+ \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4
+ \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4
+ \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4
+ \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4
+ \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32
+ \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32
+ \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4
+ \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4
+ \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4
+ \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1
+ \[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1
+ \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4
+ \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is DYN \(Shared object file\)
+Entry point 0x10000080
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000
+ DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
+ 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x117c contains 16 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x8118
+ 0x00000006 \(SYMTAB\) 0x8048
+ 0x0000000a \(STRSZ\) 37 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x70000000 \(C6000_DSBT_BASE\) 0x10000100
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x2
+ 0x00000003 \(PLTGOT\) 0x1000010c
+ 0x00000002 \(PLTRELSZ\) 24 \(bytes\)
+ 0x00000014 \(PLTREL\) RELA
+ 0x00000017 \(JMPREL\) 0x10000000
+ 0x00000007 \(RELA\) 0x8140
+ 0x00000008 \(RELASZ\) 84 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0
+1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0
+10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0
+
+Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0
+1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+
+Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0
+10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0
+
+Symbol table '\.dynsym' contains 13 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000020 0 SECTION LOCAL DEFAULT 8
+ 2: 10000080 0 SECTION LOCAL DEFAULT 9
+ 3: 10000100 0 SECTION LOCAL DEFAULT 10
+ 4: 10000128 0 SECTION LOCAL DEFAULT 11
+ 5: 10000130 0 SECTION LOCAL DEFAULT 12
+ 6: 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+ 7: 00000000 0 NOTYPE WEAK DEFAULT UND b
+ 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
+ 9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
+ 10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
+ 11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
+ 12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 00008048 0 SECTION LOCAL DEFAULT 2
+.* 00008118 0 SECTION LOCAL DEFAULT 3
+.* 00008140 0 SECTION LOCAL DEFAULT 4
+.* 00008164 0 SECTION LOCAL DEFAULT 5
+.* 0000817c 0 SECTION LOCAL DEFAULT 6
+.* 10000000 0 SECTION LOCAL DEFAULT 7
+.* 10000020 0 SECTION LOCAL DEFAULT 8
+.* 10000080 0 SECTION LOCAL DEFAULT 9
+.* 10000100 0 SECTION LOCAL DEFAULT 10
+.* 10000128 0 SECTION LOCAL DEFAULT 11
+.* 10000130 0 SECTION LOCAL DEFAULT 12
+.* 00000000 0 SECTION LOCAL DEFAULT 13
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000080 0 FUNC LOCAL HIDDEN 9 sub1
+.* 10000130 4 OBJECT LOCAL DEFAULT 12 c
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
+.* 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+.* 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+.* 00000000 0 NOTYPE WEAK DEFAULT UND b
+.* 00000000 0 NOTYPE WEAK DEFAULT UND g1
+.* 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
+.* 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
+.* 10000128 4 OBJECT GLOBAL DEFAULT 11 a
+.* 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.s
new file mode 100644
index 0000000..cb065a2
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.s
@@ -0,0 +1,44 @@
+ .text
+ .nocmp
+ .align 2
+ .hidden sub1
+ .type sub1, @function
+sub1:
+ ret .s2 B3
+ nop 5
+
+ .global sub0
+ .type sub0, @function
+sub0:
+ sub .d2 B15, 16, B15
+ stw .d2t2 B3, *+B15(12)
+ stw .d2t2 B14, *+B15(16)
+ ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
+ call .s2 (sub)
+ call .s2 (sub0)
+ call .s2 (sub1)
+.L2:
+ ldw .d2t2 *+B15(12), B3
+ ldw .d2t2 *+B15(16), B14
+ addk .s2 16, B15
+ nop 3
+ ret .s2 B3
+ nop 5
+ .size sub0, .-sub0
+
+ .global a
+ .section .neardata,"aw",@progbits
+ .align 2
+ .type a, @object
+ .size a, 4
+a:
+ .long sub0
+ .weak g1
+ .global g2
+ .type g2, @object
+ .size g2, 4
+g2:
+ .long g1
+
+ .hidden c
+ .scomm c,4,4
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.sd
new file mode 100644
index 0000000..850e383
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.sd
@@ -0,0 +1,7 @@
+
+tmpdir/libtest\.so: file format elf32-tic6x-le
+
+Contents of section \.got:
+[ \t]*10000100 00000000 00000000 00000000 00000000 .*
+[ \t]*10000110 00000000 20000010 20000010 00000000 .*
+[ \t]*10000120 30010010 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.dd
new file mode 100644
index 0000000..658da73
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.dd
@@ -0,0 +1,67 @@
+
+tmpdir/libtestb\.so: file format elf32-tic6x-be
+
+
+Disassembly of section \.plt:
+
+10000020 <sub0@plt-0x18>:
+10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
+10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
+10000028:[ \t]*00004000[ \t]*nop 3
+1000002c:[ \t]*00080362[ \t]*b \.S2 b2
+10000030:[ \t]*00008000[ \t]*nop 5
+10000034:[ \t]*00000000[ \t]*nop 1
+
+10000038 <sub0@plt>:
+10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
+1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
+10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+10000044:[ \t]*00002000[ \t]*nop 2
+10000048:[ \t]*00080362[ \t]*b \.S2 b2
+1000004c:[ \t]*00008000[ \t]*nop 5
+
+10000050 <sub@plt>:
+10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2
+10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0
+10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+1000005c:[ \t]*00002000[ \t]*nop 2
+10000060:[ \t]*00080362[ \t]*b \.S2 b2
+10000064:[ \t]*00008000[ \t]*nop 5
+ \.\.\.
+
+Disassembly of section \.text:
+
+10000080 <sub1>:
+10000080:[ \t]*000c0362[ \t]*b \.S2 b3
+10000084:[ \t]*00008000[ \t]*nop 5
+
+10000088 <sub0>:
+10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
+10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
+10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14
+10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt>
+1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt>
+100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
+100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
+100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
+100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15
+100000b0:[ \t]*00004000[ \t]*nop 3
+100000b4:[ \t]*000c0362[ \t]*b \.S2 b3
+100000b8:[ \t]*00008000[ \t]*nop 5
+100000bc:[ \t]*00000000[ \t]*nop 1
+
+100000c0 <sub>:
+100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
+100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
+100000cc:[ \t]*00006000[ \t]*nop 4
+100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
+100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
+100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
+100000dc:[ \t]*000c0362[ \t]*b \.S2 b3
+100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6
+100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7
+100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8
+100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9
+ \.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.rd
new file mode 100644
index 0000000..029bda1
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.rd
@@ -0,0 +1,124 @@
+There are 17 section headers, starting at offset 0x21c4:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4
+ \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4
+ \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4
+ \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4
+ \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4
+ \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32
+ \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32
+ \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4
+ \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4
+ \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4
+ \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1
+ \[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1
+ \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4
+ \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is DYN \(Shared object file\)
+Entry point 0x10000080
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000
+ DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
+ 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x117c contains 16 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x8118
+ 0x00000006 \(SYMTAB\) 0x8048
+ 0x0000000a \(STRSZ\) 37 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x70000000 \(C6000_DSBT_BASE\) 0x10000100
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x2
+ 0x00000003 \(PLTGOT\) 0x1000010c
+ 0x00000002 \(PLTRELSZ\) 24 \(bytes\)
+ 0x00000014 \(PLTREL\) RELA
+ 0x00000017 \(JMPREL\) 0x10000000
+ 0x00000007 \(RELA\) 0x8140
+ 0x00000008 \(RELASZ\) 84 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0
+1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0
+10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0
+
+Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0
+1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+
+Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0
+10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0
+
+Symbol table '\.dynsym' contains 13 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000020 0 SECTION LOCAL DEFAULT 8
+ 2: 10000080 0 SECTION LOCAL DEFAULT 9
+ 3: 10000100 0 SECTION LOCAL DEFAULT 10
+ 4: 10000128 0 SECTION LOCAL DEFAULT 11
+ 5: 10000130 0 SECTION LOCAL DEFAULT 12
+ 6: 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+ 7: 00000000 0 NOTYPE WEAK DEFAULT UND b
+ 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
+ 9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
+ 10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
+ 11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
+ 12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 00008048 0 SECTION LOCAL DEFAULT 2
+.* 00008118 0 SECTION LOCAL DEFAULT 3
+.* 00008140 0 SECTION LOCAL DEFAULT 4
+.* 00008164 0 SECTION LOCAL DEFAULT 5
+.* 0000817c 0 SECTION LOCAL DEFAULT 6
+.* 10000000 0 SECTION LOCAL DEFAULT 7
+.* 10000020 0 SECTION LOCAL DEFAULT 8
+.* 10000080 0 SECTION LOCAL DEFAULT 9
+.* 10000100 0 SECTION LOCAL DEFAULT 10
+.* 10000128 0 SECTION LOCAL DEFAULT 11
+.* 10000130 0 SECTION LOCAL DEFAULT 12
+.* 00000000 0 SECTION LOCAL DEFAULT 13
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000080 0 FUNC LOCAL HIDDEN 9 sub1
+.* 10000130 4 OBJECT LOCAL DEFAULT 12 c
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
+.* 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+.* 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+.* 00000000 0 NOTYPE WEAK DEFAULT UND b
+.* 00000000 0 NOTYPE WEAK DEFAULT UND g1
+.* 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
+.* 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
+.* 10000128 4 OBJECT GLOBAL DEFAULT 11 a
+.* 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.sd
new file mode 100644
index 0000000..e1ee8ed
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.sd
@@ -0,0 +1,7 @@
+
+tmpdir/libtestb\.so: file format elf32-tic6x-be
+
+Contents of section \.got:
+[ \t]*10000100 00000000 00000000 00000000 00000000 .*
+[ \t]*10000110 00000000 10000020 10000020 00000000 .*
+[ \t]*10000120 10000130 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.dd
new file mode 100644
index 0000000..e20eb74
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.dd
@@ -0,0 +1,67 @@
+
+tmpdir/libtestr\.so: file format elf32-tic6x-le
+
+
+Disassembly of section \.plt:
+
+10000020 <sub0@plt-0x18>:
+10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
+10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
+10000028:[ \t]*00004000[ \t]*nop 3
+1000002c:[ \t]*00080362[ \t]*b \.S2 b2
+10000030:[ \t]*00008000[ \t]*nop 5
+10000034:[ \t]*00000000[ \t]*nop 1
+
+10000038 <sub0@plt>:
+10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
+1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
+10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+10000044:[ \t]*00002000[ \t]*nop 2
+10000048:[ \t]*00080362[ \t]*b \.S2 b2
+1000004c:[ \t]*00008000[ \t]*nop 5
+
+10000050 <sub@plt>:
+10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2
+10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0
+10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+1000005c:[ \t]*00002000[ \t]*nop 2
+10000060:[ \t]*00080362[ \t]*b \.S2 b2
+10000064:[ \t]*00008000[ \t]*nop 5
+ \.\.\.
+
+Disassembly of section \.text:
+
+10000080 <sub1>:
+10000080:[ \t]*000c0362[ \t]*b \.S2 b3
+10000084:[ \t]*00008000[ \t]*nop 5
+
+10000088 <sub0>:
+10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
+10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
+10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14
+10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt>
+1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt>
+100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
+100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
+100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
+100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15
+100000b0:[ \t]*00004000[ \t]*nop 3
+100000b4:[ \t]*000c0362[ \t]*b \.S2 b3
+100000b8:[ \t]*00008000[ \t]*nop 5
+100000bc:[ \t]*00000000[ \t]*nop 1
+
+100000c0 <sub>:
+100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
+100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
+100000cc:[ \t]*00006000[ \t]*nop 4
+100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
+100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
+100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
+100000dc:[ \t]*000c0362[ \t]*b \.S2 b3
+100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6
+100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7
+100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8
+100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9
+ \.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.rd
new file mode 100644
index 0000000..029bda1
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.rd
@@ -0,0 +1,124 @@
+There are 17 section headers, starting at offset 0x21c4:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4
+ \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4
+ \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4
+ \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4
+ \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4
+ \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32
+ \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32
+ \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4
+ \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4
+ \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4
+ \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1
+ \[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1
+ \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4
+ \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is DYN \(Shared object file\)
+Entry point 0x10000080
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000
+ DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
+ 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x117c contains 16 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x8118
+ 0x00000006 \(SYMTAB\) 0x8048
+ 0x0000000a \(STRSZ\) 37 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x70000000 \(C6000_DSBT_BASE\) 0x10000100
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x2
+ 0x00000003 \(PLTGOT\) 0x1000010c
+ 0x00000002 \(PLTRELSZ\) 24 \(bytes\)
+ 0x00000014 \(PLTREL\) RELA
+ 0x00000017 \(JMPREL\) 0x10000000
+ 0x00000007 \(RELA\) 0x8140
+ 0x00000008 \(RELASZ\) 84 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0
+1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0
+10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0
+
+Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0
+1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+
+Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0
+10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0
+
+Symbol table '\.dynsym' contains 13 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000020 0 SECTION LOCAL DEFAULT 8
+ 2: 10000080 0 SECTION LOCAL DEFAULT 9
+ 3: 10000100 0 SECTION LOCAL DEFAULT 10
+ 4: 10000128 0 SECTION LOCAL DEFAULT 11
+ 5: 10000130 0 SECTION LOCAL DEFAULT 12
+ 6: 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+ 7: 00000000 0 NOTYPE WEAK DEFAULT UND b
+ 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
+ 9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
+ 10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
+ 11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
+ 12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 00008048 0 SECTION LOCAL DEFAULT 2
+.* 00008118 0 SECTION LOCAL DEFAULT 3
+.* 00008140 0 SECTION LOCAL DEFAULT 4
+.* 00008164 0 SECTION LOCAL DEFAULT 5
+.* 0000817c 0 SECTION LOCAL DEFAULT 6
+.* 10000000 0 SECTION LOCAL DEFAULT 7
+.* 10000020 0 SECTION LOCAL DEFAULT 8
+.* 10000080 0 SECTION LOCAL DEFAULT 9
+.* 10000100 0 SECTION LOCAL DEFAULT 10
+.* 10000128 0 SECTION LOCAL DEFAULT 11
+.* 10000130 0 SECTION LOCAL DEFAULT 12
+.* 00000000 0 SECTION LOCAL DEFAULT 13
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000080 0 FUNC LOCAL HIDDEN 9 sub1
+.* 10000130 4 OBJECT LOCAL DEFAULT 12 c
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
+.* 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+.* 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+.* 00000000 0 NOTYPE WEAK DEFAULT UND b
+.* 00000000 0 NOTYPE WEAK DEFAULT UND g1
+.* 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
+.* 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
+.* 10000128 4 OBJECT GLOBAL DEFAULT 11 a
+.* 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.sd
new file mode 100644
index 0000000..3b3b839
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.sd
@@ -0,0 +1,7 @@
+
+tmpdir/libtestr\.so: file format elf32-tic6x-le
+
+Contents of section \.got:
+[ \t]*10000100 00000000 00000000 00000000 00000000 .*
+[ \t]*10000110 00000000 20000010 20000010 00000000 .*
+[ \t]*10000120 30010010 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.dd
new file mode 100644
index 0000000..ee1a607
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.dd
@@ -0,0 +1,67 @@
+
+tmpdir/libtestrb\.so: file format elf32-tic6x-be
+
+
+Disassembly of section \.plt:
+
+10000020 <sub0@plt-0x18>:
+10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
+10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
+10000028:[ \t]*00004000[ \t]*nop 3
+1000002c:[ \t]*00080362[ \t]*b \.S2 b2
+10000030:[ \t]*00008000[ \t]*nop 5
+10000034:[ \t]*00000000[ \t]*nop 1
+
+10000038 <sub0@plt>:
+10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
+1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
+10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+10000044:[ \t]*00002000[ \t]*nop 2
+10000048:[ \t]*00080362[ \t]*b \.S2 b2
+1000004c:[ \t]*00008000[ \t]*nop 5
+
+10000050 <sub@plt>:
+10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2
+10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0
+10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+1000005c:[ \t]*00002000[ \t]*nop 2
+10000060:[ \t]*00080362[ \t]*b \.S2 b2
+10000064:[ \t]*00008000[ \t]*nop 5
+ \.\.\.
+
+Disassembly of section \.text:
+
+10000080 <sub1>:
+10000080:[ \t]*000c0362[ \t]*b \.S2 b3
+10000084:[ \t]*00008000[ \t]*nop 5
+
+10000088 <sub0>:
+10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
+10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
+10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14
+10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt>
+1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt>
+100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
+100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
+100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
+100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15
+100000b0:[ \t]*00004000[ \t]*nop 3
+100000b4:[ \t]*000c0362[ \t]*b \.S2 b3
+100000b8:[ \t]*00008000[ \t]*nop 5
+100000bc:[ \t]*00000000[ \t]*nop 1
+
+100000c0 <sub>:
+100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
+100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
+100000cc:[ \t]*00006000[ \t]*nop 4
+100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
+100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
+100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
+100000dc:[ \t]*000c0362[ \t]*b \.S2 b3
+100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6
+100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7
+100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8
+100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9
+ \.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.rd
new file mode 100644
index 0000000..029bda1
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.rd
@@ -0,0 +1,124 @@
+There are 17 section headers, starting at offset 0x21c4:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4
+ \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4
+ \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4
+ \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4
+ \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4
+ \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32
+ \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32
+ \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4
+ \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4
+ \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4
+ \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1
+ \[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1
+ \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4
+ \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is DYN \(Shared object file\)
+Entry point 0x10000080
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000
+ DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
+ 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x117c contains 16 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x8118
+ 0x00000006 \(SYMTAB\) 0x8048
+ 0x0000000a \(STRSZ\) 37 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x70000000 \(C6000_DSBT_BASE\) 0x10000100
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x2
+ 0x00000003 \(PLTGOT\) 0x1000010c
+ 0x00000002 \(PLTRELSZ\) 24 \(bytes\)
+ 0x00000014 \(PLTREL\) RELA
+ 0x00000017 \(JMPREL\) 0x10000000
+ 0x00000007 \(RELA\) 0x8140
+ 0x00000008 \(RELASZ\) 84 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0
+1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0
+10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0
+
+Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0
+1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+
+Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0
+10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0
+
+Symbol table '\.dynsym' contains 13 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000020 0 SECTION LOCAL DEFAULT 8
+ 2: 10000080 0 SECTION LOCAL DEFAULT 9
+ 3: 10000100 0 SECTION LOCAL DEFAULT 10
+ 4: 10000128 0 SECTION LOCAL DEFAULT 11
+ 5: 10000130 0 SECTION LOCAL DEFAULT 12
+ 6: 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+ 7: 00000000 0 NOTYPE WEAK DEFAULT UND b
+ 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
+ 9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
+ 10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
+ 11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
+ 12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 00008048 0 SECTION LOCAL DEFAULT 2
+.* 00008118 0 SECTION LOCAL DEFAULT 3
+.* 00008140 0 SECTION LOCAL DEFAULT 4
+.* 00008164 0 SECTION LOCAL DEFAULT 5
+.* 0000817c 0 SECTION LOCAL DEFAULT 6
+.* 10000000 0 SECTION LOCAL DEFAULT 7
+.* 10000020 0 SECTION LOCAL DEFAULT 8
+.* 10000080 0 SECTION LOCAL DEFAULT 9
+.* 10000100 0 SECTION LOCAL DEFAULT 10
+.* 10000128 0 SECTION LOCAL DEFAULT 11
+.* 10000130 0 SECTION LOCAL DEFAULT 12
+.* 00000000 0 SECTION LOCAL DEFAULT 13
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000080 0 FUNC LOCAL HIDDEN 9 sub1
+.* 10000130 4 OBJECT LOCAL DEFAULT 12 c
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
+.* 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+.* 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+.* 00000000 0 NOTYPE WEAK DEFAULT UND b
+.* 00000000 0 NOTYPE WEAK DEFAULT UND g1
+.* 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
+.* 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
+.* 10000128 4 OBJECT GLOBAL DEFAULT 11 a
+.* 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.sd
new file mode 100644
index 0000000..5575ff5
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.sd
@@ -0,0 +1,7 @@
+
+tmpdir/libtestrb\.so: file format elf32-tic6x-be
+
+Contents of section \.got:
+[ \t]*10000100 00000000 00000000 00000000 00000000 .*
+[ \t]*10000110 00000000 10000020 10000020 00000000 .*
+[ \t]*10000120 10000130 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-2.s
new file mode 100644
index 0000000..3d786dd
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-2.s
@@ -0,0 +1,23 @@
+ .weak a
+ .weak b
+
+ .text
+ .nocmp
+ .align 2
+ .global sub
+ .type sub, @function
+sub:
+ sub .d2 B15, 16, B15
+ stw .d2t1 A4, *+B15(12)
+ ldw .d2t1 *+B15(12), A0
+ nop 4
+ add .d1 A0, 10, A0
+ mv .d1 A0, A4
+ add .d2 B15, 16, B15
+ ret .s2 B3
+ ldw .d2t2 *+B14($GOT(a)), B6
+ ldw .d2t2 *+B14($GOT(b)), B7
+ ldw .d2t2 *+B14($GOT(c)), B8
+ ldw .d2t2 *+B14(c), B9
+ nop 1
+ .size sub, .-sub
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.dd
new file mode 100644
index 0000000..411d47f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.dd
@@ -0,0 +1,40 @@
+
+tmpdir/shlib-dynapp-1: file format elf32-tic6x-le
+
+
+Disassembly of section \.plt:
+
+10000020 <sub0@plt-0x18>:
+10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
+10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
+10000028:[ \t]*00004000[ \t]*nop 3
+1000002c:[ \t]*00080362[ \t]*b \.S2 b2
+10000030:[ \t]*00008000[ \t]*nop 5
+10000034:[ \t]*00000000[ \t]*nop 1
+
+10000038 <sub0@plt>:
+10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
+1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
+10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+10000044:[ \t]*00002000[ \t]*nop 2
+10000048:[ \t]*00080362[ \t]*b \.S2 b2
+1000004c:[ \t]*00008000[ \t]*nop 5
+[ \t]*\.\.\.
+
+Disassembly of section \.text:
+
+10000060 <fish>:
+10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3
+10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt>
+1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3
+10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish>
+10000074:[ \t]*02000b6e[ \t]*ldw \.D2T2 \*\+b14\(44\),b4
+10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5
+1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6
+10000084:[ \t]*020003a8[ \t]*mvk \.S1 7,a4
+10000088:[ \t]*02000068[ \t]*mvkh \.S1 0,a4
+1000008c:[ \t]*02800328[ \t]*mvk \.S1 6,a5
+10000090:[ \t]*02800068[ \t]*mvkh \.S1 0,a5
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.od b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.od
new file mode 100644
index 0000000..f2f5cab
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.od
@@ -0,0 +1,13 @@
+
+tmpdir/shlib-dynapp-1: file format elf32-tic6x-le
+
+DYNAMIC RELOCATION RECORDS
+OFFSET TYPE VALUE
+100000b8 R_C6000_ABS32 b
+100000bc R_C6000_ABS32 a
+100000c4 R_C6000_ABS32 g1
+100000c8 R_C6000_ABS32 g2
+100000cc R_C6000_COPY a
+100000b4 R_C6000_JUMP_SLOT sub0
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.rd
new file mode 100644
index 0000000..9c691c9
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.rd
@@ -0,0 +1,128 @@
+There are 18 section headers, starting at offset 0x2168:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 000044 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 00008044 001044 0000c0 10 A 3 6 4
+ \[ 3\] \.dynstr STRTAB 00008104 001104 000035 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 0000813c 00113c 000018 0c A 2 11 4
+ \[ 5\] \.rela\.neardata RELA 00008154 001154 000018 0c A 2 12 4
+ \[ 6\] \.rela\.bss RELA 0000816c 00116c 00000c 0c A 2 13 4
+ \[ 7\] \.dynamic DYNAMIC 00008178 001178 0000b8 08 WA 3 0 4
+ \[ 8\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 9 4
+ \[ 9\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32
+ \[10\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32
+ \[11\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4
+ \[12\] \.neardata PROGBITS 100000c0 0020c0 00000c 00 WA 0 0 4
+ \[13\] \.bss NOBITS 100000cc 0020cc 000004 00 WA 0 0 4
+ \[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020cc 000019 00 0 0 1
+ \[15\] \.shstrtab STRTAB 00000000 0020e5 000080 00 0 0 1
+ \[16\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 17 [0-9]+ 4
+ \[17\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is EXEC \(Executable file\)
+Entry point 0x10000060
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x00230 0x00230 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x000cc 0x000d0 RWE 0x1000
+ DYNAMIC 0x001178 0x00008178 0x00008178 0x000b8 0x000b8 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.rela\.bss \.dynamic
+ 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x1178 contains 18 entries:
+ Tag Type Name/Value
+ 0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtest\.so\]
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x8104
+ 0x00000006 \(SYMTAB\) 0x8044
+ 0x0000000a \(STRSZ\) 53 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000015 \(DEBUG\) 0x0
+ 0x70000000 \(C6000_DSBT_BASE\) 0x100000a0
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x0
+ 0x00000003 \(PLTGOT\) 0x100000ac
+ 0x00000002 \(PLTRELSZ\) 12 \(bytes\)
+ 0x00000014 \(PLTREL\) RELA
+ 0x00000017 \(JMPREL\) 0x10000000
+ 0x00000007 \(RELA\) 0x813c
+ 0x00000008 \(RELASZ\) 72 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x113c contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0
+100000bc 00000b01 R_C6000_ABS32 100000cc a \+ 0
+
+Relocation section '\.rela\.neardata' at offset 0x1154 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000c4 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+100000c8 00000901 R_C6000_ABS32 00000000 g2 \+ 0
+
+Relocation section '\.rela\.bss' at offset 0x116c contains 1 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000cc 00000b1a R_C6000_COPY 100000cc a \+ 0
+
+Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000b4 00000a1b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0
+
+Symbol table '\.dynsym' contains 12 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000020 0 SECTION LOCAL DEFAULT 9
+ 2: 10000060 0 SECTION LOCAL DEFAULT 10
+ 3: 100000a0 0 SECTION LOCAL DEFAULT 11
+ 4: 100000c0 0 SECTION LOCAL DEFAULT 12
+ 5: 100000cc 0 SECTION LOCAL DEFAULT 13
+ 6: 100000a0 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE
+ 7: 100000c0 4 OBJECT GLOBAL DEFAULT 12 b
+ 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
+ 9: 00000000 0 OBJECT WEAK DEFAULT UND g2
+ 10: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
+ 11: 100000cc 4 OBJECT GLOBAL DEFAULT 13 a
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 00008044 0 SECTION LOCAL DEFAULT 2
+.* 00008104 0 SECTION LOCAL DEFAULT 3
+.* 0000813c 0 SECTION LOCAL DEFAULT 4
+.* 00008154 0 SECTION LOCAL DEFAULT 5
+.* 0000816c 0 SECTION LOCAL DEFAULT 6
+.* 00008178 0 SECTION LOCAL DEFAULT 7
+.* 10000000 0 SECTION LOCAL DEFAULT 8
+.* 10000020 0 SECTION LOCAL DEFAULT 9
+.* 10000060 0 SECTION LOCAL DEFAULT 10
+.* 100000a0 0 SECTION LOCAL DEFAULT 11
+.* 100000c0 0 SECTION LOCAL DEFAULT 12
+.* 100000cc 0 SECTION LOCAL DEFAULT 13
+.* 00000000 0 SECTION LOCAL DEFAULT 14
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000060 0 NOTYPE LOCAL DEFAULT 10 fish
+.* 100000c4 8 OBJECT LOCAL DEFAULT 12 w
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 00008178 0 OBJECT LOCAL DEFAULT 7 _DYNAMIC
+.* 100000ac 0 OBJECT LOCAL DEFAULT 11 _GLOBAL_OFFSET_TABLE_
+.* 100000a0 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE
+.* 100000c0 4 OBJECT GLOBAL DEFAULT 12 b
+.* 00000000 0 NOTYPE WEAK DEFAULT UND g1
+.* 00000000 0 OBJECT WEAK DEFAULT UND g2
+.* 00000000 0 FUNC GLOBAL DEFAULT UND sub0
+.* 100000cc 4 OBJECT GLOBAL DEFAULT 13 a
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.s
new file mode 100644
index 0000000..fe254bb
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.s
@@ -0,0 +1,31 @@
+ .global a
+ .text
+ .nocmp
+fish:
+ ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
+ callp .s2 sub0, B3
+ b .s2 sub0
+ callp .s2 fish, B3
+ b .s2 fish
+ ldw .d2t2 *+B14(a), B4
+ ldw .d2t2 *+B14(b), B5
+ ldw .d2t2 *+B14($GOT(a)), B6
+ ldw .d2t2 *+B14($GOT(b)), B6
+ mvkl .s1 $DPR_GOT(a), A4
+ mvkh .s1 $DPR_GOT(a), A4
+ mvkl .s1 $DPR_GOT(b), A5
+ mvkh .s1 $DPR_GOT(b), A5
+ .global b
+ .section .neardata,"aw",@progbits
+ .align 2
+ .type b, @object
+ .size b, 4
+b:
+ .long 0x12345678
+ .weak g1
+ .weak g2
+ .type w, @object
+ .size w, 8
+w:
+ .long g1
+ .long g2
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.sd
new file mode 100644
index 0000000..4ed3c75
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.sd
@@ -0,0 +1,6 @@
+
+tmpdir/shlib-dynapp-1: file format elf32-tic6x-le
+
+Contents of section \.got:
+[ \t]*100000a0 00000000 00000000 00000000 00000000 .*
+[ \t]*100000b0 00000000 20000010 00000000 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.dd
new file mode 100644
index 0000000..5312ff8
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.dd
@@ -0,0 +1,40 @@
+
+tmpdir/shlib-dynapp-1b: file format elf32-tic6x-be
+
+
+Disassembly of section \.plt:
+
+10000020 <sub0@plt-0x18>:
+10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
+10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
+10000028:[ \t]*00004000[ \t]*nop 3
+1000002c:[ \t]*00080362[ \t]*b \.S2 b2
+10000030:[ \t]*00008000[ \t]*nop 5
+10000034:[ \t]*00000000[ \t]*nop 1
+
+10000038 <sub0@plt>:
+10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
+1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
+10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+10000044:[ \t]*00002000[ \t]*nop 2
+10000048:[ \t]*00080362[ \t]*b \.S2 b2
+1000004c:[ \t]*00008000[ \t]*nop 5
+[ \t]*\.\.\.
+
+Disassembly of section \.text:
+
+10000060 <fish>:
+10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3
+10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt>
+1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3
+10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish>
+10000074:[ \t]*02000b6e[ \t]*ldw \.D2T2 \*\+b14\(44\),b4
+10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5
+1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6
+10000084:[ \t]*020003a8[ \t]*mvk \.S1 7,a4
+10000088:[ \t]*02000068[ \t]*mvkh \.S1 0,a4
+1000008c:[ \t]*02800328[ \t]*mvk \.S1 6,a5
+10000090:[ \t]*02800068[ \t]*mvkh \.S1 0,a5
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.od b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.od
new file mode 100644
index 0000000..4a9c60b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.od
@@ -0,0 +1,13 @@
+
+tmpdir/shlib-dynapp-1b: file format elf32-tic6x-be
+
+DYNAMIC RELOCATION RECORDS
+OFFSET TYPE VALUE
+100000b8 R_C6000_ABS32 b
+100000bc R_C6000_ABS32 a
+100000c4 R_C6000_ABS32 g1
+100000c8 R_C6000_ABS32 g2
+100000cc R_C6000_COPY a
+100000b4 R_C6000_JUMP_SLOT sub0
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.rd
new file mode 100644
index 0000000..a541a5c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.rd
@@ -0,0 +1,128 @@
+There are 18 section headers, starting at offset 0x2168:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 000044 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 00008044 001044 0000c0 10 A 3 6 4
+ \[ 3\] \.dynstr STRTAB 00008104 001104 000036 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 0000813c 00113c 000018 0c A 2 11 4
+ \[ 5\] \.rela\.neardata RELA 00008154 001154 000018 0c A 2 12 4
+ \[ 6\] \.rela\.bss RELA 0000816c 00116c 00000c 0c A 2 13 4
+ \[ 7\] \.dynamic DYNAMIC 00008178 001178 0000b8 08 WA 3 0 4
+ \[ 8\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 9 4
+ \[ 9\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32
+ \[10\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32
+ \[11\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4
+ \[12\] \.neardata PROGBITS 100000c0 0020c0 00000c 00 WA 0 0 4
+ \[13\] \.bss NOBITS 100000cc 0020cc 000004 00 WA 0 0 4
+ \[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020cc 000019 00 0 0 1
+ \[15\] \.shstrtab STRTAB 00000000 0020e5 000080 00 0 0 1
+ \[16\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 17 [0-9]+ 4
+ \[17\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is EXEC \(Executable file\)
+Entry point 0x10000060
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x00230 0x00230 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x000cc 0x000d0 RWE 0x1000
+ DYNAMIC 0x001178 0x00008178 0x00008178 0x000b8 0x000b8 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.rela\.bss \.dynamic
+ 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x1178 contains 18 entries:
+ Tag Type Name/Value
+ 0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtestb\.so\]
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x8104
+ 0x00000006 \(SYMTAB\) 0x8044
+ 0x0000000a \(STRSZ\) 54 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000015 \(DEBUG\) 0x0
+ 0x70000000 \(C6000_DSBT_BASE\) 0x100000a0
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x0
+ 0x00000003 \(PLTGOT\) 0x100000ac
+ 0x00000002 \(PLTRELSZ\) 12 \(bytes\)
+ 0x00000014 \(PLTREL\) RELA
+ 0x00000017 \(JMPREL\) 0x10000000
+ 0x00000007 \(RELA\) 0x813c
+ 0x00000008 \(RELASZ\) 72 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x113c contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0
+100000bc 00000b01 R_C6000_ABS32 100000cc a \+ 0
+
+Relocation section '\.rela\.neardata' at offset 0x1154 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000c4 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+100000c8 00000901 R_C6000_ABS32 00000000 g2 \+ 0
+
+Relocation section '\.rela\.bss' at offset 0x116c contains 1 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000cc 00000b1a R_C6000_COPY 100000cc a \+ 0
+
+Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000b4 00000a1b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0
+
+Symbol table '\.dynsym' contains 12 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000020 0 SECTION LOCAL DEFAULT 9
+ 2: 10000060 0 SECTION LOCAL DEFAULT 10
+ 3: 100000a0 0 SECTION LOCAL DEFAULT 11
+ 4: 100000c0 0 SECTION LOCAL DEFAULT 12
+ 5: 100000cc 0 SECTION LOCAL DEFAULT 13
+ 6: 100000a0 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE
+ 7: 100000c0 4 OBJECT GLOBAL DEFAULT 12 b
+ 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
+ 9: 00000000 0 OBJECT WEAK DEFAULT UND g2
+ 10: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
+ 11: 100000cc 4 OBJECT GLOBAL DEFAULT 13 a
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 00008044 0 SECTION LOCAL DEFAULT 2
+.* 00008104 0 SECTION LOCAL DEFAULT 3
+.* 0000813c 0 SECTION LOCAL DEFAULT 4
+.* 00008154 0 SECTION LOCAL DEFAULT 5
+.* 0000816c 0 SECTION LOCAL DEFAULT 6
+.* 00008178 0 SECTION LOCAL DEFAULT 7
+.* 10000000 0 SECTION LOCAL DEFAULT 8
+.* 10000020 0 SECTION LOCAL DEFAULT 9
+.* 10000060 0 SECTION LOCAL DEFAULT 10
+.* 100000a0 0 SECTION LOCAL DEFAULT 11
+.* 100000c0 0 SECTION LOCAL DEFAULT 12
+.* 100000cc 0 SECTION LOCAL DEFAULT 13
+.* 00000000 0 SECTION LOCAL DEFAULT 14
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000060 0 NOTYPE LOCAL DEFAULT 10 fish
+.* 100000c4 8 OBJECT LOCAL DEFAULT 12 w
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 00008178 0 OBJECT LOCAL DEFAULT 7 _DYNAMIC
+.* 100000ac 0 OBJECT LOCAL DEFAULT 11 _GLOBAL_OFFSET_TABLE_
+.* 100000a0 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE
+.* 100000c0 4 OBJECT GLOBAL DEFAULT 12 b
+.* 00000000 0 NOTYPE WEAK DEFAULT UND g1
+.* 00000000 0 OBJECT WEAK DEFAULT UND g2
+.* 00000000 0 FUNC GLOBAL DEFAULT UND sub0
+.* 100000cc 4 OBJECT GLOBAL DEFAULT 13 a
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.sd
new file mode 100644
index 0000000..1abc406
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.sd
@@ -0,0 +1,6 @@
+
+tmpdir/shlib-dynapp-1b: file format elf32-tic6x-be
+
+Contents of section \.got:
+[ \t]*100000a0 00000000 00000000 00000000 00000000 .*
+[ \t]*100000b0 00000000 10000020 00000000 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.dd
new file mode 100644
index 0000000..3e68bf2
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.dd
@@ -0,0 +1,36 @@
+
+tmpdir/shlib-dynapp-1r: file format elf32-tic6x-le
+
+
+Disassembly of section \.plt:
+
+10000020 <sub0@plt-0x18>:
+10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
+10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
+10000028:[ \t]*00004000[ \t]*nop 3
+1000002c:[ \t]*00080362[ \t]*b \.S2 b2
+10000030:[ \t]*00008000[ \t]*nop 5
+10000034:[ \t]*00000000[ \t]*nop 1
+
+10000038 <sub0@plt>:
+10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
+1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
+10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+10000044:[ \t]*00002000[ \t]*nop 2
+10000048:[ \t]*00080362[ \t]*b \.S2 b2
+1000004c:[ \t]*00008000[ \t]*nop 5
+[ \t]*\.\.\.
+
+Disassembly of section \.text:
+
+10000060 <fish>:
+10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3
+10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt>
+1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3
+10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish>
+10000074:[ \t]*0200096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b4
+10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5
+1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.od b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.od
new file mode 100644
index 0000000..15c2973
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.od
@@ -0,0 +1,11 @@
+
+tmpdir/shlib-dynapp-1r: file format elf32-tic6x-le
+
+DYNAMIC RELOCATION RECORDS
+OFFSET TYPE VALUE
+100000b8 R_C6000_ABS32 b
+100000bc R_C6000_ABS32 a
+100000c4 R_C6000_COPY a
+100000b4 R_C6000_JUMP_SLOT sub0
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.rd
new file mode 100644
index 0000000..5c1b675
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.rd
@@ -0,0 +1,116 @@
+There are 17 section headers, starting at offset 0x2158:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 6 4
+ \[ 3\] \.dynstr STRTAB 000080dc 0010dc 000030 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 0000810c 00110c 000018 0c A 2 10 4
+ \[ 5\] \.rela\.bss RELA 00008124 001124 00000c 0c A 2 12 4
+ \[ 6\] \.dynamic DYNAMIC 00008130 001130 0000b8 08 WA 3 0 4
+ \[ 7\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 8 4
+ \[ 8\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32
+ \[ 9\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32
+ \[10\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4
+ \[11\] \.neardata PROGBITS 100000c0 0020c0 000004 00 WA 0 0 4
+ \[12\] \.bss NOBITS 100000c4 0020c4 000004 00 WA 0 0 4
+ \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020c4 000019 00 0 0 1
+ \[14\] \.shstrtab STRTAB 00000000 0020dd 00007b 00 0 0 1
+ \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4
+ \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is EXEC \(Executable file\)
+Entry point 0x10000060
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x001e8 0x001e8 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x000c4 0x000c8 RWE 0x1000
+ DYNAMIC 0x001130 0x00008130 0x00008130 0x000b8 0x000b8 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.bss \.dynamic
+ 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x1130 contains 18 entries:
+ Tag Type Name/Value
+ 0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtestr\.so\]
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x80dc
+ 0x00000006 \(SYMTAB\) 0x803c
+ 0x0000000a \(STRSZ\) 48 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000015 \(DEBUG\) 0x0
+ 0x70000000 \(C6000_DSBT_BASE\) 0x100000a0
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x0
+ 0x00000003 \(PLTGOT\) 0x100000ac
+ 0x00000002 \(PLTRELSZ\) 12 \(bytes\)
+ 0x00000014 \(PLTREL\) RELA
+ 0x00000017 \(JMPREL\) 0x10000000
+ 0x00000007 \(RELA\) 0x810c
+ 0x00000008 \(RELASZ\) 48 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x110c contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0
+100000bc 00000901 R_C6000_ABS32 100000c4 a \+ 0
+
+Relocation section '\.rela\.bss' at offset 0x1124 contains 1 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000c4 0000091a R_C6000_COPY 100000c4 a \+ 0
+
+Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000b4 0000081b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0
+
+Symbol table '\.dynsym' contains 10 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000020 0 SECTION LOCAL DEFAULT 8
+ 2: 10000060 0 SECTION LOCAL DEFAULT 9
+ 3: 100000a0 0 SECTION LOCAL DEFAULT 10
+ 4: 100000c0 0 SECTION LOCAL DEFAULT 11
+ 5: 100000c4 0 SECTION LOCAL DEFAULT 12
+ 6: 100000a0 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+ 7: 100000c0 4 OBJECT GLOBAL DEFAULT 11 b
+ 8: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
+ 9: 100000c4 4 OBJECT GLOBAL DEFAULT 12 a
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 0000803c 0 SECTION LOCAL DEFAULT 2
+.* 000080dc 0 SECTION LOCAL DEFAULT 3
+.* 0000810c 0 SECTION LOCAL DEFAULT 4
+.* 00008124 0 SECTION LOCAL DEFAULT 5
+.* 00008130 0 SECTION LOCAL DEFAULT 6
+.* 10000000 0 SECTION LOCAL DEFAULT 7
+.* 10000020 0 SECTION LOCAL DEFAULT 8
+.* 10000060 0 SECTION LOCAL DEFAULT 9
+.* 100000a0 0 SECTION LOCAL DEFAULT 10
+.* 100000c0 0 SECTION LOCAL DEFAULT 11
+.* 100000c4 0 SECTION LOCAL DEFAULT 12
+.* 00000000 0 SECTION LOCAL DEFAULT 13
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000060 0 NOTYPE LOCAL DEFAULT 9 fish
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 00008130 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC
+.* 100000ac 0 OBJECT LOCAL DEFAULT 10 _GLOBAL_OFFSET_TABLE_
+.* 100000a0 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+.* 100000c0 4 OBJECT GLOBAL DEFAULT 11 b
+.* 00000000 0 FUNC GLOBAL DEFAULT UND sub0
+.* 100000c4 4 OBJECT GLOBAL DEFAULT 12 a
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.s b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.s
new file mode 100644
index 0000000..a6de900
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.s
@@ -0,0 +1,19 @@
+ .global a
+.text
+fish:
+ ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
+ callp .s2 sub0, B3
+ b .s2 sub0
+ callp .s2 fish, B3
+ b .s2 fish
+ ldw .d2t2 *+B14(a), B4
+ ldw .d2t2 *+B14(b), B5
+ ldw .d2t2 *+B14($GOT(a)), B6
+ ldw .d2t2 *+B14($GOT(b)), B6
+ .global b
+ .section .neardata,"aw",@progbits
+ .align 2
+ .type b, @object
+ .size b, 4
+b:
+ .long 0x12345678
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.sd
new file mode 100644
index 0000000..2a849af
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.sd
@@ -0,0 +1,6 @@
+
+tmpdir/shlib-dynapp-1r: file format elf32-tic6x-le
+
+Contents of section \.got:
+[ \t]*100000a0 00000000 00000000 00000000 00000000 .*
+[ \t]*100000b0 00000000 20000010 00000000 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.dd
new file mode 100644
index 0000000..ad1f28e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.dd
@@ -0,0 +1,36 @@
+
+tmpdir/shlib-dynapp-1rb: file format elf32-tic6x-be
+
+
+Disassembly of section \.plt:
+
+10000020 <sub0@plt-0x18>:
+10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
+10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
+10000028:[ \t]*00004000[ \t]*nop 3
+1000002c:[ \t]*00080362[ \t]*b \.S2 b2
+10000030:[ \t]*00008000[ \t]*nop 5
+10000034:[ \t]*00000000[ \t]*nop 1
+
+10000038 <sub0@plt>:
+10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
+1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
+10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
+10000044:[ \t]*00002000[ \t]*nop 2
+10000048:[ \t]*00080362[ \t]*b \.S2 b2
+1000004c:[ \t]*00008000[ \t]*nop 5
+[ \t]*\.\.\.
+
+Disassembly of section \.text:
+
+10000060 <fish>:
+10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3
+10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt>
+1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3
+10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish>
+10000074:[ \t]*0200096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b4
+10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5
+1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.od b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.od
new file mode 100644
index 0000000..c313ed7
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.od
@@ -0,0 +1,11 @@
+
+tmpdir/shlib-dynapp-1rb: file format elf32-tic6x-be
+
+DYNAMIC RELOCATION RECORDS
+OFFSET TYPE VALUE
+100000b8 R_C6000_ABS32 b
+100000bc R_C6000_ABS32 a
+100000c4 R_C6000_COPY a
+100000b4 R_C6000_JUMP_SLOT sub0
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.rd
new file mode 100644
index 0000000..d121832
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.rd
@@ -0,0 +1,116 @@
+There are 17 section headers, starting at offset 0x2158:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 6 4
+ \[ 3\] \.dynstr STRTAB 000080dc 0010dc 000031 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 00008110 001110 000018 0c A 2 10 4
+ \[ 5\] \.rela\.bss RELA 00008128 001128 00000c 0c A 2 12 4
+ \[ 6\] \.dynamic DYNAMIC 00008134 001134 0000b8 08 WA 3 0 4
+ \[ 7\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 8 4
+ \[ 8\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32
+ \[ 9\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32
+ \[10\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4
+ \[11\] \.neardata PROGBITS 100000c0 0020c0 000004 00 WA 0 0 4
+ \[12\] \.bss NOBITS 100000c4 0020c4 000004 00 WA 0 0 4
+ \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020c4 000019 00 0 0 1
+ \[14\] \.shstrtab STRTAB 00000000 0020dd 00007b 00 0 0 1
+ \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4
+ \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is EXEC \(Executable file\)
+Entry point 0x10000060
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x001ec 0x001ec RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x000c4 0x000c8 RWE 0x1000
+ DYNAMIC 0x001134 0x00008134 0x00008134 0x000b8 0x000b8 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.bss \.dynamic
+ 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x1134 contains 18 entries:
+ Tag Type Name/Value
+ 0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtestrb\.so\]
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x80dc
+ 0x00000006 \(SYMTAB\) 0x803c
+ 0x0000000a \(STRSZ\) 49 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000015 \(DEBUG\) 0x0
+ 0x70000000 \(C6000_DSBT_BASE\) 0x100000a0
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x0
+ 0x00000003 \(PLTGOT\) 0x100000ac
+ 0x00000002 \(PLTRELSZ\) 12 \(bytes\)
+ 0x00000014 \(PLTREL\) RELA
+ 0x00000017 \(JMPREL\) 0x10000000
+ 0x00000007 \(RELA\) 0x8110
+ 0x00000008 \(RELASZ\) 48 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x1110 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0
+100000bc 00000901 R_C6000_ABS32 100000c4 a \+ 0
+
+Relocation section '\.rela\.bss' at offset 0x1128 contains 1 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000c4 0000091a R_C6000_COPY 100000c4 a \+ 0
+
+Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000b4 0000081b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0
+
+Symbol table '\.dynsym' contains 10 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000020 0 SECTION LOCAL DEFAULT 8
+ 2: 10000060 0 SECTION LOCAL DEFAULT 9
+ 3: 100000a0 0 SECTION LOCAL DEFAULT 10
+ 4: 100000c0 0 SECTION LOCAL DEFAULT 11
+ 5: 100000c4 0 SECTION LOCAL DEFAULT 12
+ 6: 100000a0 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+ 7: 100000c0 4 OBJECT GLOBAL DEFAULT 11 b
+ 8: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
+ 9: 100000c4 4 OBJECT GLOBAL DEFAULT 12 a
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 0000803c 0 SECTION LOCAL DEFAULT 2
+.* 000080dc 0 SECTION LOCAL DEFAULT 3
+.* 00008110 0 SECTION LOCAL DEFAULT 4
+.* 00008128 0 SECTION LOCAL DEFAULT 5
+.* 00008134 0 SECTION LOCAL DEFAULT 6
+.* 10000000 0 SECTION LOCAL DEFAULT 7
+.* 10000020 0 SECTION LOCAL DEFAULT 8
+.* 10000060 0 SECTION LOCAL DEFAULT 9
+.* 100000a0 0 SECTION LOCAL DEFAULT 10
+.* 100000c0 0 SECTION LOCAL DEFAULT 11
+.* 100000c4 0 SECTION LOCAL DEFAULT 12
+.* 00000000 0 SECTION LOCAL DEFAULT 13
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000060 0 NOTYPE LOCAL DEFAULT 9 fish
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 00008134 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC
+.* 100000ac 0 OBJECT LOCAL DEFAULT 10 _GLOBAL_OFFSET_TABLE_
+.* 100000a0 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE
+.* 100000c0 4 OBJECT GLOBAL DEFAULT 11 b
+.* 00000000 0 FUNC GLOBAL DEFAULT UND sub0
+.* 100000c4 4 OBJECT GLOBAL DEFAULT 12 a
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.sd
new file mode 100644
index 0000000..60a4e8b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.sd
@@ -0,0 +1,6 @@
+
+tmpdir/shlib-dynapp-1rb: file format elf32-tic6x-be
+
+Contents of section \.got:
+[ \t]*100000a0 00000000 00000000 00000000 00000000 .*
+[ \t]*100000b0 00000000 10000020 00000000 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.dd
new file mode 100644
index 0000000..bfdf499
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.dd
@@ -0,0 +1,67 @@
+
+tmpdir/libtestn\.so: file format elf32-tic6x-le
+
+
+Disassembly of section \.plt:
+
+10000020 <sub0@plt-0x18>:
+10000020: 0100036e ldw \.D2T2 \*\+b14\(12\),b2
+10000024: 0080046e ldw \.D2T2 \*\+b14\(16\),b1
+10000028: 00004000 nop 3
+1000002c: 00080362 b \.S2 b2
+10000030: 00008000 nop 5
+10000034: 00000000 nop 1
+
+10000038 <sub0@plt>:
+10000038: 0100056e ldw \.D2T2 \*\+b14\(20\),b2
+1000003c: 0000002a mvk \.S2 0,b0
+10000040: 0000006a mvkh \.S2 0,b0
+10000044: 00002000 nop 2
+10000048: 00080362 b \.S2 b2
+1000004c: 00008000 nop 5
+
+10000050 <sub@plt>:
+10000050: 0100066e ldw \.D2T2 \*\+b14\(24\),b2
+10000054: 0000062a mvk \.S2 12,b0
+10000058: 0000006a mvkh \.S2 0,b0
+1000005c: 00002000 nop 2
+10000060: 00080362 b \.S2 b2
+10000064: 00008000 nop 5
+ \.\.\.
+
+Disassembly of section \.text:
+
+10000080 <sub1>:
+10000080: 000c0362 b \.S2 b3
+10000084: 00008000 nop 5
+
+10000088 <sub0>:
+10000088: 07be09c2 sub \.D2 b15,16,b15
+1000008c: 01bc62f6 stw \.D2T2 b3,\*\+b15\(12\)
+10000090: 073c82f6 stw \.D2T2 b14,\*\+b15\(16\)
+10000094: 0700006e ldw \.D2T2 \*\+b14\(0\),b14
+10000098: 0ffffa12 b \.S2 10000050 <sub@plt>
+1000009c: 0ffff712 b \.S2 10000038 <sub0@plt>
+100000a0: 0ffffc12 b \.S2 10000080 <sub1>
+100000a4: 01bc62e6 ldw \.D2T2 \*\+b15\(12\),b3
+100000a8: 073c82e6 ldw \.D2T2 \*\+b15\(16\),b14
+100000ac: 07800852 addk \.S2 16,b15
+100000b0: 00004000 nop 3
+100000b4: 000c0362 b \.S2 b3
+100000b8: 00008000 nop 5
+100000bc: 00000000 nop 1
+
+100000c0 <sub>:
+100000c0: 07be09c2 sub \.D2 b15,16,b15
+100000c4: 023c62f4 stw \.D2T1 a4,\*\+b15\(12\)
+100000c8: 003c62e4 ldw \.D2T1 \*\+b15\(12\),a0
+100000cc: 00006000 nop 4
+100000d0: 00014940 add \.D1 a0,10,a0
+100000d4: 020008f0 or \.D1 0,a0,a4
+100000d8: 07be0942 add \.D2 b15,16,b15
+100000dc: 000c0362 b \.S2 b3
+100000e0: 0300096e ldw \.D2T2 \*\+b14\(36\),b6
+100000e4: 0380076e ldw \.D2T2 \*\+b14\(28\),b7
+100000e8: 0400086e ldw \.D2T2 \*\+b14\(32\),b8
+100000ec: 04800c6e ldw \.D2T2 \*\+b14\(48\),b9
+ \.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.rd
new file mode 100644
index 0000000..e030b17
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.rd
@@ -0,0 +1,131 @@
+There are 18 section headers, starting at offset 0x21cc:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4
+ \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1
+ \[ 4\] \.rela\.text RELA 00008140 001140 00000c 0c A 2 10 4
+ \[ 5\] \.rela\.got RELA 0000814c 00114c 000024 0c A 2 11 4
+ \[ 6\] \.rela\.neardata RELA 00008170 001170 000018 0c A 2 12 4
+ \[ 7\] \.dynamic DYNAMIC 00008188 001188 0000b0 08 WA 3 0 4
+ \[ 8\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 9 4
+ \[ 9\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32
+ \[10\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32
+ \[11\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4
+ \[12\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4
+ \[13\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4
+ \[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1
+ \[15\] \.shstrtab STRTAB 00000000 002149 000080 00 0 0 1
+ \[16\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 17 [0-9]+ 4
+ \[17\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is DYN \(Shared object file\)
+Entry point 0x10000080
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x00238 0x00238 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000
+ DYNAMIC 0x001188 0x00008188 0x00008188 0x000b0 0x000b0 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.text \.rela\.got \.rela\.neardata \.dynamic
+ 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x1188 contains 17 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x8118
+ 0x00000006 \(SYMTAB\) 0x8048
+ 0x0000000a \(STRSZ\) 37 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x70000000 \(C6000_DSBT_BASE\) 0x10000100
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x0
+ 0x00000003 \(PLTGOT\) 0x1000010c
+ 0x00000002 \(PLTRELSZ\) 24 \(bytes\)
+ 0x00000014 \(PLTREL\) RELA
+ 0x00000017 \(JMPREL\) 0x10000000
+ 0x00000007 \(RELA\) 0x8140
+ 0x00000008 \(RELASZ\) 96 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000016 \(TEXTREL\) 0x0
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.text' at offset 0x1140 contains 1 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000094 00000618 R_C6000_DSBT_INDEX 10000100 __c6xabi_DSBT_BASE \+ 0
+
+Relocation section '\.rela\.got' at offset 0x114c contains 3 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0
+1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0
+10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0
+
+Relocation section '\.rela\.neardata' at offset 0x1170 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0
+1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+
+Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0
+10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0
+
+Symbol table '\.dynsym' contains 13 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000020 0 SECTION LOCAL DEFAULT 9
+ 2: 10000080 0 SECTION LOCAL DEFAULT 10
+ 3: 10000100 0 SECTION LOCAL DEFAULT 11
+ 4: 10000128 0 SECTION LOCAL DEFAULT 12
+ 5: 10000130 0 SECTION LOCAL DEFAULT 13
+ 6: 10000100 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE
+ 7: 00000000 0 NOTYPE WEAK DEFAULT UND b
+ 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
+ 9: 1000012c 4 OBJECT GLOBAL DEFAULT 12 g2
+ 10: 10000088 52 FUNC GLOBAL DEFAULT 10 sub0
+ 11: 10000128 4 OBJECT GLOBAL DEFAULT 12 a
+ 12: 100000c0 52 FUNC GLOBAL DEFAULT 10 sub
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 00008048 0 SECTION LOCAL DEFAULT 2
+.* 00008118 0 SECTION LOCAL DEFAULT 3
+.* 00008140 0 SECTION LOCAL DEFAULT 4
+.* 0000814c 0 SECTION LOCAL DEFAULT 5
+.* 00008170 0 SECTION LOCAL DEFAULT 6
+.* 00008188 0 SECTION LOCAL DEFAULT 7
+.* 10000000 0 SECTION LOCAL DEFAULT 8
+.* 10000020 0 SECTION LOCAL DEFAULT 9
+.* 10000080 0 SECTION LOCAL DEFAULT 10
+.* 10000100 0 SECTION LOCAL DEFAULT 11
+.* 10000128 0 SECTION LOCAL DEFAULT 12
+.* 10000130 0 SECTION LOCAL DEFAULT 13
+.* 00000000 0 SECTION LOCAL DEFAULT 14
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000080 0 FUNC LOCAL HIDDEN 10 sub1
+.* 10000130 4 OBJECT LOCAL DEFAULT 13 c
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 00008188 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
+.* 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+.* 10000100 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE
+.* 00000000 0 NOTYPE WEAK DEFAULT UND b
+.* 00000000 0 NOTYPE WEAK DEFAULT UND g1
+.* 1000012c 4 OBJECT GLOBAL DEFAULT 12 g2
+.* 10000088 52 FUNC GLOBAL DEFAULT 10 sub0
+.* 10000128 4 OBJECT GLOBAL DEFAULT 12 a
+.* 100000c0 52 FUNC GLOBAL DEFAULT 10 sub
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.sd
new file mode 100644
index 0000000..1ad767d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.sd
@@ -0,0 +1,7 @@
+
+tmpdir/libtestn\.so: file format elf32-tic6x-le
+
+Contents of section \.got:
+[ \t]*10000100 00000000 00000000 00000000 00000000 .*
+[ \t]*10000110 00000000 20000010 20000010 00000000 .*
+[ \t]*10000120 30010010 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.dd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.dd
new file mode 100644
index 0000000..f3b1b98
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.dd
@@ -0,0 +1,56 @@
+
+tmpdir/static-app-1: file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <sub1>:
+10000000:[ \t]*000c0362[ \t]*b \.S2 b3
+10000004:[ \t]*00008000[ \t]*nop 5
+
+10000008 <sub0>:
+10000008:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+1000000c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
+10000010:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
+10000014:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000018:[ \t]*00000812[ \t]*b \.S2 10000040 <sub>
+1000001c:[ \t]*00000112[ \t]*b \.S2 10000008 <sub0>
+10000020:[ \t]*0ffffc12[ \t]*b \.S2 10000000 <sub1>
+10000024:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
+10000028:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
+1000002c:[ \t]*07800852[ \t]*addk \.S2 16,b15
+10000030:[ \t]*00004000[ \t]*nop 3
+10000034:[ \t]*000c0362[ \t]*b \.S2 b3
+10000038:[ \t]*00008000[ \t]*nop 5
+1000003c:[ \t]*00000000[ \t]*nop 1
+
+10000040 <sub>:
+10000040:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+10000044:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
+10000048:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
+1000004c:[ \t]*00006000[ \t]*nop 4
+10000050:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
+10000054:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
+10000058:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
+1000005c:[ \t]*000c0362[ \t]*b \.S2 b3
+10000060:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+10000064:[ \t]*0380056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b7
+10000068:[ \t]*0400066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b8
+1000006c:[ \t]*04800d6e[ \t]*ldw \.D2T2 \*\+b14\(52\),b9
+[ \t]*\.\.\.
+
+10000080 <fish>:
+10000080:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000084:[ \t]*1ffff112[ \t]*callp \.S2 10000008 <sub0>,b3
+10000088:[ \t]*0ffff112[ \t]*b \.S2 10000008 <sub0>
+1000008c:[ \t]*10000012[ \t]*callp \.S2 10000080 <fish>,b3
+10000090:[ \t]*00000012[ \t]*b \.S2 10000080 <fish>
+10000094:[ \t]*0200086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b4
+10000098:[ \t]*02800a6e[ \t]*ldw \.D2T2 \*\+b14\(40\),b5
+1000009c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+100000a0:[ \t]*0300056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b6
+100000a4:[ \t]*020003a8[ \t]*mvk \.S1 7,a4
+100000a8:[ \t]*02000068[ \t]*mvkh \.S1 0,a4
+100000ac:[ \t]*028002a8[ \t]*mvk \.S1 5,a5
+100000b0:[ \t]*02800068[ \t]*mvkh \.S1 0,a5
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.od b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.od
new file mode 100644
index 0000000..d07cd6e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.od
@@ -0,0 +1,14 @@
+
+tmpdir/static-app-1: file format elf32-tic6x-le
+
+DYNAMIC RELOCATION RECORDS
+OFFSET TYPE VALUE
+100000d8 R_C6000_ABS32 \.bss
+100000d4 R_C6000_ABS32 b
+100000dc R_C6000_ABS32 a
+100000e0 R_C6000_ABS32 \.text\+0x00000008
+100000e4 R_C6000_ABS32 g1
+100000ec R_C6000_ABS32 g1
+100000f0 R_C6000_ABS32 \.neardata\+0x00000004
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.rd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.rd
new file mode 100644
index 0000000..c56d637
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.rd
@@ -0,0 +1,114 @@
+There are 15 section headers, starting at offset 0x2180:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4
+ \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c A 2 8 4
+ \[ 5\] \.rela\.neardata RELA 00008120 001120 000030 0c A 2 9 4
+ \[ 6\] \.dynamic DYNAMIC 00008150 001150 000090 08 WA 3 0 4
+ \[ 7\] \.text PROGBITS 10000000 002000 0000c0 00 AX 0 0 32
+ \[ 8\] \.got PROGBITS 100000c0 0020c0 000020 00 WA 0 0 4
+ \[ 9\] \.neardata PROGBITS 100000e0 0020e0 000014 00 WA 0 0 4
+ \[10\] \.bss NOBITS 100000f4 0020f4 000004 00 WA 0 0 4
+ \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020f4 000019 00 0 0 1
+ \[12\] \.shstrtab STRTAB 00000000 00210d 000071 00 0 0 1
+ \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4
+ \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is EXEC \(Executable file\)
+Entry point 0x10000000
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x001e0 0x001e0 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x000f4 0x000f8 RWE 0x1000
+ DYNAMIC 0x001150 0x00008150 0x00008150 0x00090 0x00090 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
+ 01 \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x1150 contains 13 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x80dc
+ 0x00000006 \(SYMTAB\) 0x803c
+ 0x0000000a \(STRSZ\) 29 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000015 \(DEBUG\) 0x0
+ 0x70000000 \(C6000_DSBT_BASE\) 0x100000c0
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x0
+ 0x00000007 \(RELA\) 0x80fc
+ 0x00000008 \(RELASZ\) 84 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x10fc contains 3 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000d8 00000401 R_C6000_ABS32 100000f4 \.bss \+ 0
+100000d4 00000701 R_C6000_ABS32 100000e8 b \+ 0
+100000dc 00000901 R_C6000_ABS32 100000e0 a \+ 0
+
+Relocation section '\.rela\.neardata' at offset 0x1120 contains 4 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000e0 00000101 R_C6000_ABS32 10000000 \.text \+ 8
+100000e4 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+100000ec 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+100000f0 00000301 R_C6000_ABS32 100000e0 \.neardata \+ 4
+
+Symbol table '\.dynsym' contains 10 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000000 0 SECTION LOCAL DEFAULT 7
+ 2: 100000c0 0 SECTION LOCAL DEFAULT 8
+ 3: 100000e0 0 SECTION LOCAL DEFAULT 9
+ 4: 100000f4 0 SECTION LOCAL DEFAULT 10
+ 5: 100000f4 4 OBJECT LOCAL DEFAULT 10 c
+ 6: 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE
+ 7: 100000e8 4 OBJECT GLOBAL DEFAULT 9 b
+ 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
+ 9: 100000e0 4 OBJECT GLOBAL DEFAULT 9 a
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 0000803c 0 SECTION LOCAL DEFAULT 2
+.* 000080dc 0 SECTION LOCAL DEFAULT 3
+.* 000080fc 0 SECTION LOCAL DEFAULT 4
+.* 00008120 0 SECTION LOCAL DEFAULT 5
+.* 00008150 0 SECTION LOCAL DEFAULT 6
+.* 10000000 0 SECTION LOCAL DEFAULT 7
+.* 100000c0 0 SECTION LOCAL DEFAULT 8
+.* 100000e0 0 SECTION LOCAL DEFAULT 9
+.* 100000f4 0 SECTION LOCAL DEFAULT 10
+.* 00000000 0 SECTION LOCAL DEFAULT 11
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000000 0 FUNC LOCAL HIDDEN 7 sub1
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000080 0 NOTYPE LOCAL DEFAULT 7 fish
+.* 100000ec 8 OBJECT LOCAL DEFAULT 9 w
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 00008150 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC
+.* 100000f4 4 OBJECT LOCAL DEFAULT 10 c
+.* 100000cc 0 OBJECT LOCAL DEFAULT 8 _GLOBAL_OFFSET_TABLE_
+.* 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE
+.* 100000e8 4 OBJECT GLOBAL DEFAULT 9 b
+.* 00000000 0 NOTYPE WEAK DEFAULT UND g1
+.* 100000e4 4 OBJECT GLOBAL DEFAULT 9 g2
+.* 10000008 52 FUNC GLOBAL DEFAULT 7 sub0
+.* 100000e0 4 OBJECT GLOBAL DEFAULT 9 a
+.* 10000040 52 FUNC GLOBAL DEFAULT 7 sub
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.sd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.sd
new file mode 100644
index 0000000..2f24f40
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.sd
@@ -0,0 +1,6 @@
+
+tmpdir/static-app-1: file format elf32-tic6x-le
+
+Contents of section \.got:
+[ \t]*100000c0 00000000 00000000 00000000 00000000 .*
+[ \t]*100000d0 00000000 00000000 f4000010 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.dd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.dd
new file mode 100644
index 0000000..f6ddda7
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.dd
@@ -0,0 +1,56 @@
+
+tmpdir/static-app-1b: file format elf32-tic6x-be
+
+
+Disassembly of section \.text:
+
+10000000 <sub1>:
+10000000:[ \t]*000c0362[ \t]*b \.S2 b3
+10000004:[ \t]*00008000[ \t]*nop 5
+
+10000008 <sub0>:
+10000008:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+1000000c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
+10000010:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
+10000014:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000018:[ \t]*00000812[ \t]*b \.S2 10000040 <sub>
+1000001c:[ \t]*00000112[ \t]*b \.S2 10000008 <sub0>
+10000020:[ \t]*0ffffc12[ \t]*b \.S2 10000000 <sub1>
+10000024:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
+10000028:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
+1000002c:[ \t]*07800852[ \t]*addk \.S2 16,b15
+10000030:[ \t]*00004000[ \t]*nop 3
+10000034:[ \t]*000c0362[ \t]*b \.S2 b3
+10000038:[ \t]*00008000[ \t]*nop 5
+1000003c:[ \t]*00000000[ \t]*nop 1
+
+10000040 <sub>:
+10000040:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+10000044:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
+10000048:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
+1000004c:[ \t]*00006000[ \t]*nop 4
+10000050:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
+10000054:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
+10000058:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
+1000005c:[ \t]*000c0362[ \t]*b \.S2 b3
+10000060:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+10000064:[ \t]*0380056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b7
+10000068:[ \t]*0400066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b8
+1000006c:[ \t]*04800d6e[ \t]*ldw \.D2T2 \*\+b14\(52\),b9
+[ \t]*\.\.\.
+
+10000080 <fish>:
+10000080:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000084:[ \t]*1ffff112[ \t]*callp \.S2 10000008 <sub0>,b3
+10000088:[ \t]*0ffff112[ \t]*b \.S2 10000008 <sub0>
+1000008c:[ \t]*10000012[ \t]*callp \.S2 10000080 <fish>,b3
+10000090:[ \t]*00000012[ \t]*b \.S2 10000080 <fish>
+10000094:[ \t]*0200086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b4
+10000098:[ \t]*02800a6e[ \t]*ldw \.D2T2 \*\+b14\(40\),b5
+1000009c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+100000a0:[ \t]*0300056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b6
+100000a4:[ \t]*020003a8[ \t]*mvk \.S1 7,a4
+100000a8:[ \t]*02000068[ \t]*mvkh \.S1 0,a4
+100000ac:[ \t]*028002a8[ \t]*mvk \.S1 5,a5
+100000b0:[ \t]*02800068[ \t]*mvkh \.S1 0,a5
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.od b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.od
new file mode 100644
index 0000000..a35d194
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.od
@@ -0,0 +1,14 @@
+
+tmpdir/static-app-1b: file format elf32-tic6x-be
+
+DYNAMIC RELOCATION RECORDS
+OFFSET TYPE VALUE
+100000d8 R_C6000_ABS32 \.bss
+100000d4 R_C6000_ABS32 b
+100000dc R_C6000_ABS32 a
+100000e0 R_C6000_ABS32 \.text\+0x00000008
+100000e4 R_C6000_ABS32 g1
+100000ec R_C6000_ABS32 g1
+100000f0 R_C6000_ABS32 \.neardata\+0x00000004
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.rd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.rd
new file mode 100644
index 0000000..c56d637
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.rd
@@ -0,0 +1,114 @@
+There are 15 section headers, starting at offset 0x2180:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4
+ \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c A 2 8 4
+ \[ 5\] \.rela\.neardata RELA 00008120 001120 000030 0c A 2 9 4
+ \[ 6\] \.dynamic DYNAMIC 00008150 001150 000090 08 WA 3 0 4
+ \[ 7\] \.text PROGBITS 10000000 002000 0000c0 00 AX 0 0 32
+ \[ 8\] \.got PROGBITS 100000c0 0020c0 000020 00 WA 0 0 4
+ \[ 9\] \.neardata PROGBITS 100000e0 0020e0 000014 00 WA 0 0 4
+ \[10\] \.bss NOBITS 100000f4 0020f4 000004 00 WA 0 0 4
+ \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020f4 000019 00 0 0 1
+ \[12\] \.shstrtab STRTAB 00000000 00210d 000071 00 0 0 1
+ \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4
+ \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is EXEC \(Executable file\)
+Entry point 0x10000000
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x001e0 0x001e0 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x000f4 0x000f8 RWE 0x1000
+ DYNAMIC 0x001150 0x00008150 0x00008150 0x00090 0x00090 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
+ 01 \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x1150 contains 13 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x80dc
+ 0x00000006 \(SYMTAB\) 0x803c
+ 0x0000000a \(STRSZ\) 29 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000015 \(DEBUG\) 0x0
+ 0x70000000 \(C6000_DSBT_BASE\) 0x100000c0
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x0
+ 0x00000007 \(RELA\) 0x80fc
+ 0x00000008 \(RELASZ\) 84 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x10fc contains 3 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000d8 00000401 R_C6000_ABS32 100000f4 \.bss \+ 0
+100000d4 00000701 R_C6000_ABS32 100000e8 b \+ 0
+100000dc 00000901 R_C6000_ABS32 100000e0 a \+ 0
+
+Relocation section '\.rela\.neardata' at offset 0x1120 contains 4 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000e0 00000101 R_C6000_ABS32 10000000 \.text \+ 8
+100000e4 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+100000ec 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+100000f0 00000301 R_C6000_ABS32 100000e0 \.neardata \+ 4
+
+Symbol table '\.dynsym' contains 10 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000000 0 SECTION LOCAL DEFAULT 7
+ 2: 100000c0 0 SECTION LOCAL DEFAULT 8
+ 3: 100000e0 0 SECTION LOCAL DEFAULT 9
+ 4: 100000f4 0 SECTION LOCAL DEFAULT 10
+ 5: 100000f4 4 OBJECT LOCAL DEFAULT 10 c
+ 6: 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE
+ 7: 100000e8 4 OBJECT GLOBAL DEFAULT 9 b
+ 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
+ 9: 100000e0 4 OBJECT GLOBAL DEFAULT 9 a
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 0000803c 0 SECTION LOCAL DEFAULT 2
+.* 000080dc 0 SECTION LOCAL DEFAULT 3
+.* 000080fc 0 SECTION LOCAL DEFAULT 4
+.* 00008120 0 SECTION LOCAL DEFAULT 5
+.* 00008150 0 SECTION LOCAL DEFAULT 6
+.* 10000000 0 SECTION LOCAL DEFAULT 7
+.* 100000c0 0 SECTION LOCAL DEFAULT 8
+.* 100000e0 0 SECTION LOCAL DEFAULT 9
+.* 100000f4 0 SECTION LOCAL DEFAULT 10
+.* 00000000 0 SECTION LOCAL DEFAULT 11
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000000 0 FUNC LOCAL HIDDEN 7 sub1
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000080 0 NOTYPE LOCAL DEFAULT 7 fish
+.* 100000ec 8 OBJECT LOCAL DEFAULT 9 w
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 00008150 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC
+.* 100000f4 4 OBJECT LOCAL DEFAULT 10 c
+.* 100000cc 0 OBJECT LOCAL DEFAULT 8 _GLOBAL_OFFSET_TABLE_
+.* 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE
+.* 100000e8 4 OBJECT GLOBAL DEFAULT 9 b
+.* 00000000 0 NOTYPE WEAK DEFAULT UND g1
+.* 100000e4 4 OBJECT GLOBAL DEFAULT 9 g2
+.* 10000008 52 FUNC GLOBAL DEFAULT 7 sub0
+.* 100000e0 4 OBJECT GLOBAL DEFAULT 9 a
+.* 10000040 52 FUNC GLOBAL DEFAULT 7 sub
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.sd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.sd
new file mode 100644
index 0000000..69f638c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.sd
@@ -0,0 +1,6 @@
+
+tmpdir/static-app-1b: file format elf32-tic6x-be
+
+Contents of section \.got:
+[ \t]*100000c0 00000000 00000000 00000000 00000000 .*
+[ \t]*100000d0 00000000 00000000 100000f4 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.dd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.dd
new file mode 100644
index 0000000..82b3ecd
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.dd
@@ -0,0 +1,52 @@
+
+tmpdir/static-app-1r: file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <sub1>:
+10000000:[ \t]*000c0362[ \t]*b \.S2 b3
+10000004:[ \t]*00008000[ \t]*nop 5
+
+10000008 <sub0>:
+10000008:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+1000000c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
+10000010:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
+10000014:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000018:[ \t]*00000812[ \t]*b \.S2 10000040 <sub>
+1000001c:[ \t]*00000112[ \t]*b \.S2 10000008 <sub0>
+10000020:[ \t]*0ffffc12[ \t]*b \.S2 10000000 <sub1>
+10000024:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
+10000028:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
+1000002c:[ \t]*07800852[ \t]*addk \.S2 16,b15
+10000030:[ \t]*00004000[ \t]*nop 3
+10000034:[ \t]*000c0362[ \t]*b \.S2 b3
+10000038:[ \t]*00008000[ \t]*nop 5
+1000003c:[ \t]*00000000[ \t]*nop 1
+
+10000040 <sub>:
+10000040:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+10000044:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
+10000048:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
+1000004c:[ \t]*00006000[ \t]*nop 4
+10000050:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
+10000054:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
+10000058:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
+1000005c:[ \t]*000c0362[ \t]*b \.S2 b3
+10000060:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+10000064:[ \t]*0380056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b7
+10000068:[ \t]*0400066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b8
+1000006c:[ \t]*04800b6e[ \t]*ldw \.D2T2 \*\+b14\(44\),b9
+[ \t]*\.\.\.
+
+10000080 <fish>:
+10000080:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000084:[ \t]*1ffff112[ \t]*callp \.S2 10000008 <sub0>,b3
+10000088:[ \t]*0ffff112[ \t]*b \.S2 10000008 <sub0>
+1000008c:[ \t]*10000012[ \t]*callp \.S2 10000080 <fish>,b3
+10000090:[ \t]*00000012[ \t]*b \.S2 10000080 <fish>
+10000094:[ \t]*0200086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b4
+10000098:[ \t]*02800a6e[ \t]*ldw \.D2T2 \*\+b14\(40\),b5
+1000009c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+100000a0:[ \t]*0300056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b6
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.od b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.od
new file mode 100644
index 0000000..06f8d50
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.od
@@ -0,0 +1,12 @@
+
+tmpdir/static-app-1r: file format elf32-tic6x-le
+
+DYNAMIC RELOCATION RECORDS
+OFFSET TYPE VALUE
+100000d8 R_C6000_ABS32 \.bss
+100000d4 R_C6000_ABS32 b
+100000dc R_C6000_ABS32 a
+100000e0 R_C6000_ABS32 \.text\+0x00000008
+100000e4 R_C6000_ABS32 g1
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.rd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.rd
new file mode 100644
index 0000000..588e422
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.rd
@@ -0,0 +1,111 @@
+There are 15 section headers, starting at offset 0x2178:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4
+ \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c A 2 8 4
+ \[ 5\] \.rela\.neardata RELA 00008120 001120 000018 0c A 2 9 4
+ \[ 6\] \.dynamic DYNAMIC 00008138 001138 000090 08 WA 3 0 4
+ \[ 7\] \.text PROGBITS 10000000 002000 0000c0 00 AX 0 0 32
+ \[ 8\] \.got PROGBITS 100000c0 0020c0 000020 00 WA 0 0 4
+ \[ 9\] \.neardata PROGBITS 100000e0 0020e0 00000c 00 WA 0 0 4
+ \[10\] \.bss NOBITS 100000ec 0020ec 000004 00 WA 0 0 4
+ \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020ec 000019 00 0 0 1
+ \[12\] \.shstrtab STRTAB 00000000 002105 000071 00 0 0 1
+ \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4
+ \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is EXEC \(Executable file\)
+Entry point 0x10000000
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x001c8 0x001c8 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x000ec 0x000f0 RWE 0x1000
+ DYNAMIC 0x001138 0x00008138 0x00008138 0x00090 0x00090 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
+ 01 \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x1138 contains 13 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x80dc
+ 0x00000006 \(SYMTAB\) 0x803c
+ 0x0000000a \(STRSZ\) 29 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000015 \(DEBUG\) 0x0
+ 0x70000000 \(C6000_DSBT_BASE\) 0x100000c0
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x0
+ 0x00000007 \(RELA\) 0x80fc
+ 0x00000008 \(RELASZ\) 60 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x10fc contains 3 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000d8 00000401 R_C6000_ABS32 100000ec \.bss \+ 0
+100000d4 00000701 R_C6000_ABS32 100000e8 b \+ 0
+100000dc 00000901 R_C6000_ABS32 100000e0 a \+ 0
+
+Relocation section '\.rela\.neardata' at offset 0x1120 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000e0 00000101 R_C6000_ABS32 10000000 \.text \+ 8
+100000e4 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+
+Symbol table '\.dynsym' contains 10 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000000 0 SECTION LOCAL DEFAULT 7
+ 2: 100000c0 0 SECTION LOCAL DEFAULT 8
+ 3: 100000e0 0 SECTION LOCAL DEFAULT 9
+ 4: 100000ec 0 SECTION LOCAL DEFAULT 10
+ 5: 100000ec 4 OBJECT LOCAL DEFAULT 10 c
+ 6: 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE
+ 7: 100000e8 4 OBJECT GLOBAL DEFAULT 9 b
+ 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
+ 9: 100000e0 4 OBJECT GLOBAL DEFAULT 9 a
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 0000803c 0 SECTION LOCAL DEFAULT 2
+.* 000080dc 0 SECTION LOCAL DEFAULT 3
+.* 000080fc 0 SECTION LOCAL DEFAULT 4
+.* 00008120 0 SECTION LOCAL DEFAULT 5
+.* 00008138 0 SECTION LOCAL DEFAULT 6
+.* 10000000 0 SECTION LOCAL DEFAULT 7
+.* 100000c0 0 SECTION LOCAL DEFAULT 8
+.* 100000e0 0 SECTION LOCAL DEFAULT 9
+.* 100000ec 0 SECTION LOCAL DEFAULT 10
+.* 00000000 0 SECTION LOCAL DEFAULT 11
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000000 0 FUNC LOCAL HIDDEN 7 sub1
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000080 0 NOTYPE LOCAL DEFAULT 7 fish
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 00008138 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC
+.* 100000ec 4 OBJECT LOCAL DEFAULT 10 c
+.* 100000cc 0 OBJECT LOCAL DEFAULT 8 _GLOBAL_OFFSET_TABLE_
+.* 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE
+.* 100000e8 4 OBJECT GLOBAL DEFAULT 9 b
+.* 00000000 0 NOTYPE WEAK DEFAULT UND g1
+.* 100000e4 4 OBJECT GLOBAL DEFAULT 9 g2
+.* 10000008 52 FUNC GLOBAL DEFAULT 7 sub0
+.* 100000e0 4 OBJECT GLOBAL DEFAULT 9 a
+.* 10000040 52 FUNC GLOBAL DEFAULT 7 sub
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.sd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.sd
new file mode 100644
index 0000000..e01cd49
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.sd
@@ -0,0 +1,6 @@
+
+tmpdir/static-app-1r: file format elf32-tic6x-le
+
+Contents of section \.got:
+[ \t]*100000c0 00000000 00000000 00000000 00000000 .*
+[ \t]*100000d0 00000000 00000000 ec000010 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.dd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.dd
new file mode 100644
index 0000000..9e211ca
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.dd
@@ -0,0 +1,52 @@
+
+tmpdir/static-app-1rb: file format elf32-tic6x-be
+
+
+Disassembly of section \.text:
+
+10000000 <sub1>:
+10000000:[ \t]*000c0362[ \t]*b \.S2 b3
+10000004:[ \t]*00008000[ \t]*nop 5
+
+10000008 <sub0>:
+10000008:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+1000000c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
+10000010:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
+10000014:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000018:[ \t]*00000812[ \t]*b \.S2 10000040 <sub>
+1000001c:[ \t]*00000112[ \t]*b \.S2 10000008 <sub0>
+10000020:[ \t]*0ffffc12[ \t]*b \.S2 10000000 <sub1>
+10000024:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
+10000028:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
+1000002c:[ \t]*07800852[ \t]*addk \.S2 16,b15
+10000030:[ \t]*00004000[ \t]*nop 3
+10000034:[ \t]*000c0362[ \t]*b \.S2 b3
+10000038:[ \t]*00008000[ \t]*nop 5
+1000003c:[ \t]*00000000[ \t]*nop 1
+
+10000040 <sub>:
+10000040:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
+10000044:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
+10000048:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
+1000004c:[ \t]*00006000[ \t]*nop 4
+10000050:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
+10000054:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
+10000058:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
+1000005c:[ \t]*000c0362[ \t]*b \.S2 b3
+10000060:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+10000064:[ \t]*0380056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b7
+10000068:[ \t]*0400066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b8
+1000006c:[ \t]*04800b6e[ \t]*ldw \.D2T2 \*\+b14\(44\),b9
+[ \t]*\.\.\.
+
+10000080 <fish>:
+10000080:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
+10000084:[ \t]*1ffff112[ \t]*callp \.S2 10000008 <sub0>,b3
+10000088:[ \t]*0ffff112[ \t]*b \.S2 10000008 <sub0>
+1000008c:[ \t]*10000012[ \t]*callp \.S2 10000080 <fish>,b3
+10000090:[ \t]*00000012[ \t]*b \.S2 10000080 <fish>
+10000094:[ \t]*0200086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b4
+10000098:[ \t]*02800a6e[ \t]*ldw \.D2T2 \*\+b14\(40\),b5
+1000009c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
+100000a0:[ \t]*0300056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b6
+[ \t]*\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.od b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.od
new file mode 100644
index 0000000..13d4255
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.od
@@ -0,0 +1,12 @@
+
+tmpdir/static-app-1rb: file format elf32-tic6x-be
+
+DYNAMIC RELOCATION RECORDS
+OFFSET TYPE VALUE
+100000d8 R_C6000_ABS32 \.bss
+100000d4 R_C6000_ABS32 b
+100000dc R_C6000_ABS32 a
+100000e0 R_C6000_ABS32 \.text\+0x00000008
+100000e4 R_C6000_ABS32 g1
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.rd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.rd
new file mode 100644
index 0000000..588e422
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.rd
@@ -0,0 +1,111 @@
+There are 15 section headers, starting at offset 0x2178:
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4
+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4
+ \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1
+ \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c A 2 8 4
+ \[ 5\] \.rela\.neardata RELA 00008120 001120 000018 0c A 2 9 4
+ \[ 6\] \.dynamic DYNAMIC 00008138 001138 000090 08 WA 3 0 4
+ \[ 7\] \.text PROGBITS 10000000 002000 0000c0 00 AX 0 0 32
+ \[ 8\] \.got PROGBITS 100000c0 0020c0 000020 00 WA 0 0 4
+ \[ 9\] \.neardata PROGBITS 100000e0 0020e0 00000c 00 WA 0 0 4
+ \[10\] \.bss NOBITS 100000ec 0020ec 000004 00 WA 0 0 4
+ \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020ec 000019 00 0 0 1
+ \[12\] \.shstrtab STRTAB 00000000 002105 000071 00 0 0 1
+ \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4
+ \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+
+Elf file type is EXEC \(Executable file\)
+Entry point 0x10000000
+There are 4 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x001000 0x00008000 0x00008000 0x001c8 0x001c8 RW 0x1000
+ LOAD 0x002000 0x10000000 0x10000000 0x000ec 0x000f0 RWE 0x1000
+ DYNAMIC 0x001138 0x00008138 0x00008138 0x00090 0x00090 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
+
+ Section to Segment mapping:
+ Segment Sections\.\.\.
+ 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
+ 01 \.text \.got \.neardata \.bss
+ 02 \.dynamic
+ 03
+
+Dynamic section at offset 0x1138 contains 13 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0x8000
+ 0x00000005 \(STRTAB\) 0x80dc
+ 0x00000006 \(SYMTAB\) 0x803c
+ 0x0000000a \(STRSZ\) 29 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000015 \(DEBUG\) 0x0
+ 0x70000000 \(C6000_DSBT_BASE\) 0x100000c0
+ 0x70000001 \(C6000_DSBT_SIZE\) 0x3
+ 0x70000003 \(C6000_DSBT_INDEX\) 0x0
+ 0x00000007 \(RELA\) 0x80fc
+ 0x00000008 \(RELASZ\) 60 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rela\.got' at offset 0x10fc contains 3 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000d8 00000401 R_C6000_ABS32 100000ec \.bss \+ 0
+100000d4 00000701 R_C6000_ABS32 100000e8 b \+ 0
+100000dc 00000901 R_C6000_ABS32 100000e0 a \+ 0
+
+Relocation section '\.rela\.neardata' at offset 0x1120 contains 2 entries:
+ Offset Info Type Sym\. Value Symbol's Name \+ Addend
+100000e0 00000101 R_C6000_ABS32 10000000 \.text \+ 8
+100000e4 00000801 R_C6000_ABS32 00000000 g1 \+ 0
+
+Symbol table '\.dynsym' contains 10 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 10000000 0 SECTION LOCAL DEFAULT 7
+ 2: 100000c0 0 SECTION LOCAL DEFAULT 8
+ 3: 100000e0 0 SECTION LOCAL DEFAULT 9
+ 4: 100000ec 0 SECTION LOCAL DEFAULT 10
+ 5: 100000ec 4 OBJECT LOCAL DEFAULT 10 c
+ 6: 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE
+ 7: 100000e8 4 OBJECT GLOBAL DEFAULT 9 b
+ 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
+ 9: 100000e0 4 OBJECT GLOBAL DEFAULT 9 a
+
+Symbol table '\.symtab' contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+.* 00000000 0 NOTYPE LOCAL DEFAULT UND
+.* 00008000 0 SECTION LOCAL DEFAULT 1
+.* 0000803c 0 SECTION LOCAL DEFAULT 2
+.* 000080dc 0 SECTION LOCAL DEFAULT 3
+.* 000080fc 0 SECTION LOCAL DEFAULT 4
+.* 00008120 0 SECTION LOCAL DEFAULT 5
+.* 00008138 0 SECTION LOCAL DEFAULT 6
+.* 10000000 0 SECTION LOCAL DEFAULT 7
+.* 100000c0 0 SECTION LOCAL DEFAULT 8
+.* 100000e0 0 SECTION LOCAL DEFAULT 9
+.* 100000ec 0 SECTION LOCAL DEFAULT 10
+.* 00000000 0 SECTION LOCAL DEFAULT 11
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000000 0 FUNC LOCAL HIDDEN 7 sub1
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 10000080 0 NOTYPE LOCAL DEFAULT 7 fish
+.* 00000000 0 FILE LOCAL DEFAULT ABS .*
+.* 00008138 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC
+.* 100000ec 4 OBJECT LOCAL DEFAULT 10 c
+.* 100000cc 0 OBJECT LOCAL DEFAULT 8 _GLOBAL_OFFSET_TABLE_
+.* 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE
+.* 100000e8 4 OBJECT GLOBAL DEFAULT 9 b
+.* 00000000 0 NOTYPE WEAK DEFAULT UND g1
+.* 100000e4 4 OBJECT GLOBAL DEFAULT 9 g2
+.* 10000008 52 FUNC GLOBAL DEFAULT 7 sub0
+.* 100000e0 4 OBJECT GLOBAL DEFAULT 9 a
+.* 10000040 52 FUNC GLOBAL DEFAULT 7 sub
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.sd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.sd
new file mode 100644
index 0000000..8d7bd0d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.sd
@@ -0,0 +1,6 @@
+
+tmpdir/static-app-1rb: file format elf32-tic6x-be
+
+Contents of section \.got:
+[ \t]*100000c0 00000000 00000000 00000000 00000000 .*
+[ \t]*100000d0 00000000 00000000 100000ec 00000000 .*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/tic6x.exp b/binutils-2.24/ld/testsuite/ld-tic6x/tic6x.exp
new file mode 100644
index 0000000..fe47650
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/tic6x.exp
@@ -0,0 +1,201 @@
+# Expect script for ld-tic6x tests
+#
+# Copyright 2012 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+if { ! [istarget tic6x-*-*] } {
+ return
+}
+
+foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.d]] {
+ if { [runtest_file_p $runtests $test] } {
+ run_dump_test [file rootname $test]
+ }
+}
+
+set shlibtests {
+ {"C6X shared library without --dsbt-index"
+ "-shared -Tdsbt.ld --dsbt-size=3" ""
+ "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s}
+ {{readelf -WSsrld shlib-noindex.rd}
+ {objdump "-drj.plt -j.text" shlib-noindex.dd}
+ {objdump -sj.got shlib-noindex.sd}}
+ "libtestn.so"}
+ {"C6X shared library, LE, RELA"
+ "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" ""
+ "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s}
+ {{readelf -WSsrld shlib-1.rd}
+ {objdump "-drj.plt -j.text" shlib-1.dd}
+ {objdump -sj.got shlib-1.sd}}
+ "libtest.so"}
+ {"C6X nonstatic app using shared library, LE, RELA"
+ "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtest.so" ""
+ "-mdsbt -mpic -mpid=near" {shlib-app-1.s}
+ {{readelf -WSsrld shlib-app-1.rd}
+ {objdump "-drj.plt -j.text" shlib-app-1.dd}
+ {objdump -sj.got shlib-app-1.sd}
+ {objdump -R shlib-app-1.od}}
+ "shlib-dynapp-1"}
+ {"C6X shared library, LE, REL"
+ "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" ""
+ "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s}
+ {{readelf -WSsrld shlib-1r.rd}
+ {objdump "-drj.plt -j.text" shlib-1r.dd}
+ {objdump -sj.got shlib-1r.sd}}
+ "libtestr.so"}
+ {"C6X nonstatic app using shared library, LE, REL"
+ "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestr.so" ""
+ "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-app-1r.s}
+ {{readelf -WSsrld shlib-app-1r.rd}
+ {objdump "-drj.plt -j.text" shlib-app-1r.dd}
+ {objdump -sj.got shlib-app-1r.sd}
+ {objdump -R shlib-app-1r.od}}
+ "shlib-dynapp-1r"}
+ {"C6X shared library, BE, RELA"
+ "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" ""
+ "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s}
+ {{readelf -WSsrld shlib-1b.rd}
+ {objdump "-drj.plt -j.text" shlib-1b.dd}
+ {objdump -sj.got shlib-1b.sd}}
+ "libtestb.so"}
+ {"C6X nonstatic app using shared library, BE, RELA"
+ "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestb.so" ""
+ "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-app-1.s}
+ {{readelf -WSsrld shlib-app-1b.rd}
+ {objdump "-drj.plt -j.text" shlib-app-1b.dd}
+ {objdump -sj.got shlib-app-1b.sd}
+ {objdump -R shlib-app-1b.od}}
+ "shlib-dynapp-1b"}
+ {"C6X shared library, BE, REL"
+ "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" ""
+ "-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-1.s shlib-2.s}
+ {{readelf -WSsrld shlib-1rb.rd}
+ {objdump "-drj.plt -j.text" shlib-1rb.dd}
+ {objdump -sj.got shlib-1rb.sd}}
+ "libtestrb.so"}
+ {"C6X nonstatic app using shared library, BE, REL"
+ "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestrb.so" ""
+ "-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-app-1r.s}
+ {{readelf -WSsrld shlib-app-1rb.rd}
+ {objdump "-drj.plt -j.text" shlib-app-1rb.dd}
+ {objdump -sj.got shlib-app-1rb.sd}
+ {objdump -R shlib-app-1rb.od}}
+ "shlib-dynapp-1rb"}
+
+ {"C6X static app, LE, RELA"
+ "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" ""
+ "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s shlib-app-1.s}
+ {{readelf -WSsrld static-app-1.rd}
+ {objdump "-drj.plt -j.text" static-app-1.dd}
+ {objdump -sj.got static-app-1.sd}
+ {objdump -R static-app-1.od}}
+ "static-app-1"}
+ {"C6X static app, LE, REL"
+ "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" ""
+ "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s}
+ {{readelf -WSsrld static-app-1r.rd}
+ {objdump "-drj.plt -j.text" static-app-1r.dd}
+ {objdump -sj.got static-app-1r.sd}
+ {objdump -R static-app-1r.od}}
+ "static-app-1r"}
+ {"C6X static app, BE, RELA"
+ "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" ""
+ "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s shlib-app-1.s}
+ {{readelf -WSsrld static-app-1b.rd}
+ {objdump "-drj.plt -j.text" static-app-1b.dd}
+ {objdump -sj.got static-app-1b.sd}
+ {objdump -R static-app-1b.od}}
+ "static-app-1b"}
+ {"C6X static app, BE, REL"
+ "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" ""
+ "-mdsbt -mpic -mpid=near -mbig-endian -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s}
+ {{readelf -WSsrld static-app-1rb.rd}
+ {objdump "-drj.plt -j.text" static-app-1rb.dd}
+ {objdump -sj.got static-app-1rb.sd}
+ {objdump -R static-app-1rb.od}}
+ "static-app-1rb"}
+}
+
+run_ld_link_tests $shlibtests
+
+if { [istarget tic6x-*-elf] } {
+ set expected_osabi "Bare-metal C6000"
+} elseif { [istarget tic6x-*-uclinux] } {
+ set expected_osabi "Linux C6000"
+} else {
+ return
+}
+
+if { ![ld_assemble_flags $as "-mpic -mpid=near" $srcdir/$subdir/shlib-1.s tmpdir/shlib-1.o]
+ || ![ld_assemble_flags $as "-mpic -mpid=near" $srcdir/$subdir/shlib-2.s tmpdir/shlib-2.o]
+ || ![ld_assemble $as $srcdir/$subdir/shlib-app-1.s tmpdir/shlib-app-1.o]
+ || ![ld_assemble_flags $as "-mpic -mpid=near -mbig-endian" $srcdir/$subdir/shlib-1.s tmpdir/shlib-1b.o]
+ || ![ld_assemble_flags $as "-mpic -mpid=near -mbig-endian" $srcdir/$subdir/shlib-2.s tmpdir/shlib-2b.o]
+ || ![ld_assemble_flags $as -mbig-endian $srcdir/$subdir/shlib-app-1.s tmpdir/shlib-app-1b.o]
+ || ![ld_simple_link $ld tmpdir/libtest.so "-shared tmpdir/shlib-1.o tmpdir/shlib-2.o"]
+ || ![ld_simple_link $ld tmpdir/libtestb.so "-shared -EB tmpdir/shlib-1b.o tmpdir/shlib-2b.o"]
+ || ![ld_simple_link $ld tmpdir/shlib.o "-r tmpdir/shlib-1.o tmpdir/shlib-2.o"]
+ || ![ld_simple_link $ld tmpdir/shlibb.o "-r -EB tmpdir/shlib-1b.o tmpdir/shlib-2b.o"]
+ || ![ld_simple_link $ld tmpdir/dynapp-1 "tmpdir/libtest.so tmpdir/shlib-app-1.o"]
+ || ![ld_simple_link $ld tmpdir/dynapp-1b "-EB tmpdir/libtestb.so tmpdir/shlib-app-1b.o"] } {
+ unresolved "TIC6X OSABI tests"
+ return
+}
+
+# A procedure to check the OS/ABI field in the ELF header of a binary file.
+proc check_osabi_tic6x { test_name binary_file } {
+ global READELF
+ global READELFFLAGS
+ global expected_osabi
+
+ set cmd "$READELF $READELFFLAGS --file-header $binary_file"
+ send_log "$cmd\n"
+ set got [remote_exec host [concat sh -c [list "$cmd >dump.out"]] "" "/dev/null"]
+
+ if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
+ send_log "$got\n"
+ unresolved "$test_name"
+ remote_file build delete "dump.out"
+ return
+ }
+ remote_upload host "dump.out"
+
+ if { ![regexp "\n\[ \]*OS/ABI:\[ \]*(.+)\n\[ \]*ABI" \
+ [file_contents dump.out] nil osabi] } {
+ verbose "proc check_osabi_tic6x: Readelf failed to extract an ELF header from $binary_file"
+ unresolved "$test_name"
+ } elseif { $osabi == $expected_osabi } {
+ pass "$test_name"
+ } else {
+ verbose "Expected OSABI: $expected_osabi, Obtained osabi: $osabi"
+ fail "$test_name"
+ }
+ remote_file build delete "dump.out"
+ remote_file host delete "dump.out"
+}
+
+check_osabi_tic6x "C6X shared library OSABI, LE" tmpdir/libtest.so
+check_osabi_tic6x "C6X shared library OSABI, BE" tmpdir/libtestb.so
+check_osabi_tic6x "C6X dynamic app OSABI, LE" tmpdir/dynapp-1
+check_osabi_tic6x "C6X dynamic app OSABI, BE" tmpdir/dynapp-1b
+
+set expected_osabi "UNIX - System V"
+
+check_osabi_tic6x "C6X relocatable link OSABI, LE" tmpdir/shlib.o
+check_osabi_tic6x "C6X relocatable link OSABI, BE" tmpdir/shlibb.o
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.d
new file mode 100644
index 0000000..11a24d4
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.d
@@ -0,0 +1,10 @@
+#ld: -T unwind.ld
+#objdump: -s
+
+.*: file format.*
+
+#...
+Contents of section .c6xabi.exidx:
+ 9000 (00f8ff7f 07020083 1cf8ff7f 01000000|7ffff800 83000207 7ffff81c 00000001) .*
+Contents of section .far:
+#...
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.s
new file mode 100644
index 0000000..5783a40
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.s
@@ -0,0 +1,25 @@
+ .cfi_sections .c6xabi.exidx
+ .text
+ .global _start
+ .type _start, %function
+_start:
+ .cfi_startproc
+ .cfi_offset B3, 0
+ .cfi_def_cfa_offset 8
+ nop
+ .p2align 6
+ .cfi_endproc
+ .personalityindex 3
+ .endp
+
+ # Section with no unwinding information.
+ # Linker should insert a cantunwind entry.
+ .section .after, "xa"
+ .global __c6xabi_unwind_cpp_pr3
+ .type __c6xabi_unwind_cpp_pr3, %function
+__c6xabi_unwind_cpp_pr3:
+ nop
+ .p2align 6
+
+ .section .far
+ .word 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.d
new file mode 100644
index 0000000..11a24d4
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.d
@@ -0,0 +1,10 @@
+#ld: -T unwind.ld
+#objdump: -s
+
+.*: file format.*
+
+#...
+Contents of section .c6xabi.exidx:
+ 9000 (00f8ff7f 07020083 1cf8ff7f 01000000|7ffff800 83000207 7ffff81c 00000001) .*
+Contents of section .far:
+#...
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.s
new file mode 100644
index 0000000..dbfd3bd
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.s
@@ -0,0 +1,23 @@
+ .cfi_sections .c6xabi.exidx
+ .text
+
+ .global __c6xabi_unwind_cpp_pr3
+ .type __c6xabi_unwind_cpp_pr3, %function
+__c6xabi_unwind_cpp_pr3:
+ .global _start
+ .type _start, %function
+_start:
+ .cfi_startproc
+ .cfi_offset B3, 0
+ .cfi_def_cfa_offset 8
+ nop
+ .p2align 6
+ .cfi_endproc
+ .personalityindex 3
+ .endp
+
+ # last text section has unwind information. Linker should append a
+ # terminating cantunwind entry.
+
+ .section .far
+ .word 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.d
new file mode 100644
index 0000000..9ec69a0
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.d
@@ -0,0 +1,11 @@
+#ld: -T unwind.ld
+#objdump: -s
+
+.*: file format.*
+
+#...
+Contents of section .c6xabi.exidx:
+ 9000 (00f8ff7f 07020083 1cf8ff7f 01000000|7ffff800 83000207 7ffff81c 00000001) .*
+ 9010 (38f8ff7f 07040083 54f8ff7f 01000000|7ffff838 82000407 7ffff854 00000001) .*
+Contents of section .far:
+#...
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.s b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.s
new file mode 100644
index 0000000..480ee49
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.s
@@ -0,0 +1,39 @@
+ .cfi_sections .c6xabi.exidx
+ .text
+ # section without unwind info
+ .global _start
+ .type _start, %function
+_start:
+ b .s2 _before
+ nop 5
+ .p2align 6
+
+ # Section that will be placed first
+ .section .before, "xa"
+ .type _before, %function
+_before:
+ .cfi_startproc
+ .cfi_offset B3, 0
+ .cfi_def_cfa_offset 8
+ nop
+ .p2align 6
+ .cfi_endproc
+ .personalityindex 3
+ .endp
+
+ # section that will be placed last
+ .section .after, "xa"
+ .global __c6xabi_unwind_cpp_pr3
+ .type __c6xabi_unwind_cpp_pr3, %function
+__c6xabi_unwind_cpp_pr3:
+ .cfi_startproc
+ .cfi_offset B10, 0
+ .cfi_def_cfa_offset 8
+ nop
+ .p2align 6
+ .cfi_endproc
+ .personalityindex 3
+ .endp
+
+ .section .far
+ .word 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.d
new file mode 100644
index 0000000..e5c628e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.d
@@ -0,0 +1,11 @@
+#ld: -T unwind.ld
+#objdump: -s
+
+.*: file format.*
+
+#...
+Contents of section .c6xabi.exidx:
+ 9000 (00f8ff7f 07020083 1cf8ff7f 7af8ff7f|7ffff800 83000207 7ffff81c 7ffff87a) .*
+ 9010 (38f8ff7f 07020083 56f8ff7f 01000000|7ffff838 83000207 7ffff856 00000001) .*
+Contents of section .far:
+#...
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.s b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.s
new file mode 100644
index 0000000..83f3d0d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.s
@@ -0,0 +1,68 @@
+ .cfi_sections .c6xabi.exidx
+ .text
+ # out of line table entry
+ .global _start
+ .type _start, %function
+_start:
+ .cfi_startproc
+ .cfi_offset B3, 0
+ .cfi_def_cfa_offset 8
+ nop
+ .p2align 6
+ .cfi_endproc
+ .personalityindex 3
+ .handlerdata
+ .word 0
+ .endp
+
+ # entry that can be merged
+ .cfi_startproc
+ .cfi_offset B3, 0
+ .cfi_def_cfa_offset 8
+ nop
+ .p2align 6
+ .cfi_endproc
+ .personalityindex 3
+ .endp
+
+ # Section that will be placed first
+ .section .before, "xa"
+ .type _before, %function
+_before:
+ .cfi_startproc
+ .cfi_offset B3, 0
+ .cfi_def_cfa_offset 8
+ nop
+ .p2align 6
+ .cfi_endproc
+ .personalityindex 3
+ .endp
+
+ # section that will be placed last
+ .section .after, "xa"
+ .global __c6xabi_unwind_cpp_pr3
+ .type __c6xabi_unwind_cpp_pr3, %function
+__c6xabi_unwind_cpp_pr3:
+ # entry that can be merged
+ .cfi_startproc
+ .cfi_offset B3, 0
+ .cfi_def_cfa_offset 8
+ nop
+ .cfi_endproc
+ .personalityindex 3
+ .endp
+
+ # final function is cantunwind, so output table size is smaller
+ # than sum of input sections
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ nop
+ .p2align 6
+ .cfi_endproc
+ .cantunwind
+ .endp
+
+ .section .far
+ .word 0
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.d
new file mode 100644
index 0000000..4928874
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.d
@@ -0,0 +1,7 @@
+#ld: -T discard-unwind.ld
+#objdump: -s
+
+.*: file format.*
+
+# Check we don't crash when discarding unwind info.
+#...
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.s b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.s
new file mode 100644
index 0000000..b4fc213
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.s
@@ -0,0 +1,16 @@
+ .cfi_sections .c6xabi.exidx
+ .text
+ .global __c6xabi_unwind_cpp_pr3
+ .type __c6xabi_unwind_cpp_pr3, %function
+__c6xabi_unwind_cpp_pr3:
+ .global _start
+ .type _start, %function
+_start:
+ .cfi_startproc
+ .cfi_offset B3, 0
+ .cfi_def_cfa_offset 8
+ nop
+ .p2align 6
+ .cfi_endproc
+ .personalityindex 3
+ .endp
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-6.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-6.d
new file mode 100644
index 0000000..6342265
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-6.d
@@ -0,0 +1,13 @@
+#ld: -T unwind.ld
+#source: unwind-4.s
+#as: -mgenerate-rel
+#objdump: -s
+
+.*: file format.*
+
+#...
+Contents of section .c6xabi.exidx:
+ 9000 (00f8ff7f 07020083 1cf8ff7f 7af8ff7f|7ffff800 83000207 7ffff81c 7ffff87a) .*
+ 9010 (38f8ff7f 07020083 56f8ff7f 01000000|7ffff838 83000207 7ffff856 00000001) .*
+Contents of section .far:
+#...
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind.ld b/binutils-2.24/ld/testsuite/ld-tic6x/unwind.ld
new file mode 100644
index 0000000..a4f8722
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind.ld
@@ -0,0 +1,20 @@
+/* Script for unwinding ld tests */
+SECTIONS
+{
+ /* Read-only sections, merged into text segment: */
+ . = 0x8000;
+ .text :
+ {
+ *(.before)
+ *(.text)
+ *(.after)
+ *(.c6xabi.extab*)
+ } =0
+ . = 0x9000;
+ .c6xabi.exidx : { *(.c6xabi.exidx*) }
+ . = 0xa000;
+ .got : { *(.got) *(.got.plt)}
+ . = 0x12340000;
+ .far : { *(.far) }
+ .c6xabi.attribues 0 : { *(.c6xabi.atttributes) }
+}
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/weak-be.d b/binutils-2.24/ld/testsuite/ld-tic6x/weak-be.d
new file mode 100644
index 0000000..e2f2f90
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/weak-be.d
@@ -0,0 +1,19 @@
+#name: C6X relocs to weak symbols, big endian
+#as: -mbig-endian
+#ld: -melf32_tic6x_be -Tsbr.ld
+#source: weak.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-be
+
+
+Disassembly of section \.text:
+10000000 <[^>]*>:
+10000000:[ \t]+000c0362[ \t]+b \.S2 b3
+10000004:[ \t]+a00c0362[ \t]+\[a2\] b \.S2 b3
+10000008:[ \t]+000c0363[ \t]+b \.S2 b3
+1000000c:[ \t]+00800028[ \t]+\|\| mvk \.S1 0,a1
+10000010:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+10000014:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000018:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+1000001c:[ \t]+00000000[ \t]+nop 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/weak-data.d b/binutils-2.24/ld/testsuite/ld-tic6x/weak-data.d
new file mode 100644
index 0000000..0ce96e6
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/weak-data.d
@@ -0,0 +1,11 @@
+#name: C6X ABS relocs to undefined weak symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld
+#source: weak.s
+#objdump: -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+
+Contents of section \.data:
+[ \t]+0+80 00000000 00000000[ \t]+\.*[ \t]*
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/weak.d b/binutils-2.24/ld/testsuite/ld-tic6x/weak.d
new file mode 100644
index 0000000..89f4c98
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/weak.d
@@ -0,0 +1,19 @@
+#name: C6X relocs to weak symbols, little endian
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld
+#source: weak.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+10000000 <[^>]*>:
+10000000:[ \t]+000c0362[ \t]+b \.S2 b3
+10000004:[ \t]+a00c0362[ \t]+\[a2\] b \.S2 b3
+10000008:[ \t]+000c0363[ \t]+b \.S2 b3
+1000000c:[ \t]+00800028[ \t]+\|\| mvk \.S1 0,a1
+10000010:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+10000014:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000018:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+1000001c:[ \t]+00000000[ \t]+nop 1
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/weak.s b/binutils-2.24/ld/testsuite/ld-tic6x/weak.s
new file mode 100644
index 0000000..8f9047a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-tic6x/weak.s
@@ -0,0 +1,19 @@
+ .weak g
+ .weak g1
+.text
+ b .s2 g
+[a2] b .s2 g
+ b .s2 g
+|| mvk .s1 0, a1
+ ldw .d2t2 *+B14(g1), B1
+ mvkl .s1 g, a1
+ mvkh .s1 g, a1
+
+ .section .data,"aw",@progbits
+ .align 2
+ .type a, @object
+ .size a, 4
+a:
+ .long g1
+ .short g1
+ .byte g1