# Expect script for ld-x86_64 tests
#   Copyright (C) 2002, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
#   Free Software Foundation
#
# 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.
#

# Test x86_64 linking; all types of relocs.  This tests the assembler and
# tools like objdump as well as the linker.

if { !([istarget "x86_64-*-elf*"]
       || [istarget "x86_64-*-nacl*"]
       || [istarget "x86_64-*-linux*"]) } {
    return
}

if [istarget "*-*-nacl*"] {
    set emul "elf_x86_64_nacl"
} else {
    set emul "elf_x86_64"
}

# List contains test-items with 3 items followed by 2 lists:
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file

# Actions:
# objdump: Apply objdump options on result.  Compare with regex (last arg).
# nm: Apply nm options on result.  Compare with regex (last arg).
# readelf: Apply readelf options on result.  Compare with regex (last arg).

set x86_64tests {
    {"Helper shared library (basic PLT test)"
      "-shared -melf_x86_64" "" "--64" {pltlib.s} {} "libpltlib.so"}
    {"basic PLT generation"
     "-melf_x86_64 tmpdir/libpltlib.so" "" "--64" {plt.s}
     {{objdump -drj.plt plt.pd}} "plt"}
    {"TLS -fpic -shared transitions"
     "-shared -melf_x86_64 --no-ld-generated-unwind-info" ""
     "--64" {tlspic1.s tlspic2.s}
     {{readelf -WSsrl 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_x86_64 --no-ld-generated-unwind-info" ""
     "--64" {tlsdesc.s tlspic2.s}
     {{readelf -WSsrld tlsdesc.rd} {objdump -drj.text tlsdesc.dd}
      {objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}
      {objdump -drj.plt tlsdesc.pd}} "libtlsdesc.so"}
    {"Helper shared library" "-shared -melf_x86_64" ""
     "--64" {tlslib.s} {} "libtlslib.so"}
    {"TLS -fpic and -fno-pic exec transitions"
     "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" ""
     "--64" {tlsbinpic.s tlsbin.s}
     {{readelf -WSsrl 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_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" ""
     "--64" {tlsbindesc.s tlsbin.s}
     {{readelf -WSsrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd}
      {objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}}
      "tlsbindesc"}
    {"TLS with global dynamic and descriptors"
     "-shared -melf_x86_64 --no-ld-generated-unwind-info" ""
     "--64" {tlsgdesc.s}
     {{readelf -WSsrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}}
      "libtlsgdesc.so"}
    {"TLS in debug sections" "-melf_x86_64" ""
     "--64" {tlsg.s}
     {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"}
    {"TLS GD->LE transition" "-melf_x86_64" ""
     "--64" {tlsgd1.s}
     {{objdump -dwr tlsgd1.dd}} "tlsgd1"}
    {"TLS LD->LE transition" "-melf_x86_64" ""
     "--64" {tlsld1.s}
     {{objdump -dwr tlsld1.dd}} "tlsld1"}
    {"TLS IE->LE transition" "-melf_x86_64" ""
     "--64" {tlsie1.s}
     {{objdump -dwr tlsie1.dd}} "tlsie1"}
    {"Helper 64bit object 1" "-r -melf_x86_64" ""
     "--64" {mixed1a.s} {} "libmixe1a.o"}
    {"Helper 32bit object 1" "-r -melf_i386" ""
     "--32" {mixed1b.s} {} "libmixe1b.o"}
    {"Helper 64bit object 2" "-r -melf_x86_64" ""
     "--64" {mixed2a.s} {} "libmixe2a.o"}
    {"Helper 32bit object 2" "-r -melf_i386" ""
     "--32" {mixed2b.s} {} "libmixe2b.o"}
    {"Split by file with 'l' flag on section."
     "-split-by-file -r -melf_x86_64" ""
     "--64" {split-by-file1.s split-by-file2.s}
     {{readelf -SW split-by-file.rd}} "split-by-file.o"}
    {"TLS X32 IE->LE transition" "-melf32_x86_64" ""
     "--x32" {tlsie4.s}
     {{objdump -dwr tlsie4.dd}} "tlsie4"}
    {"TLS X32 GD->LE transition" "-melf32_x86_64" ""
     "--x32" {tlsgd4.s}
     {{objdump -dwr tlsgd4.dd}} "tlsgd4"}
    {"Helper TLS GD->IE transition DSO" "-shared -melf_x86_64" ""
     "--64" {tlsgd5b.s} {} "libtlsgd5.so"}
    {"TLS GD->IE transition" "-melf_x86_64 tmpdir/libtlsgd5.so" ""
     "--64" {tlsgd5a.s}
     {{objdump -dwr tlsgd5.dd}} "tlsgd5"}
    {"Helper TLS X32 GD->IE transition DSO" "-shared -melf32_x86_64" ""
     "--x32" {tlsgd6b.s} {} "libtlsgd6.so"}
    {"TLS X32 GD->IE transition" "-melf32_x86_64 tmpdir/libtlsgd6.so" ""
     "--x32" {tlsgd6a.s}
     {{objdump -dwr tlsgd6.dd}} "tlsgd6"}
    {"TLS X32 LD->LE transition" "-melf32_x86_64" ""
     "--x32" {tlsld2.s}
     {{objdump -dwr tlsld2.dd}} "tlsld2"}
    {"TLS -mcmodel=large GD->LE transition" "-melf_x86_64" ""
     "--64" {tlsgd7.s}
     {{objdump -dwr tlsgd7.dd}} "tlsgd7"}
    {"TLS -mcmodel=large LD->LE transition" "-melf_x86_64" ""
     "--64" {tlsld3.s}
     {{objdump -dwr tlsld3.dd}} "tlsld3"}
    {"TLS -mcmodel=large GD->IE transition" "-melf_x86_64 tmpdir/libtlsgd5.so" ""
     "--64" {tlsgd8.s}
     {{objdump -dwrj.text tlsgd8.dd}} "tlsgd8"}

     {"build 32-bit object with 33 locals" "-melf_x86_64 -e 0" "" "--32" {32bit.s} {{ ld incompatible.l }} "dummy" }
     {"build 64-bit object" "-melf_x86_64 -e 0 --defsym foo=1" "" "--64" {64bit.s} {} "dummy" }
     {"link mixed objects"  "-melf_x86_64 -e 0 tmpdir/32bit.o tmpdir/64bit.o" "" "" {} { { ld incompatible.l } } "mixed"}
}

# So as to avoid rewriting every last test case here in a nacl variant,
# we use black magic to massage the generic cases into nacl-variant cases.
if [istarget "*-*-nacl*"] {
    set emul elf_x86_64_nacl

    set lhs {elf(32)?_(i386|x86_64)[[:>:]]}
    set rhs {&_nacl}

    # Change all the -melf_x86_64 to -melf_x86_64_nacl so linking can succeed.
    regsub -all -- $lhs $x86_64tests $rhs x86_64tests

    # Same, applied to all the run_dump_test cases.
    set options_regsub(ld) [list $lhs $rhs]

    # The section/segment layout differs too much for the vanilla
    # readelf output files to match.  So massage the cases so that
    # they refer to a foo-nacl.rd file instead of a foo.rd file.
    regsub -all -- {([a-z0-9]+)\.rd} $x86_64tests {\1-nacl.rd} x86_64tests

    # Likewise for PLTs.
    regsub -all -- {([a-z0-9]+)\.pd} $x86_64tests {\1-nacl.pd} x86_64tests
} else {
    set emul elf_x86_64
}

run_ld_link_tests $x86_64tests

global link_output
global ld

set test_name "Mixed x86_64 and i386 input test 1"
set test mixed1
if { ![ld_simple_link $ld tmpdir/$test "-m$emul tmpdir/${test}a.o tmpdir/${test}b.o"] } {
    if [string match "*i386* architecture of input file `tmpdir/${test}b.o' is incompatible with i386:x86-64* output*" $link_output] {
	pass "$test_name"
    } {
	fail "$test_name"
    }
}

set test_name "Mixed x86_64 and i386 input test 2"
set test mixed2
if { ![ld_simple_link $ld tmpdir/$test "-m$emul tmpdir/${test}a.o tmpdir/${test}b.o"] } {
    if [string match "*i386* architecture of input file `tmpdir/${test}b.o' is incompatible with i386:x86-64* output*" $link_output] {
	pass "$test_name"
    } {
	fail "$test_name"
    }
}

run_dump_test "abs"
run_dump_test "abs-l1om"
run_dump_test "pcrel8"
run_dump_test "pcrel16"
run_dump_test "tlsgd2"
run_dump_test "tlsgd3"
run_dump_test "tlsie2"
run_dump_test "tlsie3"
run_dump_test "hidden1"
run_dump_test "hidden2"
run_dump_test "hidden3"
run_dump_test "protected1"
run_dump_test "protected2"
run_dump_test "protected2-l1om"
run_dump_test "protected3"
run_dump_test "protected3-l1om"
run_dump_test "protected4"
run_dump_test "protected5"
run_dump_test "tlsle1"
run_dump_test "tlspie1"
run_dump_test "unique1"
run_dump_test "nogot1"
run_dump_test "nogot2"
run_dump_test "discarded1"
run_dump_test "pr12718"
run_dump_test "pr12921"
run_dump_test "pr13947"
run_dump_test "pr12570a"
run_dump_test "pr12570b"
run_dump_test "pr14215"
run_dump_test "pr14207"

if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
    return
}

if ![ld_assemble $as "--x32 $srcdir/$subdir/start.s" tmpdir/startx32.o] {
    unresolved "Build ILP32 start.o"
    return
}

if ![ld_assemble $as "--32 $srcdir/$subdir/start.s" tmpdir/start32.o] {
    unresolved "Build ia32 start.o"
    return
}

if ![ld_assemble $as "--64 $srcdir/$subdir/start.s" tmpdir/start64.o] {
    unresolved "Build LP64 start.o"
    return
}

if ![ld_assemble $as "--x32 $srcdir/$subdir/foo.s" tmpdir/foox32.o] {
    unresolved "Build ILP32 foo.o"
    return
}

if ![ld_assemble $as "--32 $srcdir/$subdir/foo.s" tmpdir/foo32.o] {
    unresolved "Build ia32 foo.o"
    return
}

if ![ld_assemble $as "--64 $srcdir/$subdir/foo.s" tmpdir/foo64.o] {
    unresolved "Build LP64 foo.o"
    return
}

run_dump_test "compressed1"
run_dump_test "ilp32-1"
run_dump_test "ilp32-2"
run_dump_test "ilp32-3"
run_dump_test "ilp32-4"
run_dump_test "ilp32-4-nacl"
run_dump_test "ilp32-5"
run_dump_test "ilp32-6"
run_dump_test "ilp32-7"
run_dump_test "ilp32-8"
run_dump_test "ilp32-9"
run_dump_test "ilp32-10"
run_dump_test "ilp32-11"
run_dump_test "ia32-1"
run_dump_test "ia32-2"
run_dump_test "ia32-3"
run_dump_test "lp64-1"
run_dump_test "lp64-2"
run_dump_test "lp64-3"
run_dump_test "pr13082-1a"
run_dump_test "pr13082-1b"
run_dump_test "pr13082-2a"
run_dump_test "pr13082-2b"
run_dump_test "pr13082-3a"
run_dump_test "pr13082-3b"
run_dump_test "pr13082-4a"
run_dump_test "pr13082-4b"
run_dump_test "pr13082-5a"
run_dump_test "pr13082-5b"
run_dump_test "pr13082-6a"
run_dump_test "pr13082-6b"
run_dump_test "lea1a"
run_dump_test "lea1b"
run_dump_test "lea1c"
run_dump_test "lea1d"
run_dump_test "lea1e"
run_dump_test "lea1f"
run_dump_test "lea1g"
run_dump_test "lea1h"
run_dump_test "lea1i"
run_dump_test "lea1j"
run_dump_test "lea1k"
run_dump_test "lea1l"
run_dump_test "mov1a"
run_dump_test "mov1b"
run_dump_test "mov1c"
run_dump_test "mov1d"

# Must be native with the C compiler
if { [isnative] && [which $CC] != 0 } {
    run_cc_link_tests {
	{"Helper X32 DSO from x86-64 object" "" "-m64 -fPIC -g"
	 {simple.c} {} "libsimple.a"}
    }

    set convertx32 "$objcopy -O elf32-x86-64 tmpdir/simple.o tmpdir/simple-x32.o"
    send_log "$convertx32\n"
    set got [remote_exec host "$convertx32"]
    if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
	send_log "$got\n"
	fail "Convert x86-64 object to x32"
	return
    }

    run_ld_link_tests {
	{"X32 DSO from x86-64 object"
	 "-shared -melf32_x86_64 tmpdir/simple-x32.o" "" "--x32"
	{dummy.s} {{readelf {-s --wide} x86-64-x32.rd}} "x86-64-x32"}
    }
}
