* doc/Makefile.am: (CPU_DOCS): Add c-xstormy16.texi.
[deliverable/binutils-gdb.git] / ld / testsuite / ld-i386 / i386.exp
index 989d392f185d7b63e85d35e9259d0894fdc0f6e4..3bce2d3f6ff160efaaacafb4690e35a52f1b32e2 100644 (file)
@@ -1,9 +1,12 @@
 # Expect script for ld-i386 tests
-#   Copyright (C) 2002, 2005, 2006 Free Software Foundation
+#   Copyright (C) 2002, 2005, 2006, 2007, 2008, 2009, 2010
+#   Free Software Foundation
 #
-# This file is free software; you can redistribute it and/or modify
+# 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 2 of the License, or
+# 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,
@@ -13,7 +16,8 @@
 #
 # 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.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
 #
 
 # Test i386 linking; all types of relocs.  This tests the assembler and
@@ -46,8 +50,57 @@ if {[istarget "i?86-*-vxworks"]} {
     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*"]
@@ -106,6 +159,15 @@ set i386tests {
      {emit-relocs.s} {{readelf --relocs emit-relocs.d}} "emit-relocs.so"}
     {"-z combreloc relocation sections" "-shared -melf_i386 -z combreloc"
      "--32" {combreloc.s} {{readelf -r combreloc.d}} "combreloc.so"}
+    {"TLS GD->LE transition" "-melf_i386"
+     "--32" {tlsgd1.s}
+     {{objdump -dwr tlsgd1.dd}} "tlsgd1"}
+    {"TLS LD->LE transition" "-melf_i386"
+     "--32" {tlsld1.s}
+     {{objdump -dwr tlsld1.dd}} "tlsld1"}
+    {"TLS IE->LE transition" "-melf_i386"
+     "--32" {tlsie1.s}
+     {{objdump -dwr tlsie1.dd}} "tlsie1"}
 }
 
 run_ld_link_tests $i386tests
@@ -116,3 +178,29 @@ run_dump_test "pcrel16"
 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 "tlsie5"
+run_dump_test "hidden1"
+run_dump_test "hidden2"
+run_dump_test "hidden3"
+run_dump_test "protected1"
+run_dump_test "protected2"
+run_dump_test "protected3"
+run_dump_test "tlspie1"
+run_dump_test "tlspie2"
+run_dump_test "nogot1"
+run_dump_test "nogot2"
+run_dump_test "discarded1"
+run_dump_test "pr12718"
+
+if { !([istarget "i?86-*-linux*"]
+       || [istarget "i?86-*-gnu*"]
+       || [istarget "x86_64-*-linux*"]) } {
+    return
+}
+
+run_dump_test "compressed1"
+run_dump_test "pr12627"
This page took 0.025162 seconds and 4 git commands to generate.