# Expect script for ld-x86_64 tests
#   Copyright (C) 2002-2016 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.
#

# 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\ -Mintel64 tlspic.dd}
      {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
      "libtlspic.so"}
    {"TLS -fpic -shared transitions with r15 as GOT base"
     "-shared -melf_x86_64 --no-ld-generated-unwind-info" ""
     "--64 -mrelax-relocations=yes"
     {tlspic3.s tlspic2.s}
     {{readelf -WSsrl tlspic2.rd} {objdump -drj.text\ -Mintel64 tlspic2.dd}
      {objdump -sj.got tlspic2.sd} {objdump -sj.tdata tlspic2.td}}
      "libtlspic2.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 -fpic and -fno-pic exec transitions without PLT"
     "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" ""
     "-mrelax-relocations=yes --64" {tlsbinpic2.s tlsbin.s}
     {{readelf -WSsrl tlsbin2.rd} {objdump -drj.text tlsbin2.dd}
      {objdump -sj.got tlsbin2.sd} {objdump -sj.tdata tlsbin2.td}}
      "tlsbin2"}
    {"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\ -Mintel64 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}} "tlsgd5a"}
    {"TLS GD->IE transition without PLT"
     "-melf_x86_64 tmpdir/libtlsgd5.so" ""
     "-mrelax-relocations=yes --64" {tlsgd5c.s}
     {{objdump -dwr tlsgd5.dd}} "tlsgd5b"}
    {"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}} "tlsgd6a"}
    {"TLS X32 GD->IE transition without PLT"
     "-melf32_x86_64 tmpdir/libtlsgd6.so" ""
     "-mrelax-relocations=yes --x32" {tlsgd6c.s}
     {{objdump -dwr tlsgd6.dd}} "tlsgd6b"}
    {"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 LD->LE transition with r15 as GOT base"
     "-melf_x86_64" ""
     "--64" {tlsld4.s}
     {{objdump -dwr tlsld4.dd}} "tlsld4"}
    {"TLS LD->LE transition without PLT"
     "-melf_x86_64" ""
     "--64 -mrelax-relocations=yes"
     {tlsld5.s}
     {{objdump -dwr tlsld5.dd}} "tlsld5"}
    {"TLS X32 LD->LE transition without PLT" "-melf32_x86_64" ""
     "--x32 -mrelax-relocations=yes"
     {tlsld6.s}
     {{objdump -dwr tlsld6.dd}} "tlsld6"}
    {"TLS -mcmodel=large GD->IE transition" "-melf_x86_64 tmpdir/libtlsgd5.so" ""
     "--64" {tlsgd8.s}
     {{objdump -dwrj.text tlsgd8.dd}} "tlsgd8"}
    {"TLS -mcmodel=large GD->LE transition with r15 as GOT base"
     "-melf_x86_64" ""
     "--64" {tlsgd9.s}
     {{objdump -dwr tlsgd9.dd}} "tlsgd9"}
    {"TLS -mcmodel=large GD->IE transition with r15 as GOT base"
     "-melf_x86_64 tmpdir/libtlsgd5.so" ""
     "--64" {tlsgd10.s}
     {{objdump -dwrj.text tlsgd10.dd}} "tlsgd10"}
    {"TLS GD->LE transition without PLT"
     "-melf_x86_64" ""
     "--64" {tlsgd11.s}
     {{objdump -dwr tlsgd11.dd}} "tlsgd11"}
    {"TLS X32 GD->LE transition without PLT"
     "-melf32_x86_64" ""
     "--x32" {tlsgd14.s}
     {{objdump -dwr tlsgd14.dd}} "tlsgd14"}
     {"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"}
    {"PR ld/17313 (1)" "-melf_x86_64" ""
     "--64" {dummy.s} {} ""}
    {"PR ld/17313 (2)" "-melf_x86_64 -shared --just-symbols=tmpdir/dummy.o" ""
     "--64" {lea1.s} {} "libpr17313.so"}
    {"PR ld/17306 (1)" "-melf_x86_64" ""
     "--64" {pr17306b.s} {} ""}
    {"PR ld/17306 (2)" "-melf_x86_64 -shared -Bsymbolic --just-symbols=tmpdir/pr17306b.o" ""
     "--64" {pr17306a.s} {} "libpr17306.so"}
    {"PR ld/17709 (1)" "-melf_x86_64 -shared" ""
     "--64" {pr17709a.s} {} "libpr17709.so"}
    {"PR ld/17709 (2)" "-melf_x86_64 tmpdir/libpr17709.so" ""
     "--64" {pr17709b.s} {{readelf -rW pr17709.rd}} "pr17709"}
    {"Build pr19827a.o" "" ""
     "--64" { pr19827a.S }}
    {"Build pr19827b.so" "-melf_x86_64 -shared" ""
     "--64" { pr19827b.S } {} "pr19827b.so"}
    {"Build pr19827" "-melf_x86_64 -pie tmpdir/pr19827a.o tmpdir/pr19827b.so" ""
     "--64" { dummy.s } {{readelf {-rW} pr19827.rd}} "pr19827"}
    {"Build pr19827.so" "-melf_x86_64 -shared -Bsymbolic" ""
     "--64" { pr19827a.S }  {{readelf {-rW} pr19827.rd}} "pr19827.so"}
    {"Build pr19969.so" "-melf_x86_64 -shared" ""
     "--64" { pr19969a.S } {} "pr19969.so"}
}

# 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 "tlsgd12"
run_dump_test "tlsgd13"
run_dump_test "tlsie2"
run_dump_test "tlsie3"
run_dump_test "hidden1"
run_dump_test "hidden2"
run_dump_test "hidden3"
run_dump_test "hidden4"
run_dump_test "hidden5"
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 "protected6a"
run_dump_test "protected6b"
run_dump_test "protected7a"
run_dump_test "protected7b"
run_dump_test "tlsle1"
run_dump_test "tlspie1"
run_dump_test "tlspie2a"
run_dump_test "tlspie2b"
run_dump_test "tlspie2c"
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"
run_dump_test "gotplt1"
run_dump_test "pie1"
run_dump_test "pie2"
run_dump_test "pic1"
run_dump_test "largecomm-1a"
run_dump_test "largecomm-1b"
run_dump_test "largecomm-1c"
run_dump_test "largecomm-1d"
run_dump_test "largecomm-1e"
run_dump_test "largecomm-1f"
run_dump_test "pr19539a"
run_dump_test "pr19539b"
run_dump_test "pr19807-1a"
run_dump_test "pr19807-1b"
run_dump_test "pr19807-2a"
run_dump_test "pr19807-2b"
run_dump_test "pr19807-2c"
run_dump_test "pr19807-2d"
run_dump_test "pr19807-2e"
run_dump_test "pr19969"
run_dump_test "pr20093-1"
run_dump_test "pr20093-2"

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-3c"
run_dump_test "pr13082-3d"
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"
run_dump_test "mov2a"
run_dump_test "mov2b"
run_dump_test "mov2c"
run_dump_test "mov2d"
run_dump_test "load1a"
run_dump_test "load1b"
run_dump_test "load1c"
run_dump_test "load1d"
run_dump_test "load1a-nacl"
run_dump_test "load1b-nacl"
run_dump_test "load1c-nacl"
run_dump_test "load1d-nacl"
run_dump_test "load2"
run_dump_test "call1a"
run_dump_test "call1b"
run_dump_test "call1c"
run_dump_test "call1d"
run_dump_test "call1e"
run_dump_test "call1f"
run_dump_test "call1g"
run_dump_test "call1h"
run_dump_test "call1i"
run_dump_test "pr17935-1"
run_dump_test "pr17935-2"
run_dump_test "pr18160"
run_dump_test "pr18176"
run_dump_test "pr18801"
run_dump_test "pr18815"
run_dump_test "pr19013"
run_dump_test "pr19013-x32"
run_dump_test "pr19013-nacl"
run_dump_test "pr19162"
run_dump_test "pr19175"
run_dump_test "pr18591"
run_dump_test "pr19615"
run_dump_test "pr19636-1a"
run_dump_test "pr19636-1b"
run_dump_test "pr19636-1c"
run_dump_test "pr19636-1d"
run_dump_test "pr19636-1e"
run_dump_test "pr19636-1f"
run_dump_test "pr19636-1g"
run_dump_test "pr19636-2a"
run_dump_test "pr19636-2b"
run_dump_test "pr19636-2c"
run_dump_test "pr19636-2d"
run_dump_test "pr19636-2d-nacl"
run_dump_test "pr19636-2e"
run_dump_test "pr19636-2f"
run_dump_test "pr19636-2g"
run_dump_test "pr19636-2h"
run_dump_test "pr19636-2i"
run_dump_test "pr19636-3a"
run_dump_test "pr19636-3b"
run_dump_test "pr19636-3c"
run_dump_test "pr19645"
run_dump_test "pr19609-1a"
run_dump_test "pr19609-1b"
run_dump_test "pr19609-1c"
run_dump_test "pr19609-1d"
run_dump_test "pr19609-1e"
run_dump_test "pr19609-1f"
run_dump_test "pr19609-1g"
run_dump_test "pr19609-1h"
run_dump_test "pr19609-1i"
run_dump_test "pr19609-1j"
run_dump_test "pr19609-1k"
run_dump_test "pr19609-1l"
run_dump_test "pr19609-1m"
run_dump_test "pr19609-2a"
run_dump_test "pr19609-2b"
run_dump_test "pr19609-2c"
run_dump_test "pr19609-2d"
run_dump_test "pr19609-3a"
run_dump_test "pr19609-3b"
run_dump_test "pr19609-4a"
run_dump_test "pr19609-4b"
run_dump_test "pr19609-4c"
run_dump_test "pr19609-4d"
run_dump_test "pr19609-4e"
run_dump_test "pr19609-5a"
run_dump_test "pr19609-5b"
run_dump_test "pr19609-5c"
run_dump_test "pr19609-5d"
run_dump_test "pr19609-5e"
run_dump_test "pr19609-6a"
run_dump_test "pr19609-6b"
run_dump_test "pr19609-6c"
run_dump_test "pr19609-6d"
run_dump_test "pr19609-7a"
run_dump_test "pr19609-7b"
run_dump_test "pr19609-7c"
run_dump_test "pr19609-7d"
run_dump_test "pr19939a"
run_dump_test "pr19939b"
run_dump_test "pr19719"
run_dump_test "pr20253-1a"
run_dump_test "pr20253-1b"
run_dump_test "pr20253-1c"
run_dump_test "pr20253-1d"
run_dump_test "pr20253-1e"
run_dump_test "pr20253-1f"
run_dump_test "pr20253-1g"
run_dump_test "pr20253-1h"
run_dump_test "pr20253-1i"
run_dump_test "pr20253-1j"
run_dump_test "pr20253-1k"
run_dump_test "pr20253-1l"
run_dump_test "pr20253-3"
run_dump_test "pr20253-4a"
run_dump_test "pr20253-4b"
run_dump_test "pr20253-4c"
run_dump_test "pr20253-4d"
run_dump_test "pr20253-4e"
run_dump_test "pr20253-4f"
run_dump_test "pr20253-5a"
run_dump_test "pr20253-5b"

proc undefined_weak {cflags ldflags} {
    set testname "Undefined weak symbol"
    if { ![ string match "" $cflags$ldflags] } {
	set testname "$testname ($cflags $ldflags)"
    }

    if { [ regexp "\-fPIE" $cflags]
	 && ![ regexp "\-z nodynamic-undefined-weak" $ldflags] } {
	set weak_symbol "Weak defined"
    } else {
	set weak_symbol "Weak undefined"
    }

    run_cc_link_tests [list \
	[list \
	    "Build libpr19704a.so" \
	    "-shared -Wl,-soname,libpr19704.so" \
	    "" \
	    { dummy.s } \
	    {} \
	    "libpr19704a.so" \
	] \
	[list \
	    "Build libpr19704b.so" \
	    "-shared -Wl,-soname,libpr19704.so" \
	    "-fPIC" \
	    { pr19704b.c } \
	    {} \
	    "libpr19704b.so" \
	] \
    ]

    exec cp tmpdir/libpr19704a.so tmpdir/libpr19704.so

    run_ld_link_exec_tests [] [list \
	[list \
	    "Run pr19704" \
	    "$ldflags tmpdir/libpr19704.so -R tmpdir" \
	    "" \
	    { pr19704a.c } \
	    "pr19704" \
	    "pr19704.out" \
	    "$cflags" \
	] \
    ]

    exec cp tmpdir/libpr19704b.so tmpdir/libpr19704.so

    set exec_output [run_host_cmd tmpdir/pr19704 ""]
    if {![string match $weak_symbol $exec_output]} {
	fail $testname
    } else {
	pass $testname
    }
}

# Add $PLT_CFLAGS if PLT is expected.
global PLT_CFLAGS

# 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"}
    }

    run_cc_link_tests [list \
	[list \
	    "Build plt-lib.so" \
	    "-shared" \
	    "-fPIC" \
	    { plt-lib.c } \
	    {} \
	    "libplt-lib.so" \
	] \
	[list \
	    "Build libplt-main1.a" \
	    "" \
	    "-fPIC -Wa,-mrelax-relocations=yes" \
	    { plt-main1.c } \
	    {{readelf {-Wr} plt-main1.rd}} \
	    "libplt-main1.a" \
	] \
	[list \
	    "Build libplt-main2.a" \
	    "" \
	    "-fPIC -Wa,-mrelax-relocations=yes" \
	    { plt-main2.c } \
	    {{readelf {-Wr} plt-main2.rd}} \
	    "libplt-main2.a" \
	] \
	[list \
	    "Build libplt-main3.a" \
	    "" \
	    "-fPIC -Wa,-mrelax-relocations=yes $PLT_CFLAGS" \
	    { plt-main3.c } \
	    {{readelf {-Wr} plt-main3.rd}} \
	    "libplt-main3.a" \
	] \
	[list \
	    "Build libplt-main4.a" \
	    "" \
	    "-fPIC -Wa,-mrelax-relocations=yes $PLT_CFLAGS" \
	    { plt-main4.c } \
	    {{readelf {-Wr} plt-main4.rd}} \
	    "libplt-main4.a" \
	] \
	[list \
	    "Build plt-main" \
	    "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
	     tmpdir/plt-main4.o tmpdir/libplt-lib.so" \
	    "" \
	    { plt-main5.c } \
	    {{readelf {-Wr} plt-main.rd}} \
	    "plt-main" \
	] \
	[list \
	    "Build plt-main with PIE" \
	    "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
	     tmpdir/plt-main4.o tmpdir/libplt-lib.so -pie" \
	    "-fPIC" \
	    { plt-main5.c } \
	    {{readelf {-Wr} plt-main.rd}} \
	    "plt-main" \
	] \
	[list \
	    "Build copyreloc-lib.so" \
	    "-shared" \
	    "-fPIC" \
	    { copyreloc-lib.c } \
	    {} \
	    "copyreloc-lib.so" \
	] \
	[list \
	    "Build libcopyreloc-main.a" \
	    "" \
	    "" \
	    { copyreloc-main.S } \
	    {} \
	    "libcopyreloc-main.a" \
	] \
	[list \
	    "Build copyreloc-main with PIE without -fPIE (1)" \
	    "tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \
	    "" \
	    { dummy.s } \
	    {{readelf {-Wr} copyreloc-main1.rd}} \
	    "copyreloc-main" \
	] \
	[list \
	    "Build copyreloc-main with PIE without -fPIE (2)" \
	    "tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \
	    "" \
	    { dummy.s } \
	    {{readelf {-Wr} copyreloc-main2.rd}} \
	    "copyreloc-main" \
	] \
	[list \
	    "Build pr17689.so" \
	    "-shared" \
	    "-fPIC" \
	    { pr17689a.c } \
	    {} \
	    "pr17689.so" \
	] \
	[list \
	    "Build pr17689now.so with -z now" \
	    "-shared -Wl,-z,now" \
	    "-fPIC" \
	    { pr17689a.c } \
	    {{readelf {-Wr} pr17689now.rd}} \
	    "pr17689now.so" \
	] \
	[list \
	    "Build pr17689b.o" \
	    "" \
	    "" \
	    { pr17689b.S } \
	    {} \
	] \
	[list \
	    "Build pr17689 with PIE without -fPIE" \
	    "tmpdir/pr17689b.o tmpdir/pr17689.so -pie" \
	    "" \
	    { dummy.s } \
	    {{readelf {-Wr} pr17689.rd}} \
	    "pr17689" \
	] \
	[list \
	    "Build pr17689 with PIE -z now without -fPIE" \
	    "tmpdir/pr17689b.o tmpdir/pr17689.so -pie -Wl,-z,now" \
	    "" \
	    { dummy.s } \
	    {{readelf {-Wr} pr17689now.rd}} \
	    "pr17689now" \
	] \
	[list \
	    "Build pr17827 with PIE without -fPIE" \
	    "-Wl,--as-needed tmpdir/pr17689b.o tmpdir/pr17689.so -pie" \
	    "" \
	    { dummy.s } \
	    {{readelf {-Wr} pr17827.rd}} \
	    "pr17827" \
	] \
	[list \
	    "Build pr18900.so" \
	    "-shared" \
	    "-fPIC" \
	    { pr18900a.c } \
	    "" \
	    "pr18900.so" \
	] \
	[list \
	    "Build pr18900.o" \
	    "-r -nostdlib" \
	    "" \
	    { pr18900b.c pr18900c.c } \
	    "" \
	    "pr18900.o" \
	] \
	[list \
	    "Build pr18900a" \
	    "tmpdir/pr18900.o tmpdir/pr18900.so" \
	    "" \
	    { dummy.s } \
	    {{readelf {-Wrd} pr18900a.rd}} \
	    "pr18900a" \
	] \
	[list \
	    "Build pr18900b" \
	    "-Wl,--as-needed tmpdir/pr18900.o tmpdir/pr18900.so" \
	    "" \
	    { dummy.s } \
	    {{readelf {-Wrd} pr18900b.rd}} \
	    "pr18900b" \
	] \
	[list \
	    "Build pr19031.so" \
	    "-shared" \
	    "-fPIC" \
	    { pr19031a.c } \
	    "" \
	    "pr19031.so" \
	] \
	[list \
	    "Build gotpcrel1d.so" \
	    "-shared" \
	    "" \
	    { gotpcrel1d.S } \
	    "" \
	    "gotpcrel1d.so" \
	] \
	[list \
	    "Build gotpcrel1a.o gotpcrel1b.o gotpcrel1c.o" \
	    "" \
	    "-Wa,-mrelax-relocations=yes" \
	    { gotpcrel1a.S gotpcrel1b.c gotpcrel1c.c } \
	] \
	[list \
	    "Build gotpcrel1" \
	    "-Wl,--as-needed tmpdir/gotpcrel1a.o tmpdir/gotpcrel1b.o tmpdir/gotpcrel1c.o tmpdir/gotpcrel1d.so" \
	    { dummy.s } \
	    "" \
	    {{objdump {-dw} gotpcrel1.dd}} \
	    "gotpcrel1" \
	] \
	[list \
	    "Build pr19319.so" \
	    "-shared" \
	    "" \
	    { pr19319a.S } \
	    "" \
	    "pr19319.so" \
	] \
	[list \
	    "Build pr19319" \
	    "-pie -nostdlib -nostartfiles tmpdir/pr19319.so" \
	    "" \
	    { pr19319b.S } \
	    {{objdump {-dw} pr19319.dd}} \
	    "pr19319" \
	] \
    ]

    run_ld_link_exec_tests [] [list \
	[list \
	    "Run plt-main" \
	    "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
	     tmpdir/plt-main4.o tmpdir/libplt-lib.so" \
	    "" \
	    { plt-main5.c } \
	    "plt-main" \
	    "plt-main.out" \
	] \
	[list \
	    "Run plt-main with PIE" \
	    "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
	     tmpdir/plt-main4.o tmpdir/libplt-lib.so -pie" \
	    "" \
	    { plt-main5.c } \
	    "plt-main-pie" \
	    "plt-main.out" \
	    "-fPIC" \
	] \
	[list \
	    "Run copyreloc-main with PIE without -fPIE" \
	    "--as-needed tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \
	    "" \
	    { dummy.s } \
	    "copyreloc-main" \
	    "copyreloc-main.out" \
	] \
	[list \
	    "Run pr17689 with PIE without -fPIE" \
	    "tmpdir/pr17689b.o tmpdir/pr17689.so -pie" \
	    "" \
	    { dummy.s } \
	    "pr17689" \
	    "pr17689.out" \
	] \
	[list \
	    "Run pr17689 with PIE -z now without -fPIE" \
	    "--as-needed tmpdir/pr17689b.o tmpdir/pr17689.so -pie -z now" \
	    "" \
	    { dummy.s } \
	    "pr17689now" \
	    "pr17689.out" \
	] \
	[list \
	    "Run pr18900" \
	    "tmpdir/pr18900.o tmpdir/pr18900.so" \
	    "" \
	    { dummy.s } \
	    "pr18900" \
	    "pr18900.out" \
	] \
	[list \
	    "Run pr19031" \
	    "tmpdir/pr19031.so" \
	    "" \
	    { pr19031b.S pr19031c.c } \
	    "pr19031" \
	    "pr19031.out" \
	] \
	[list \
	    "Run gotpcrel1" \
	    "tmpdir/gotpcrel1d.so" \
	    "" \
	    { gotpcrel1a.S gotpcrel1b.c gotpcrel1c.c } \
	    "gotpcrel1" \
	    "gotpcrel1.out" \
	] \
    ]

    if { [istarget "x86_64-*-linux*"] \
	 && ![istarget "x86_64-*-linux*-gnux32"]} {

	run_cc_link_tests [list \
	    [list \
		"Build plt-main with -z bndplt" \
		"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
		 tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt" \
		"" \
		{ plt-main5.c } \
		{{objdump {-drw} plt-main-bnd.dd}} \
		"plt-main-bnd" \
	    ] \
	    [list \
		"Build plt-main with PIE and -z bndplt" \
		"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
		 tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -pie" \
		"-fPIC" \
		{ plt-main5.c } \
		{{objdump {-drw} plt-main-bnd.dd}} \
		"plt-main-pie-bnd" \
	    ] \
	]

	run_ld_link_exec_tests [] [list \
	    [list \
		"Run plt-main with -z bndplt" \
		"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
		 tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt" \
		"" \
		{ plt-main5.c } \
		"plt-main-bnd" \
		"plt-main.out" \
	    ] \
	    [list \
		"Run plt-main with PIE and -z bndplt" \
		"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
		 tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -pie" \
		"" \
		{ plt-main5.c } \
		"plt-main-pie-bnd" \
		"plt-main.out" \
		"-fPIC" \
	    ] \
	]
    }

    undefined_weak "" ""
    undefined_weak "-fPIE" ""
    undefined_weak "-fPIE" "-pie"
    undefined_weak "-fPIE" "-z nodynamic-undefined-weak"
    undefined_weak "-fPIE" "-pie -z nodynamic-undefined-weak"
}

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

# Linux only tests
run_dump_test "pr17618"
run_dump_test "pltgot-1"
run_dump_test "pltgot-2"
