# Expect script for ld-powerpc tests
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
{{objdump -dr tls32.d} {objdump -sj.got tls32.g}
{objdump -sj.tdata tls32.t}}
"tls32"}
+ {"TLS32 static exec (--no-tls-optimize)" "-melf32ppc --no-tls-optimize" ""
+ "-a32 --defsym TLSMARK=1" {tls32.s tlslib32.s}
+ {{objdump -dr tls32no.d} {objdump -sj.got tls32no.g}
+ {objdump -sj.tdata tls32.t}}
+ "tls32no"}
{"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" "" {}
{} "libtlslib32.so"}
{"TLS32 dynamic exec" "-melf32ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls32.o tmpdir/libtlslib32.so" "" "" {}
{{readelf -WSsrl tlsexe32.r} {objdump -dr tlsexe32.d}
{objdump -sj.got tlsexe32.g} {objdump -sj.tdata tlsexe32.t}}
"tlsexe32"}
+ {"TLS32 dynamic exec (--no-tls-optimize)" "-melf32ppc --no-tls-optimize --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls32.o tmpdir/libtlslib32.so" "" "" {}
+ {{readelf -WSsrl tlsexe32no.r} {objdump -dr tlsexe32no.d}
+ {objdump -sj.got tlsexe32no.g} {objdump -sj.tdata tlsexe32.t}}
+ "tlsexe32no"}
{"TLS32 shared" "-shared -melf32ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls32.o" "" "" {}
{{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d}
{objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}}
{"TLS static exec" "-melf64ppc --no-plt-align" "" "-a64" {tls.s tlslib.s}
{{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}}
"tls"}
+ {"TLS static exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize --no-plt-align" ""
+ "-a64 --defsym TLSMARK=1" {tls.s tlslib.s}
+ {{objdump -dr tlsno.d} {objdump -sj.got tlsno.g} {objdump -sj.tdata tls.t}}
+ "tlsno"}
{"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" "" {}
{} "libtlslib.so"}
{"TLS helper old shared lib" "-shared -melf64ppc" "" "-a64" {oldtlslib.s}
{{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
{objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
"tlsexeold"}
+ {"TLS dynamic exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/libtlslib.so" "" "" {}
+ {{readelf -WSsrl tlsexeno.r} {objdump -dr tlsexeno.d}
+ {objdump -sj.got tlsexeno.g} {objdump -sj.tdata tlsexe.t}}
+ "tlsexeno"}
{"TLS shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o" "" "" {}
{{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d}
{objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}}
"tls.so"}
- {"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o " "" "-a64" {tlstoc.s}
+ {"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o" "" "-a64" {tlstoc.s}
{{objdump -dr tlstoc.d} {objdump -sj.got tlstoc.g}
{objdump -sj.tdata tlstoc.t}}
"tlstoc"}
+ {"TLSTOC static exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize tmpdir/tlslib.o tmpdir/tlstoc.o" "" "" {}
+ {{objdump -dr tlstocno.d} {objdump -sj.got tlstocno.g}
+ {objdump -sj.tdata tlstoc.t}}
+ "tlstocno"}
{"TLSTOC dynamic exec" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
"" {}
{{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
{{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
{objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
"tlsexetocold"}
+ {"TLSTOC dynamic exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
+ "" {}
+ {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetocno.d}
+ {objdump -sj.got tlsexetocno.g} {objdump -sj.tdata tlsexetoc.t}}
+ "tlsexetocno"}
{"TLSTOC shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o" "" "" {}
{{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d}
{objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}}
"tlstoc.so"}
+ {"TLS dynamic exec (--tls-get-addr-regsave)" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv --tls-get-addr-regsave tmpdir/tls.o tmpdir/libtlslib.so" "" "" {}
+ {{readelf -WSsrl tlsexers.r} {objdump -dr tlsexers.d}
+ {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
+ "tlsexers"}
+ {"TLS dynamic exec (--no-tls-optimize --tls-get-addr-regsave)" "-melf64ppc --no-tls-optimize --tls-get-addr-regsave --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/libtlslib.so" "" "" {}
+ {{readelf -WSsrl tlsexenors.r} {objdump -dr tlsexenors.d}
+ {objdump -sj.got tlsexeno.g} {objdump -sj.tdata tlsexe.t}}
+ "tlsexenors"}
+ {"TLSTOC dynamic exec (--tls-get-addr-regsave)" "-melf64ppc --tls-get-addr-regsave --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
+ "" {}
+ {{readelf -WSsrl tlsexetocrs.r} {objdump -dr tlsexetocrs.d}
+ {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
+ "tlsexetocrs"}
+ {"TLSTOC dynamic exec (--no-tls-optimize --tls-get-addr-regsave)" "-melf64ppc --no-tls-optimize --tls-get-addr-regsave --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
+ "" {}
+ {{readelf -WSsrl tlsexetocrs.r} {objdump -dr tlsexetocnors.d}
+ {objdump -sj.got tlsexetocno.g} {objdump -sj.tdata tlsexetoc.t}}
+ "tlsexetocnors"}
{"TLS markers" "-melf64ppc" "" "-a64" {tlsmark.s tlslib.s}
{{objdump -dr tlsmark.d}}
"tlsmark"}
"tlsopt4"}
{"TLS DLL" "-shared -melf64ppc --version-script tlsdll.ver" "" "-a64" {tlsdll.s}
{} "tlsdll.so"}
- {"TLS opt 5" "-melf64ppc --no-plt-align -shared --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64" {tlsopt5.s}
+ {"TLS opt 5" "-melf64ppc -shared --hash-style=both --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64" {tlsopt5.s}
{{objdump -dr tlsopt5.d} {readelf -wf tlsopt5.wf}}
"tlsopt5"}
+ {"TLS opt 6" "-melf64ppc -shared --hash-style=both --gc-sections --no-plt-localentry --tls-get-addr-regsave tmpdir/tlsdll.so" "" "-a64" {tlsopt5.s}
+ {{objdump -dr tlsopt6.d} {readelf -wf tlsopt6.wf}}
+ "tlsopt6"}
+ {"TLSdesc" "-melf64ppc -shared --hash-style=both --no-plt-localentry tmpdir/libtlslib.so" "" "-a64" {tlsdesc.s}
+ {{objdump -dr tlsdesc.d} {readelf -wf tlsdesc.wf}}
+ "tlsdesc"}
+ {"TLSdesc2" "-melf64ppc -shared --hash-style=both --no-plt-localentry tmpdir/tlsdll.so" "" "-a64" {tlsdesc.s}
+ {{objdump -dr tlsdesc2.d} {readelf -wf tlsdesc2.wf}}
+ "tlsdesc2"}
+ {"TLSdesc3" "-melf64ppc --no-tls-optimize tmpdir/tlsdll.o" "" "-a64" {tlsdesc.s}
+ {{objdump -dr tlsdesc3.d} {readelf -wf tlsdesc3.wf}}
+ "tlsdesc3"}
+ {"TLSdesc4" "-melf64ppc --no-tls-optimize tmpdir/tlsdll.o" "" "-a64" {tlsdesc4.s}
+ {{objdump -dr tlsdesc4.d} {readelf -wf tlsdesc4.wf}}
+ "tlsdesc4"}
{"sym@tocbase" "-shared -melf64ppc" "" "-a64" {symtocbase-1.s symtocbase-2.s}
{{objdump -dj.data symtocbase.d}} "symtocbase.so"}
{"TOC opt" "-melf64ppc" "" "-a64" {tocopt.s}
{{objdump -dr tocsave2a.d}} "tocsave2a"}
{"ambig shared v1" "-shared -melf64ppc" "" "-a64" {funv1.s} {} "funv1.so"}
{"ambig shared v2" "-shared -melf64ppc" "" "-a64" {funv2.s} {} "funv2.so"}
+ {"notoc ext" "" "" "-a64" {ext.s} {} ""}
+ {"notoc" "-melf64ppc --no-plt-localentry -T ext.lnk" "" "-a64" {notoc.s}
+ {{objdump -d notoc.d} {readelf {-wf -W} notoc.wf}} "notoc"}
+ {"notoc2" "-melf64ppc -shared" "" "-a64 -mfuture" {notoc2.s}
+ {{objdump {-d -Mfuture} notoc2.d}} "notoc2"}
+ {"pcrelopt" "-melf64ppc --hash-style=gnu" "tmpdir/symtocbase.so"
+ "-a64 -mfuture" {pcrelopt.s}
+ {{objdump {-d -Mfuture} pcrelopt.d}
+ {readelf {-S --wide} pcrelopt.sec}} "pcrelopt" }
}
set ppceabitests {
run_dump_test "defsym"
run_dump_test "tocvar"
run_dump_test "tocnovar"
- run_dump_test "tlsld"
+ run_dump_test "tlsldopt"
run_dump_test "relocsort"
run_dump_test "addpcis"
run_dump_test "dotsym1"
run_dump_test "dotsym2"
run_dump_test "dotsym3"
run_dump_test "dotsym4"
+ run_dump_test "pr23937"
+ run_dump_test "callstub-1"
+ run_dump_test "callstub-2"
+ run_dump_test "tlsgd"
+ run_dump_test "tlsld"
+ run_dump_test "tlsie"
+ run_dump_test "non-contiguous-powerpc64"
}
-run_dump_test "tlsld32"
+run_dump_test "localgot"
+run_dump_test "tlsldopt32"
run_ld_link_tests $ppceabitests
run_dump_test "ppc476-shared"
run_dump_test "ppc476-shared2"
+
+run_dump_test "non-contiguous-powerpc"