# Expect script for ld-i386 tests
-# Copyright (C) 2002, 2005, 2006, 2007 Free Software Foundation
+# Copyright (C) 2002, 2005, 2006, 2007, 2008, 2009, 2010
+# Free Software Foundation
#
# This file is part of the GNU Binutils.
#
run_dump_test "vxworks1-static"
}
+if [istarget "*-*-go32*"] {
+ run_ld_link_tests {{"go32 stub" "" "" {zero.s} {} "go32stub"}}
+
+ set src "tmpdir/go32stub"
+ set dest "tmpdir/go32stub-copy"
+
+ set test "go32 stub patch the source"
+ set fi [open $src r+]
+ fconfigure $fi -translation binary
+ if {[read $fi 2] != "MZ"} {
+ fail $test
+ } else {
+ pass $test
+ seek $fi 0x40
+ puts -nonewline $fi "objcopy-test-go32stub"
+ }
+ close $fi
+
+ set test "go32 stub objcopy"
+ set status [remote_exec build $OBJCOPY "$OBJCOPYFLAGS $src $dest"]
+ set exec_output [lindex $status 1]
+ set exec_output [prune_warnings $exec_output]
+ if [string match "" $exec_output] then {
+ pass $test
+ } else {
+ send_log "$exec_output\n"
+ verbose "$exec_output" 1
+ fail $test
+ }
+
+ # cmp would compare the whole files and some data after the initial exe
+ # stub could differ.
+ set test "go32 stub comparison after objcopy"
+ set fi [open $src]
+ fconfigure $fi -translation binary
+ set src_stub [read $fi 2048]
+ close $fi
+ set fi [open $dest]
+ fconfigure $fi -translation binary
+ set dest_stub [read $fi 2048]
+ close $fi
+ if {$src_stub == $dest_stub} {
+ pass $test
+ } else {
+ fail $test
+ }
+}
+
if { !([istarget "i?86-*-elf*"]
- || ([istarget "i?86-*-linux*"]
+ || (([istarget "i?86-*-linux*"]
+ || [istarget "i?86-*-gnu*"])
&& ![istarget "*-*-*aout*"]
&& ![istarget "*-*-*oldld*"])
|| [istarget "x86_64-*-linux*"]
# readelf: Apply readelf options on result. Compare with regex (last arg).
set i386tests {
- {"TLS -fpic -shared transitions" "-shared -melf_i386"
+ {"TLS -fpic -shared transitions"
+ "-shared -melf_i386 --no-ld-generated-unwind-info"
"--32" {tlspic1.s tlspic2.s}
{{readelf -Ssrl tlspic.rd} {objdump -drj.text tlspic.dd}
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
"libtlspic.so"}
- {"TLS descriptor -fpic -shared transitions" "-shared -melf_i386"
+ {"TLS descriptor -fpic -shared transitions"
+ "-shared -melf_i386 --no-ld-generated-unwind-info"
"--32" {tlsdesc.s tlspic2.s}
{{readelf -Ssrl tlsdesc.rd} {objdump -drj.text tlsdesc.dd}
{objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}}
{"Helper shared library" "-shared -melf_i386"
"--32" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec transitions"
- "-melf_i386 tmpdir/libtlslib.so" "--32" {tlsbinpic.s tlsbin.s}
+ "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info"
+ "--32" {tlsbinpic.s tlsbin.s}
{{readelf -Ssrl tlsbin.rd} {objdump -drj.text tlsbin.dd}
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
"tlsbin"}
{"TLS descriptor -fpic and -fno-pic exec transitions"
- "-melf_i386 tmpdir/libtlslib.so" "--32" {tlsbindesc.s tlsbin.s}
+ "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info"
+ "--32" {tlsbindesc.s tlsbin.s}
{{readelf -Ssrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd}
{objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}}
"tlsbindesc"}
- {"TLS -fno-pic -shared" "-shared -melf_i386"
+ {"TLS -fno-pic -shared" "-shared -melf_i386 --no-ld-generated-unwind-info"
"--32" {tlsnopic1.s tlsnopic2.s}
{{readelf -Ssrl tlsnopic.rd} {objdump -drj.text tlsnopic.dd}
{objdump -sj.got tlsnopic.sd}} "libtlsnopic.so"}
{"TLS with global dynamic and descriptors"
- "-shared -melf_i386" "--32" {tlsgdesc.s}
+ "-shared -melf_i386 --no-ld-generated-unwind-info"
+ "--32" {tlsgdesc.s}
{{readelf -Ssrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}}
"libtlsgdesc.so"}
{"TLS in debug sections" "-melf_i386"
run_dump_test "pcrel16abs"
run_dump_test "alloc"
run_dump_test "warn1"
+run_dump_test "tlsgd2"
run_dump_test "tlsie2"
run_dump_test "tlsie3"
run_dump_test "tlsie4"
run_dump_test "protected1"
run_dump_test "protected2"
run_dump_test "protected3"
+run_dump_test "protected4"
+run_dump_test "protected5"
+run_dump_test "tlspie1"
+run_dump_test "tlspie2"
+run_dump_test "nogot1"
+run_dump_test "nogot2"
+run_dump_test "discarded1"
+run_dump_test "pr12718"
+run_dump_test "pr12921"
+
+if { !([istarget "i?86-*-linux*"]
+ || [istarget "i?86-*-gnu*"]
+ || [istarget "x86_64-*-linux*"]) } {
+ return
+}
+
+run_dump_test "compressed1"
+run_dump_test "pr12627"
+run_dump_test "pr13302"