# Expect script for ld-x86_64 tests
#   Copyright (C) 2002-2017 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 --hash-style=sysv" ""
     "--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 --hash-style=sysv" ""
     "--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 --hash-style=sysv" ""
     "--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 --hash-style=sysv" ""
     "--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 --hash-style=sysv" ""
     "-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 --hash-style=sysv" ""
     "--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 --hash-style=sysv" ""
     "--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"}
    {"Build pr20550a.o" "" ""
     "--64" { pr20550a.s }}
    {"Build pr20550b.so" "-melf_x86_64 -shared" ""
     "--64" { pr20550b.s } {} "pr20550b.so"}
    {"Build pr20550" "-melf_x86_64 -pie tmpdir/pr20550a.o tmpdir/pr20550b.so" ""
     "--64" { dummy.s } {} "pr20550"}
}

# 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_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_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 "pie3"
run_dump_test "pie3-nacl"
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"
run_dump_test "property-x86-3"
run_dump_test "property-x86-4a"
run_dump_test "property-x86-4b"
run_dump_test "property-x86-3-x32"
run_dump_test "property-x86-4a-x32"
run_dump_test "property-x86-4b-x32"
run_dump_test "property-x86-ibt1a"
run_dump_test "property-x86-ibt1b"
run_dump_test "property-x86-ibt1a-x32"
run_dump_test "property-x86-ibt1b-x32"
run_dump_test "property-x86-ibt2"
run_dump_test "property-x86-ibt2-x32"
run_dump_test "property-x86-ibt3a"
run_dump_test "property-x86-ibt3b"
run_dump_test "property-x86-ibt3a-x32"
run_dump_test "property-x86-ibt3b-x32"
run_dump_test "property-x86-ibt4"
run_dump_test "property-x86-ibt4-x32"
run_dump_test "property-x86-ibt5"
run_dump_test "property-x86-ibt5-x32"
run_dump_test "property-x86-shstk1a"
run_dump_test "property-x86-shstk1b"
run_dump_test "property-x86-shstk1a-x32"
run_dump_test "property-x86-shstk1b-x32"
run_dump_test "property-x86-shstk2"
run_dump_test "property-x86-shstk2-x32"
run_dump_test "property-x86-shstk3a"
run_dump_test "property-x86-shstk3b"
run_dump_test "property-x86-shstk3a-x32"
run_dump_test "property-x86-shstk3b-x32"
run_dump_test "property-x86-shstk4"
run_dump_test "property-x86-shstk4-x32"
run_dump_test "property-x86-shstk5"
run_dump_test "property-x86-shstk5-x32"
run_dump_test "pr21884"

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"
run_dump_test "tlsdesc2"
run_dump_test "gpoff-3"
run_dump_test "gpoff-4"
run_dump_test "gpoff-5"
run_dump_test "gpoff-6"
run_dump_test "gpoff-7"
run_dump_test "gpoff-8a"
run_dump_test "gpoff-8b"
run_dump_test "gpoff-8c"
run_dump_test "gpoff-8d"
run_dump_test "gpoff-8e"
run_dump_test "gpoff-8f"

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 "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" \
	    "-Wl,--no-as-needed,-R,tmpdir $ldflags tmpdir/libpr19704.so" \
	    "" \
	    { 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
# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required.
global NOPIE_CFLAGS NOPIE_LDFLAGS

# 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" \
	    "$NOPIE_LDFLAGS -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" \
	] \
	[list \
	    "Build property 1" \
	    "" \
	    "" \
	    {pass.c property-no-copy.S} \
	    {{readelf {-n} property-1.r}} \
	    "property-1" \
	] \
	[list \
	    "Build property 1 (.o)" \
	    "-r -nostdlib" \
	    "" \
	    {pass.c property-no-copy.S} \
	    {{readelf {-n} property-1.r}} \
	    "property-1.o" \
	] \
	[list \
	    "Build property 1 (.so)" \
	    "-shared" \
	    "-fPIC" \
	    {pass.c property-no-copy.S} \
	    {{readelf {-n} property-1.r}} \
	    "property-1.so" \
	] \
	[list \
	    "Build property 2" \
	    "" \
	    "" \
	    {pass.c property-stack.S} \
	    {{readelf {-n} property-2.r}} \
	    "property-2" \
	] \
	[list \
	    "Build property 2 (.o)" \
	    "-r -nostdlib" \
	    "" \
	    {pass.c property-stack.S} \
	    {{readelf {-n} property-2.r}} \
	    "property-2.o" \
	] \
	[list \
	    "Build property 2 (.so)" \
	    "-shared" \
	    "-fPIC" \
	    {pass.c property-stack.S} \
	    {{readelf {-n} property-2.r}} \
	    "property-2.so" \
	] \
	[list \
	    "Build property 3" \
	    "" \
	    "" \
	    {pass.c property-stack.S property-x86-1.S} \
	    {{readelf {-n} property-3.r}} \
	    "property-3" \
	] \
	[list \
	    "Build property 3 (.o)" \
	    "-r -nostdlib" \
	    "" \
	    {pass.c property-x86-1.S property-stack.S} \
	    {{readelf {-n} property-3.r}} \
	    "property-3.o" \
	] \
	[list \
	    "Build property 3 (.so)" \
	    "-shared" \
	    "-fPIC" \
	    {property-x86-1.S pass.c property-stack.S} \
	    {{readelf {-n} property-3.r}} \
	    "property-3.so" \
	] \
	[list \
	    "Build property 4" \
	    "" \
	    "" \
	    {pass.c property-stack.S property-x86-1.S property-x86-2.S} \
	    {{readelf {-n} property-4.r}} \
	    "property-4" \
	] \
	[list \
	    "Build property 4 (.o)" \
	    "-r -nostdlib" \
	    "" \
	    {pass.c property-x86-2.S property-x86-1.S property-stack.S} \
	    {{readelf {-n} property-4.r}} \
	    "property-4.o" \
	] \
	[list \
	    "Build property 4 (.so)" \
	    "-shared" \
	    "-fPIC" \
	    {property-x86-2.S property-x86-1.S pass.c property-stack.S} \
	    {{readelf {-n} property-4.r}} \
	    "property-4.so" \
	] \
	[list \
	    "Build property 4 (-Wl,-z,stack-size=0)" \
	    "-Wl,-z,stack-size=0" \
	    "" \
	    {pass.c property-stack.S property-x86-1.S property-x86-2.S} \
	    {{readelf {-n} property-4.r}} \
	    "property-4" \
	] \
	[list \
	    "Build property 5" \
	    "-Wl,-z,stack-size=0x900000" \
	    "" \
	    {pass.c property-stack.S property-x86-1.S property-x86-2.S} \
	    {{readelf {-n} property-5.r}} \
	    "property-5" \
	] \
	[list \
	    "Build property 5 (.o)" \
	    "-r -nostdlib -Wl,-z,stack-size=0x900000" \
	    "" \
	    {pass.c property-x86-2.S property-x86-1.S property-stack.S} \
	    {{readelf {-n} property-5.r}} \
	    "property-5.o" \
	] \
	[list \
	    "Build property 5 (.so)" \
	    "-shared -Wl,-z,stack-size=0x900000" \
	    "-fPIC" \
	    {property-x86-2.S property-x86-1.S pass.c property-stack.S} \
	    {{readelf {-n} property-5.r}} \
	    "property-5.so" \
	] \
	[list \
	    "Build property-6.so" \
	    "-shared" \
	    "-fPIC" \
	    {property-6a.c property-6c.S} \
	    {{readelf {-n} property-6.r}} \
	    "property-6.so" \
	] \
	[list \
	    "Build property-6.o" \
	    "-r -nostdlib" \
	    "" \
	    {property-6b.c property-stack.S} \
	    {{readelf {-n} property-2.r}} \
	    "property-6.o" \
	] \
	[list \
	    "Build property-6" \
	    "-Wl,--as-needed tmpdir/property-6.o tmpdir/property-6.so" \
	    { dummy.s } \
	    "" \
	    {{readelf {-n} property-2.r}} \
	    "property-6" \
	] \
	[list \
	    "Build property 7a (.o)" \
	    "-r -nostdlib" \
	    "" \
	    {property-unsorted-1.S} \
	    {{readelf {-n} property-7.r}} \
	    "property-7a.o" \
	] \
	[list \
	    "Build property 7b (.o)" \
	    "-r -nostdlib" \
	    "" \
	    {property-unsorted-2.S} \
	    {{readelf {-n} property-7.r}} \
	    "property-7b.o" \
	] \
    ]

    run_ld_link_exec_tests [list \
	[list \
	    "Run plt-main" \
	    "-Wl,--no-as-needed 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" \
	    "-Wl,--no-as-needed -pie 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-pie" \
	    "plt-main.out" \
	    "-fPIC" \
	] \
	[list \
	    "Run copyreloc-main with PIE without -fPIE" \
	    "-Wl,--as-needed -pie tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so" \
	    "" \
	    { dummy.s } \
	    "copyreloc-main" \
	    "copyreloc-main.out" \
	] \
	[list \
	    "Run pr17689 with PIE without -fPIE" \
	    "-Wl,--no-as-needed -pie tmpdir/pr17689b.o tmpdir/pr17689.so" \
	    "" \
	    { dummy.s } \
	    "pr17689" \
	    "pr17689.out" \
	] \
	[list \
	    "Run pr17689 with PIE -z now without -fPIE" \
	    "-Wl,--as-needed,-z,now -pie tmpdir/pr17689b.o tmpdir/pr17689.so" \
	    "" \
	    { dummy.s } \
	    "pr17689now" \
	    "pr17689.out" \
	] \
	[list \
	    "Run pr18900" \
	    "-Wl,--no-as-needed tmpdir/pr18900.o tmpdir/pr18900.so" \
	    "" \
	    { dummy.s } \
	    "pr18900" \
	    "pr18900.out" \
	] \
	[list \
	    "Run pr19031" \
	    "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr19031.so" \
	    "" \
	    { pr19031b.S pr19031c.c } \
	    "pr19031" \
	    "pr19031.out" \
	    "$NOPIE_CFLAGS" \
	] \
	[list \
	    "Run gotpcrel1" \
	    "-Wl,--no-as-needed tmpdir/gotpcrel1d.so" \
	    "" \
	    { gotpcrel1a.S gotpcrel1b.c gotpcrel1c.c } \
	    "gotpcrel1" \
	    "gotpcrel1.out" \
	] \
	[list \
	    "Run property 1" \
	    "" \
	    "" \
	    {pass.c property-no-copy.S} \
	    "property-1" "pass.out" \
	] \
	[list \
	    "Run property 1 (PIE)" \
	    "-pie" \
	    "" \
	    {pass.c property-no-copy.S} \
	    "property-1-pie" "pass.out" "-fPIE" \
	] \
	[list \
	    "Run property 1 (static)" \
	    "-static" \
	    "" \
	    {pass.c property-no-copy.S} \
	    "property-1-static" "pass.out" \
	] \
	[list \
	    "Run property 2" \
	    "" \
	    "" \
	    {pass.c property-stack.S} \
	    "property-2" "pass.out" \
	] \
	[list \
	    "Run property 2 (PIE)" \
	    "-pie" \
	    "" \
	    {pass.c property-stack.S} \
	    "property-2-pie" "pass.out" "-fPIE" \
	] \
	[list \
	    "Run property 2 (static)" \
	    "-static" \
	    "" \
	    {pass.c property-stack.S} \
	    "property-3-static" "pass.out" \
	] \
	[list \
	    "Run property 3" \
	    "" \
	    "" \
	    {pass.c property-stack.S property-x86-1.S} \
	    "property-3" "pass.out" \
	] \
	[list \
	    "Run property 3 (PIE)" \
	    "-pie" \
	    "" \
	    {pass.c property-x86-1.S property-stack.S} \
	    "property-3-pie" "pass.out" "-fPIE" \
	] \
	[list \
	    "Run property 3 (static)" \
	    "-static" \
	    "" \
	    {property-x86-1.S pass.c property-stack.S} \
	    "property-3-static" "pass.out" \
	] \
	[list \
	    "Run property 4" \
	    "" \
	    "" \
	    {pass.c property-stack.S property-x86-1.S property-x86-2.S} \
	    "property-4" "pass.out" \
	] \
	[list \
	    "Run property 4 (PIE)" \
	    "-pie" \
	    "" \
	    {pass.c property-x86-2.S property-x86-1.S property-stack.S} \
	    "property-4-pie" "pass.out" "-fPIE" \
	] \
	[list \
	    "Run property 4 (static)" \
	    "-static" \
	    "" \
	    {property-x86-2.S property-x86-1.S pass.c property-stack.S} \
	    "property-4-static" "pass.out" \
	] \
	[list \
	    "Run property 5" \
	    "-Wl,-z,stack-size=0x900000" \
	    "" \
	    {pass.c property-stack.S property-x86-1.S property-x86-2.S} \
	    "property-5" "pass.out" \
	] \
	[list \
	    "Run property 5 (PIE)" \
	    "-pie -Wl,-z,stack-size=0x900000" \
	    "" \
	    {pass.c property-x86-2.S property-x86-1.S property-stack.S} \
	    "property-5-pie" "pass.out" "-fPIE" \
	] \
	[list \
	    "Run property 5 (static)" \
	    "-static -Wl,-z,stack-size=0x900000" \
	    "" \
	    {property-x86-2.S property-x86-1.S pass.c property-stack.S} \
	    "property-5-static" "pass.out" \
	] \
    ]

    # Run-time tests which require working ifunc attribute support.
    if { [check_ifunc_attribute_available] } {
	run_cc_link_tests [list \
	    [list \
		"Build libpr19784a.so" \
		"-shared -Wl,-Bsymbolic-functions" \
		"-fPIC -O2 -g" \
		{ pr19784b.c pr19784c.c } \
		{} \
		"libpr19784a.so" \
	    ] \
	    [list \
		"Build libpr19784b.so" \
		"-shared -Wl,-Bsymbolic-functions" \
		"-fPIC -O2 -g" \
		{ pr19784c.c pr19784b.c } \
		{} \
		"libpr19784b.so" \
	    ] \
	    [list \
		"Build pr19784a.o" \
		"" \
		"" \
		{ pr19784a.c } \
	    ] \
	]

	run_ld_link_exec_tests [list \
	    [list \
		"Run pr19784a" \
		"-Wl,--no-as-needed tmpdir/pr19784a.o tmpdir/libpr19784a.so" \
		"" \
		{ dummy.s } \
		"pr19784a" \
		"pass.out" \
	    ] \
	    [list \
		"Run pr19784b" \
		"-Wl,--as-needed tmpdir/pr19784a.o tmpdir/libpr19784b.so" \
		"" \
		{ dummy.s } \
		"pr19784b" \
		"pass.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" \
	    ] \
	    [list \
		"Build plt-main with -z bndplt -z now" \
		"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
		 tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now" \
		"" \
		{ plt-main5.c } \
		{{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \
		"plt-main-bnd-now" \
	    ] \
	    [list \
		"Build plt-main with PIE and -z bndplt -z now" \
		"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
		 tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now -pie" \
		"-fPIC" \
		{ plt-main5.c } \
		{{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \
		"plt-main-pie-bnd-now" \
	    ] \
	]

	run_ld_link_exec_tests [list \
	    [list \
		"Run plt-main with -z bndplt" \
		"-Wl,--no-as-needed,-z,bndplt 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-bnd" \
		"plt-main.out" \
	    ] \
	    [list \
		"Run plt-main with PIE and -z bndplt" \
		"-Wl,--no-as-needed,-z,bndplt -pie 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-pie-bnd" \
		"plt-main.out" \
		"-fPIC" \
	    ] \
	    [list \
		"Run plt-main with -z bndplt -z now" \
		"-Wl,--no-as-needed,-z,bndplt,-z,now 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-bnd-now" \
		"plt-main.out" \
	    ] \
	    [list \
		"Run plt-main with PIE and -z bndplt -z now" \
		"-Wl,--no-as-needed,-z,bndplt,-z,now -pie 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-pie-bnd-now" \
		"plt-main.out" \
		"-fPIC" \
	    ] \
	    [list \
		"Run pr20800" \
		"-Wl,-z,now -pie" \
		"" \
		{ pr20800a.S pr20800b.S } \
		"pr20800" \
		"pass.out" \
	    ] \
	]
	if { [check_ifunc_attribute_available] } {
	    run_ld_link_exec_tests [list \
		[list \
		    "Run pr21481a" \
		    "$NOPIE_LDFLAGS -Wl,-z,bndplt" \
		    "" \
		    { pr21481a.c pr21481b.S } \
		    "pr21481a" \
		    "pass.out" \
		     "$NOPIE_CFLAGS" \
		] \
		[list \
		    "Run pr21481b" \
		    "$NOPIE_LDFLAGS -Wl,-z,bndplt,-z,now" \
		    "" \
		    { pr21481a.c pr21481b.S } \
		    "pr21481b" \
		    "pass.out" \
		    "$NOPIE_CFLAGS" \
		] \
	    ]
	}
    }

    if { [istarget "x86_64-*-linux*"] } {
	if { [istarget "x86_64-*-linux*-gnux32"] } {
	    set pltdump {{objdump {-drw} plt-main-ibt-x32.dd}}
	    set pltsecdump {{readelf {-SW} plt-main-ibt-now.rd} {objdump {-drw} plt-main-ibt-x32.dd}}
	} else {
	    set pltdump {{objdump {-drw} plt-main-ibt.dd}}
	    set pltsecdump {{readelf {-SW} plt-main-ibt-now.rd} {objdump {-drw} plt-main-ibt.dd}}
	}
	run_cc_link_tests [list \
	    [list \
		"Build plt-main with -z ibtplt" \
		"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
		 tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt" \
		"" \
		{ plt-main5.c } \
		$pltdump \
		"plt-main-ibt" \
	    ] \
	    [list \
		"Build plt-main with PIE and -z ibtplt" \
		"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
		 tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -pie" \
		"-fPIC" \
		{ plt-main5.c } \
		$pltdump \
		"plt-main-pie-ibt" \
	    ] \
	    [list \
		"Build plt-main with -z ibtplt -z now" \
		"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
		 tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now" \
		"" \
		{ plt-main5.c } \
		$pltsecdump \
		"plt-main-ibt-now" \
	    ] \
	    [list \
		"Build plt-main with PIE and -z ibtplt -z now" \
		"tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \
		 tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now -pie" \
		"-fPIC" \
		{ plt-main5.c } \
		$pltsecdump \
		"plt-main-pie-ibt-now" \
	    ] \
	    [list \
		"Build libibtplt-lib.so with -z ibtplt" \
		"-shared -z ibtplt" \
		"-fPIC" \
		{ plt-main1.c plt-main2.c plt-main3.c plt-main4.c} \
		$pltdump \
		"libibtplt-lib.so" \
	    ] \
	    [list \
		"Build libibtplt--now-lib.so with -z ibtplt -z now" \
		"-shared -z ibtplt -z now" \
		"-fPIC" \
		{ plt-main1.c plt-main2.c plt-main3.c plt-main4.c} \
		$pltdump \
		"libibtplt-now-lib.so" \
	    ] \
	]

	run_ld_link_exec_tests [list \
	    [list \
		"Run plt-main with -z ibtplt" \
		"-Wl,--no-as-needed,-z,ibtplt 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-ibt" \
		"plt-main.out" \
	    ] \
	    [list \
		"Run plt-main with PIE and -z ibtplt" \
		"-Wl,--no-as-needed,-z,ibtplt -pie 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-pie-ibt" \
		"plt-main.out" \
		"-fPIC" \
	    ] \
	    [list \
		"Run plt-main with -z ibtplt -z now" \
		"-Wl,--no-as-needed,-z,ibtplt,-z,now 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-ibt-now" \
		"plt-main.out" \
	    ] \
	    [list \
		"Run plt-main with PIE and -z ibtplt -z now" \
		"-Wl,--no-as-needed,-z,ibtplt,-z,now -pie 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-pie-ibt-now" \
		"plt-main.out" \
		"-fPIC" \
	    ] \
	    [list \
		"Run plt-main with libibtplt-lib.so -z ibtplt" \
		"-Wl,--no-as-needed,-z,ibtplt tmpdir/libibtplt-lib.so \
		 tmpdir/libplt-lib.so" \
		"" \
		{ plt-main5.c } \
		"plt-main-ibt-lib" \
		"plt-main.out" \
	    ] \
	    [list \
		"Run plt-main with libibtplt-lib.so -z ibtplt -z now" \
		"-Wl,--no-as-needed,-z,ibtplt,-z,now \
		 tmpdir/libibtplt-now-lib.so tmpdir/libplt-lib.so" \
		"" \
		{ plt-main5.c } \
		"plt-main-ibt-now-lib" \
		"plt-main.out" \
	    ] \
	]

	if { [check_ifunc_attribute_available] } {
	    run_ld_link_exec_tests [list \
		[list \
		    "Run pr21481a" \
		    "$NOPIE_LDFLAGS -Wl,-z,ibtplt" \
		    "" \
		    { pr21481a.c pr21481b.S } \
		    "pr21481a" \
		    "pass.out" \
		     "$NOPIE_CFLAGS" \
		] \
		[list \
		    "Run pr21481b" \
		    "$NOPIE_LDFLAGS -Wl,-z,ibtplt,-z,now" \
		    "" \
		    { pr21481a.c pr21481b.S } \
		    "pr21481b" \
		    "pass.out" \
		    "$NOPIE_CFLAGS" \
		] \
	    ]
	}
    }

    if { [istarget "x86_64-*-linux*"] } {
	run_ld_link_exec_tests [list \
	    [list \
		"Run GPOFF 1" \
		"" \
		"" \
		{gpoff-1a.S gpoff-1b.c} \
		"gpoff-1" "pass.out" \
	    ] \
	    [list \
		"Run GPOFF 1 (PIE)" \
		"-pie" \
		"" \
		{gpoff-1a.S gpoff-1b.c} \
		"gpoff-1-pie" "pass.out" "-fPIE" \
	    ] \
	    [list \
		"Run GPOFF 1 (PIC)" \
		"-pie" \
		"" \
		{gpoff-1a.S gpoff-1b.c} \
		"gpoff-1-pic" "pass.out" "-fPIC" \
	    ] \
	    [list \
		"Run GPOFF 1 (static)" \
		"-static" \
		"" \
		{gpoff-1a.S gpoff-1b.c} \
		"gpoff-1-static" "pass.out" \
	    ] \
	    [list \
		"Run GPOFF 2" \
		"" \
		"" \
		{gpoff-2a.S gpoff-2b.c} \
		"gpoff-2" "pass.out" \
	    ] \
	    [list \
		"Run GPOFF 2 (PIE)" \
		"-pie" \
		"" \
		{gpoff-2a.S gpoff-2b.c} \
		"gpoff-2-pie" "pass.out" "-fPIE" \
	    ] \
	    [list \
		"Run GPOFF 2 (PIC)" \
		"-pie" \
		"" \
		{gpoff-2a.S gpoff-2b.c} \
		"gpoff-2-pic" "pass.out" "-fPIC" \
	    ] \
	    [list \
		"Run GPOFF 2 (static)" \
		"-static" \
		"" \
		{gpoff-2a.S gpoff-2b.c} \
		"gpoff-2-static" "pass.out" \
	    ] \
	]
    }

    undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
    undefined_weak "-fPIE" ""
    undefined_weak "-fPIE" "-pie"
    undefined_weak "-fPIE" "-Wl,-z,nodynamic-undefined-weak"
    undefined_weak "-fPIE" "-pie -Wl,-z,nodynamic-undefined-weak"
}

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

run_ld_link_tests [list \
    [list \
	"basic PLT generation (-z now)" \
	"-z now -melf_x86_64 --hash-style=sysv tmpdir/libpltlib.so" \
	"" \
	"--64" \
	{plt2.s} \
	{{readelf -SW plt2.rd} {objdump -dwr plt2.dd}} \
	"plt2" \
    ] \
    [list \
	"Build pr21626.so" \
	"-shared -melf_x86_64" \
	"" \
	"--64 -defsym __64_bit__=1" \
	{property-x86-3.s} \
	"" \
	"pr21626.so" \
    ] \
    [list \
	"Build pr21626" \
	"-melf_x86_64 tmpdir/pr21626.so" \
	"" \
	"--64" \
	{start.s foo.s} \
	"" \
	"pr21626" \
    ] \
]

# Linux only tests
global LD_CLASS
if { "$LD_CLASS" == "64bit" } then {
    # This test needs 64-bit linker.
    run_dump_test "pr17618"
}
run_dump_test "pltgot-1"
run_dump_test "pltgot-2"
run_dump_test "pr20830a"
run_dump_test "pr20830b"
run_dump_test "pr21038a"
run_dump_test "pr21038b"
run_dump_test "pr21038c"
run_dump_test "pr20830a-now"
run_dump_test "pr20830b-now"
run_dump_test "pr21038a-now"
run_dump_test "pr21038b-now"
run_dump_test "pr21038c-now"
run_dump_test "ibt-plt-1"
run_dump_test "ibt-plt-1-x32"
run_dump_test "ibt-plt-2a"
run_dump_test "ibt-plt-2b"
run_dump_test "ibt-plt-2c"
run_dump_test "ibt-plt-2d"
run_dump_test "ibt-plt-2a-x32"
run_dump_test "ibt-plt-2b-x32"
run_dump_test "ibt-plt-2c-x32"
run_dump_test "ibt-plt-2d-x32"
run_dump_test "ibt-plt-3a"
run_dump_test "ibt-plt-3b"
run_dump_test "ibt-plt-3c"
run_dump_test "ibt-plt-3d"
run_dump_test "ibt-plt-3a-x32"
run_dump_test "ibt-plt-3b-x32"
run_dump_test "ibt-plt-3c-x32"
run_dump_test "ibt-plt-3d-x32"
