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

set saved_ASFLAGS "$ASFLAGS"
if { [is_elf_format] \
     && ([istarget "i?86-*-*"] || [istarget "x86_64-*-*"]) } {
    set ASFLAGS "$ASFLAGS -mx86-used-note=no"
}

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

if {[istarget "i?86-*-vxworks"]} {
    set i386tests {
	{"VxWorks shared library test 1"
	 "-shared -Tvxworks1.ld --hash-style=sysv" ""
	 "" {vxworks1-lib.s}
	 {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
	  {readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
	 "libvxworks1.so"}
	{"VxWorks executable test 1 (dynamic)" \
	 "tmpdir/libvxworks1.so -Tvxworks1.ld --hash-style=sysv -q --force-dynamic" ""
	 "" {vxworks1.s}
	 {{readelf {--relocs --wide} vxworks1.rd} {objdump -dr vxworks1.dd}}
	 "vxworks1"}
	{"VxWorks executable test 2 (dynamic)" \
	 "-Tvxworks1.ld --hash-style=sysv -q --force-dynamic" ""
	 "" {vxworks2.s}
	 {{readelf --segments vxworks2.sd}}
	 "vxworks2"}
	{"VxWorks executable test 2 (static)"
	 "-Tvxworks1.ld --hash-style=sysv" ""
	 "" {vxworks2.s}
	 {{readelf --segments vxworks2-static.sd}}
	 "vxworks2"}
    }
    run_ld_link_tests $i386tests
    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-*-gnu*"]
       || [istarget "x86_64-*-elf*"]
       || [istarget "x86_64-*-linux*"]
       || [istarget "amd64-*-linux*"]) } {
    return
}

# 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 i386tests {
    {"Helper shared library (basic PLT test)"
      "-shared -melf_i386" "" "--32" {pltlib.s} {} "libpltlib.so"}
    {"basic PLT generation (non-PIC)"
     "-melf_i386 tmpdir/libpltlib.so" "" "--32" {plt.s}
     {{objdump -drj.plt plt.pd}} "plt"}
    {"basic PLT generation (PIC)"
     "-shared -melf_i386 tmpdir/libpltlib.so" "" "--32" {plt-pic.s}
     {{objdump -drj.plt plt-pic.pd}} "libplt-pic.so"}
    {"TLS -fpic -shared transitions"
     "-shared -melf_i386 --no-ld-generated-unwind-info \
      -z noseparate-code --hash-style=sysv" ""
     "--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 -fpic -shared transitions without PLT"
     "-shared -melf_i386 --no-ld-generated-unwind-info \
      -z noseparate-code --hash-style=sysv" ""
     "-mrelax-relocations=yes --32"
     {tlspic3.s tlspic2.s}
     {{readelf -Ssrl tlspic2.rd} {objdump -drj.text tlspic2.dd}
      {objdump -sj.got tlspic2.sd} {objdump -sj.tdata tlspic2.td}}
      "libtlspic2.so"}
    {"TLS descriptor -fpic -shared transitions"
     "-shared -melf_i386 --no-ld-generated-unwind-info \
      -z noseparate-code --hash-style=sysv" ""
     "--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}}
      "libtlsdesc.so"}
    {"Helper shared library" "-shared -melf_i386" ""
     "--32" {tlslib.s} {} "libtlslib.so"}
    {"TLS -fpic and -fno-pic exec transitions"
     "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info \
      -z noseparate-code --hash-style=sysv" ""
     "--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 -fpic and -fno-pic exec transitions without PLT"
     "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info \
      -z noseparate-code --hash-style=sysv" ""
     "-mrelax-relocations=yes --32"
     {tlsbinpic2.s tlsbin.s}
     {{readelf -Ssrl 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_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info \
      -z noseparate-code --hash-style=sysv" ""
     "--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 --no-ld-generated-unwind-info -z notext \
      -z noseparate-code --hash-style=sysv" ""
     "--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 --no-ld-generated-unwind-info \
      -z noseparate-code --hash-style=sysv" ""
     "--32" {tlsgdesc.s}
     {{readelf -Ssrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}}
      "libtlsgdesc.so"}
    {"TLS in debug sections" "-melf_i386" ""
     "--32" {tlsg.s}
     {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"}
    {"TLS @indntpoff with %eax" "-melf_i386" "" "--32" {tlsindntpoff.s}
     {{objdump -drj.text tlsindntpoff.dd}} "tlsindntpoff"}
    {"Reloc section order"
     "-shared -melf_i386 -z nocombreloc -z notext" "" "--32"
     {reloc.s} {{objdump -hw reloc.d}} "reloc.so"}
    {"Basic --emit-relocs support" "-shared -melf_i386 --emit-relocs" "" "--32"
     {emit-relocs.s} {{readelf --relocs emit-relocs.rd}} "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 GD->LE transition without PLT" "-melf_i386" ""
     "-mrelax-relocations=yes --32"
     {tlsgd3.s}
     {{objdump -dwr tlsgd3.dd}} "tlsgd3"}
    {"TLS LD->LE transition" "-melf_i386" ""
     "--32" {tlsld1.s}
     {{objdump -dwr tlsld1.dd}} "tlsld1"}
    {"TLS LD->LE transition without PLT" "-melf_i386" ""
     "-mrelax-relocations=yes --32"
     {tlsld2.s}
     {{objdump -dwr tlsld2.dd}} "tlsld2"}
    {"TLS IE->LE transition" "-melf_i386" ""
     "--32" {tlsie1.s}
     {{objdump -dwr tlsie1.dd}} "tlsie1"}
    {"PR ld/17313 (1)" "-melf_i386" ""
     "--32 -mx86-used-note=yes" {zero.s} {} ""}
    {"PR ld/17313 (2)" "-melf_i386 -shared --just-symbols=tmpdir/zero.o" ""
     "--32 -mx86-used-note=yes" {lea1.s} {} "libpr17313.so"}
    {"PR ld/17306 (1)" "-melf_i386" ""
     "--32 -mx86-used-note=yes" {pr17306b.s} {} ""}
    {"PR ld/17306 (2)" "-melf_i386 -shared -Bsymbolic --just-symbols=tmpdir/pr17306b.o" ""
     "--32 -mx86-used-note=yes" {pr17306a.s} {} "libpr17306.so"}
    {"PR ld/17709 (1)" "-melf_i386 -shared" ""
     "--32 -mx86-used-note=yes" {pr17709a.s} {} "libpr17709.so"}
    {"PR ld/17709 (2)" "-melf_i386 tmpdir/libpr17709.so" ""
     "--32 -mx86-used-note=yes"
     {pr17709b.s} {{readelf -r pr17709.rd}} "pr17709"}
    {"Build pr19827a.o" "" ""
     "--32 -mx86-used-note=yes" { pr19827a.S }}
    {"Build pr19827b.so" "-melf_i386 -shared" ""
     "--32 -mx86-used-note=yes"
     { pr19827b.S } {} "pr19827b.so"}
    {"Build pr19827"
     "-melf_i386 -pie -z notext tmpdir/pr19827a.o tmpdir/pr19827b.so"
     ""
     "--32 -mx86-used-note=yes"
     { dummy.s } {{readelf {-rW} pr19827.rd}} "pr19827"}
    {"Build pr19827.so"
     "-melf_i386 -shared -Bsymbolic -z notext" ""
     "--32 -mx86-used-note=yes"
     { pr19827a.S }  {{readelf {-rW} pr19827.rd}} "pr19827.so"}
    {"Build pr27193a.so"
     "-melf_i386 -shared" ""
     "--32"
     { pr27193a.o.bz2 pr27193b.s }
     {{objdump {-dw} pr27193.dd}} "pr27193a.so"}
    {"Build pr27193b.so"
     "-melf_i386 -shared --reduce-memory-overheads" ""
     "--32"
     { pr27193a.o.bz2 pr27193b.s }
     {{objdump {-dw} pr27193.dd}} "pr27193b.so"}
}

proc iamcu_tests {} {
    global as
    global srcdir
    global subdir

    if ![ld_assemble $as "--32 -march=iamcu $srcdir/$subdir/start.s" tmpdir/startiamcu.o] {
	fail "Build Intel MCU start.o"
	return
    }

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

    if ![ld_assemble $as "--32 -march=iamcu $srcdir/$subdir/foo.s" tmpdir/fooiamcu.o] {
	fail "Build Intel MCU foo.o"
	return
    }

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

    run_dump_test "abs-iamcu"
    run_dump_test "iamcu-1"
    run_dump_test "iamcu-2"
    run_dump_test "iamcu-3"
    run_dump_test "iamcu-4"
}

iamcu_tests

run_ld_link_tests $i386tests

run_dump_test "abs"
run_dump_test "pcrel8"
run_dump_test "pcrel16"
run_dump_test "pcrel16abs"
run_dump_test "pcrel16-2"
run_dump_test "alloc"
run_dump_test "warn1"
run_dump_test "tlsgd2"
run_dump_test "tlsgd4"
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 "protected4"
run_dump_test "protected5"
run_dump_test "protected6a"
run_dump_test "protected6b"
run_dump_test "protected7"
run_dump_test "tlspie1"
run_dump_test "tlspie2"
run_dump_test "tlspie3a"
run_dump_test "tlspie3b"
run_dump_test "tlspie3c"
run_dump_test "nogot1"
run_dump_test "nogot2"
run_dump_test "discarded1"
run_dump_test "pr12718"
run_dump_test "pr12921"
run_dump_test "pr12570a"
run_dump_test "pr12570b"
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 "mov1a"
run_dump_test "mov1b"
run_dump_test "mov2a"
run_dump_test "mov2b"
run_dump_test "mov3"
run_dump_test "branch1"
run_dump_test "call1"
run_dump_test "call2"
run_dump_test "call3a"
run_dump_test "call3b"
run_dump_test "call3c"
run_dump_test "call3d"
run_dump_test "call3e"
run_dump_test "call3f"
run_dump_test "call3g"
run_dump_test "call3h"
run_dump_test "jmp1"
run_dump_test "jmp2"
run_dump_test "ljmp1"
run_dump_test "ljmp2"
run_dump_test "load1"
run_dump_test "load2"
run_dump_test "load3"
run_dump_test "load4a"
run_dump_test "load4b"
run_dump_test "load5a"
run_dump_test "load5b"
run_dump_test "load6"
run_dump_test "load7"
run_dump_test "pr19175"
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-1h"
run_dump_test "pr19636-1i"
run_dump_test "pr19636-1j"
run_dump_test "pr19636-1k"
run_dump_test "pr19636-1l"
run_dump_test "pr19636-2a"
run_dump_test "pr19636-2b"
run_dump_test "pr19636-2c"
run_dump_test "pr19636-2d"
run_dump_test "pr19636-2e"
run_dump_test "pr19636-3a"
run_dump_test "pr19636-3b"
run_dump_test "pr19636-3c"
run_dump_test "pr19636-3d"
run_dump_test "pr19636-3e"
run_dump_test "pr19636-3f"
run_dump_test "pr19636-3g"
run_dump_test "pr19636-3h"
run_dump_test "pr19636-3i"
run_dump_test "pr19636-4a"
run_dump_test "pr19636-4b"
run_dump_test "pr19636-4c"
run_dump_test "pr19636-4d"
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-2a"
run_dump_test "pr19609-2b"
run_dump_test "pr19609-2c"
run_dump_test "undefweaka"
run_dump_test "undefweakb"
run_dump_test "pr19539"
run_dump_test "pr20117"
run_dump_test "pr20244-1a"
run_dump_test "pr20244-1b"
run_dump_test "pr20244-1c"
run_dump_test "pr20244-2a"
run_dump_test "pr20244-2b"
run_dump_test "pr20244-2c"
run_dump_test "pr20244-2d"
run_dump_test "pr20244-4a"
run_dump_test "pr20244-4b"
run_dump_test "pr20244-4c"
run_dump_test "pr20253-3"
run_dump_test "pr20253-4a"
run_dump_test "pr20253-4b"
run_dump_test "pr20253-4c"
run_dump_test "pr20253-5"
run_dump_test "pr20515"
run_dump_test "property-x86-3"
run_dump_test "property-x86-4a"
run_dump_test "property-x86-4b"
run_dump_test "property-x86-5"
run_dump_test "property-x86-6"
run_dump_test "property-x86-ibt1a"
run_dump_test "property-x86-ibt1b"
run_dump_test "property-x86-ibt2"
run_dump_test "property-x86-ibt3a"
run_dump_test "property-x86-ibt3b"
run_dump_test "property-x86-ibt4"
run_dump_test "property-x86-ibt5"
run_dump_test "property-x86-shstk1a"
run_dump_test "property-x86-shstk1b"
run_dump_test "property-x86-shstk2"
run_dump_test "property-x86-shstk3a"
run_dump_test "property-x86-shstk3b"
run_dump_test "property-x86-shstk4"
run_dump_test "property-x86-shstk5"
run_dump_test "property-x86-cet1"
run_dump_test "property-x86-cet2a"
run_dump_test "property-x86-cet2b"
run_dump_test "property-x86-cet3a"
run_dump_test "property-x86-cet3b"
run_dump_test "property-x86-cet4a"
run_dump_test "property-x86-cet4b"
run_dump_test "property-x86-cet5a"
run_dump_test "property-x86-cet5b"
run_dump_test "property-x86-cet6"
run_dump_test "pie1"
run_dump_test "pr21884"
run_dump_test "pr22115-1a"
run_dump_test "pr22115-1b"
run_dump_test "pr22115-1c"
run_dump_test "pr22115-1d"
run_dump_test "pr22135"
run_dump_test "pr22782"
run_dump_test "pr22929"
run_dump_test "pr23189"
run_dump_test "pr23194"
run_dump_test "pr23372a"
run_dump_test "pr23372b"
run_dump_test "pr23372c"
run_dump_test "pr23372d"
run_dump_test "pr23486a"
run_dump_test "pr23486b"
run_dump_test "pr23486c"
run_dump_test "pr23486d"
run_dump_test "pr23854"
run_dump_test "pr23930"
run_dump_test "pr24322a"
run_dump_test "pr24322b"
run_dump_test "align-branch-1"
run_dump_test "pr26018"
run_dump_test "pr26263"
run_dump_test "pr26711-1"
run_dump_test "pr26711-2"
run_dump_test "pr26711-3"
run_dump_test "property-x86-isa1"
run_dump_test "property-x86-isa2"
run_dump_test "property-x86-isa3"
run_dump_test "property-x86-isa4"
run_dump_test "pr26869"
run_dump_test "code16"

if { !([istarget "i?86-*-linux*"]
       || [istarget "i?86-*-gnu*"]
       || [istarget "x86_64-*-linux*"]) } {
    set ASFLAGS "$saved_ASFLAGS"
    return
}

run_dump_test "compressed1"
run_dump_test "pr12627"
run_dump_test "pr13302"
run_dump_test "pr14215"
run_dump_test "pr17057"
run_dump_test "pr17935-1"
run_dump_test "pr17935-2"
run_dump_test "pr18801a"
run_dump_test "pr18801b"
run_dump_test "ifunc-textrel-1a"
run_dump_test "ifunc-textrel-1b"
run_dump_test "ifunc-textrel-2a"
run_dump_test "ifunc-textrel-2b"
run_dump_test "pr18815"
run_dump_test "pr19939a"
run_dump_test "pr19939b"
run_dump_test "tlsdesc2"
run_dump_test "report-reloc-1"
run_dump_test "pr27998a"
run_dump_test "pr27998b"

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

    if { [string match "*-fPIE*" $cflags]
	 && ![string match "*-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" \
	    "-Wa,-mrelax-relocations=yes" \
	    { dummy.s } \
	    {} \
	    "libpr19704a.so" \
	] \
	[list \
	    "Build libpr19704b.so" \
	    "-shared -Wl,-soname,libpr19704.so" \
	    "-fPIC -Wa,-mrelax-relocations=yes" \
	    { 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 -Wl,-R,tmpdir" \
	    "-Wa,-mrelax-relocations=yes" \
	    { 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
    }
}

# Must be Linux native with the C compiler
if { [isnative]
     && [istarget "i?86-*-linux*"]
     && [check_compiler_available] } {
    run_cc_link_tests [list \
	[list \
	    "Build plt-lib.so" \
	    "-shared" \
	    "-fPIC -Wa,-mrelax-relocations=yes" \
	    { plt-lib.c } \
	    {} \
	    "libplt-lib.so" \
	] \
	[list \
	    "Build libplt-main1.a" \
	    "" \
	    "-fPIC -Wa,-mrelax-relocations=yes,-mrelax-relocations=yes" \
	    { plt-main1.c } \
	    {{readelf {-Wr} plt-main1.rd}} \
	    "libplt-main1.a" \
	] \
	[list \
	    "Build libplt-main2.a" \
	    "" \
	    "-fPIC -Wa,-mrelax-relocations=yes,-mrelax-relocations=yes" \
	    { plt-main2.c } \
	    {{readelf {-Wr} plt-main2.rd}} \
	    "libplt-main2.a" \
	] \
	[list \
	    "Build libplt-main3.a" \
	    "" \
	    "-fPIC -Wa,-mrelax-relocations=yes,-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,-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" \
	    "-Wa,-mrelax-relocations=yes" \
	    { 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 -Wa,-mrelax-relocations=yes" \
	    { plt-main5.c } \
	    {{readelf {-Wr} plt-main.rd}} \
	    "plt-main" \
	] \
	[list \
	    "Build copyreloc-lib.so" \
	    "-shared" \
	    "-fPIC -Wa,-mrelax-relocations=yes" \
	    { copyreloc-lib.c } \
	    {} \
	    "copyreloc-lib.so" \
	] \
	[list \
	    "Build libcopyreloc-main.a" \
	    "" \
	    "-Wa,-mrelax-relocations=yes" \
	    { copyreloc-main.S } \
	    {} \
	    "libcopyreloc-main.a" \
	] \
	[list \
	    "Build copyreloc-main with PIE and GOTOFF (1)" \
	    "tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \
	    "-Wa,-mrelax-relocations=yes" \
	    { dummy.s } \
	    {{readelf {-Wr} copyreloc-main1.rd}} \
	    "copyreloc-main" \
	] \
	[list \
	    "Build copyreloc-main with PIE and GOTOFF (2)" \
	    "tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \
	    "-Wa,-mrelax-relocations=yes" \
	    { dummy.s } \
	    {{readelf {-Wr} copyreloc-main2.rd}} \
	    "copyreloc-main" \
	] \
	[list \
	    "Build pr17689.so" \
	    "-shared" \
	    "-fPIC -Wa,-mrelax-relocations=yes" \
	    { pr17689a.c } \
	    {} \
	    "pr17689.so" \
	] \
	[list \
	    "Build pr17689.so with -z now" \
	    "-shared -Wl,-z,now" \
	    "-fPIC -Wa,-mrelax-relocations=yes" \
	    { pr17689a.c } \
	    {{readelf {-Wr} pr17689now.rd}} \
	    "pr17689now.so" \
	] \
	[list \
	    "Build pr17689ver.so" \
	    "-shared -Wl,--version-script,pr17689a.t" \
	    "-fPIC -Wa,-mrelax-relocations=yes" \
	    { pr17689a.c } \
	    {} \
	    "pr17689ver.so" \
	] \
	[list \
	    "Build pr17689.a" \
	    "" \
	    "-Wa,-mrelax-relocations=yes" \
	    { pr17689b.S } \
	    {} \
	    "pr17689.a" \
	] \
	[list \
	    "Build pr17689 with PIE and GOTOFF" \
	    "tmpdir/pr17689b.o tmpdir/pr17689.so -pie" \
	    "-Wa,-mrelax-relocations=yes" \
	    { dummy.c } \
	    {{readelf {-Wr} pr17689.rd}} \
	    "pr17689" \
	] \
	[list \
	    "Build pr17689 with PIE, -z now and GOTOFF" \
	    "tmpdir/pr17689b.o tmpdir/pr17689.so -pie -Wl,-z,now" \
	    "-Wa,-mrelax-relocations=yes" \
	    { dummy.c } \
	    {{readelf {-Wr} pr17689now.rd}} \
	    "pr17689now" \
	] \
	[list \
	    "Build pr17689ver with PIE and GOTOFF" \
	    "tmpdir/pr17689b.o tmpdir/pr17689ver.so -pie" \
	    "-Wa,-mrelax-relocations=yes" \
	    { dummy.c } \
	    {{readelf {-Wr} pr17689ver.rd}} \
	    "pr17689ver" \
	] \
	[list \
	    "Build pr17827 with PIE and GOTOFF" \
	    "tmpdir/pr17689b.o tmpdir/pr17689.so -pie" \
	    "-Wa,-mrelax-relocations=yes" \
	    { dummy.c } \
	    {{readelf {-Wr} pr17827.rd}} \
	    "pr17827" \
	] \
	[list \
	    "Build pr18900.so" \
	    "-shared" \
	    "-fPIC -Wa,-mrelax-relocations=yes" \
	    { pr18900a.c } \
	    "" \
	    "pr18900.so" \
	] \
	[list \
	    "Build pr18900.o" \
	    "-r -nostdlib" \
	    "-Wa,-mrelax-relocations=yes" \
	    { pr18900b.c pr18900c.c } \
	    "" \
	    "pr18900.o" \
	] \
	[list \
	    "Build pr18900a" \
	    "tmpdir/pr18900.o tmpdir/pr18900.so" \
	    "-Wa,-mrelax-relocations=yes" \
	    { dummy.s } \
	    {{readelf {-Wrd} pr18900a.rd}} \
	    "pr18900a" \
	] \
	[list \
	    "Build pr18900b" \
	    "-Wl,--as-needed tmpdir/pr18900.o tmpdir/pr18900.so" \
	    "-Wa,-mrelax-relocations=yes" \
	    { dummy.s } \
	    {{readelf {-Wrd} pr18900b.rd}} \
	    "pr18900b" \
	] \
	[list \
	    "Build pr19031.so" \
	    "-shared" \
	    "-fPIC -Wa,-mrelax-relocations=yes" \
	    { pr19031a.c } \
	    "" \
	    "pr19031.so" \
	] \
	[list \
	    "Build got1d.so" \
	    "-shared" \
	    "-Wa,-mrelax-relocations=yes" \
	    { got1d.S } \
	    "" \
	    "got1d.so" \
	] \
	[list \
	    "Build gotpc1.o" \
	    "-r -nostdlib" \
	    "-Wa,-mrelax-relocations=yes" \
	    { got1a.S got1b.c got1c.c } \
	    "" \
	    "gotpc1.o" \
	] \
	[list \
	    "Build gotpc1" \
	    "$NOPIE_LDFLAGS -Wl,--as-needed tmpdir/gotpc1.o tmpdir/got1d.so" \
	    "-Wa,-mx86-used-note=no" \
	    { dummy.s } \
	    {{objdump {-dw} got1.dd}} \
	    "got1" \
	] \
	[list \
	    "Build pr19319.so" \
	    "-shared" \
	    "-Wa,-mx86-used-note=no" \
	    { pr19319a.S } \
	    "" \
	    "pr19319.so" \
	] \
	[list \
	    "Build pr19319" \
	    "-pie -nostdlib -nostartfiles tmpdir/pr19319.so" \
	    "-Wa,-mrelax-relocations=yes" \
	    { pr19319b.S } \
	    {{objdump {-dw} pr19319.dd}} \
	    "pr19319" \
	] \
	[list \
	    "Build pr24276.so" \
	    "-shared -nostdlib -nostartfiles \
	     -Ltmpdir $srcdir/$subdir/pr24276.dso" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr19319b.S } \
	    {{warning_output pr24276.warn}} \
	    "pr24276.so" \
	] \
	[list \
	    "Build property 1" \
	    "" \
	    "-Wa,-mx86-used-note=no" \
	    {pass.c property-no-copy.S} \
	    {{readelf {-n} property-1.r}} \
	    "property-1" \
	] \
	[list \
	    "Build property 1 (.o)" \
	    "-r -nostdlib" \
	    "-Wa,-mx86-used-note=yes" \
	    {pass.c property-no-copy.S} \
	    {{readelf {-n} property-1a.r}} \
	    "property-1.o" \
	] \
	[list \
	    "Build property 1 (.so)" \
	    "-shared" \
	    "-fPIC -Wa,-mx86-used-note=no" \
	    {pass.c property-no-copy.S} \
	    {{readelf {-n} property-1.r}} \
	    "property-1.so" \
	] \
	[list \
	    "Build property 2" \
	    "" \
	    "-Wa,-mx86-used-note=no" \
	    {pass.c property-stack.S} \
	    {{readelf {-n} property-2.r}} \
	    "property-2" \
	] \
	[list \
	    "Build property 2 (.o)" \
	    "-r -nostdlib" \
	    "-Wa,-mx86-used-note=yes" \
	    {pass.c property-stack.S} \
	    {{readelf {-n} property-2a.r}} \
	    "property-2.o" \
	] \
	[list \
	    "Build property 2 (.so)" \
	    "-shared" \
	    "-fPIC -Wa,-mx86-used-note=no" \
	    {pass.c property-stack.S} \
	    {{readelf {-n} property-2.r}} \
	    "property-2.so" \
	] \
	[list \
	    "Build property 3" \
	    "" \
	    "-Wa,-mx86-used-note=no" \
	    {pass.c property-stack.S property-x86-1.S} \
	    {{readelf {-n} property-3.r}} \
	    "property-3" \
	] \
	[list \
	    "Build property 3 (.o)" \
	    "-r -nostdlib" \
	    "-Wa,-mx86-used-note=yes" \
	    {pass.c property-x86-1.S property-stack.S} \
	    {{readelf {-n} property-3a.r}} \
	    "property-3.o" \
	] \
	[list \
	    "Build property 3 (.so)" \
	    "-shared" \
	    "-fPIC -Wa,-mx86-used-note=no" \
	    {property-x86-1.S pass.c property-stack.S} \
	    {{readelf {-n} property-3.r}} \
	    "property-3.so" \
	] \
	[list \
	    "Build property 4" \
	    "" \
	    "-Wa,-mx86-used-note=no" \
	    {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" \
	    "-Wa,-mx86-used-note=yes" \
	    {pass.c property-x86-2.S property-x86-1.S property-stack.S} \
	    {{readelf {-n} property-4a.r}} \
	    "property-4.o" \
	] \
	[list \
	    "Build property 4 (.so)" \
	    "-shared" \
	    "-fPIC -Wa,-mx86-used-note=no" \
	    {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" \
	    "-Wa,-mx86-used-note=no" \
	    {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" \
	    "-Wa,-mx86-used-note=no" \
	    {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" \
	    "-Wa,-mx86-used-note=yes" \
	    {pass.c property-x86-2.S property-x86-1.S property-stack.S} \
	    {{readelf {-n} property-5a.r}} \
	    "property-5.o" \
	] \
	[list \
	    "Build property 5 (.so)" \
	    "-shared -Wl,-z,stack-size=0x900000" \
	    "-fPIC -Wa,-mx86-used-note=no" \
	    {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 -Wa,-mx86-used-note=no" \
	    {property-6a.c property-6c.S} \
	    {{readelf {-n} property-6.r}} \
	    "property-6.so" \
	] \
	[list \
	    "Build property-6.o" \
	    "-r -nostdlib" \
	    "-Wa,-mx86-used-note=yes" \
	    {property-6b.c property-stack.S} \
	    {{readelf {-n} property-2a.r}} \
	    "property-6.o" \
	] \
	[list \
	    "Build property-6" \
	    "-Wl,--as-needed tmpdir/property-6.o tmpdir/property-6.so" \
	    "-Wa,-mx86-used-note=no" \
	    { dummy.s } \
	    {{readelf {-n} property-2.r}} \
	    "property-6" \
	] \
	[list \
	    "Build property 7a (.o)" \
	    "-r -nostdlib" \
	    "-Wa,-mx86-used-note=yes" \
	    {property-unsorted-1.S} \
	    {{readelf {-n} property-7a.r}} \
	    "property-7a.o" \
	] \
	[list \
	    "Build property 7b (.o)" \
	    "-r -nostdlib" \
	    "-Wa,-mx86-used-note=yes" \
	    {property-unsorted-2.S} \
	    {{readelf {-n} property-7a.r}} \
	    "property-7b.o" \
	] \
    ]

    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" \
	    "-Wa,-mx86-used-note=yes" \
	    { 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" \
	    "-Wa,-mx86-used-note=yes" \
	    { plt-main5.c } \
	    "plt-main-pie" \
	    "plt-main.out" \
	    "-fPIC" \
	] \
	[list \
	    "Run copyreloc-main with PIE and GOTOFF" \
	    "-Wl,--as-needed tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.s } \
	    "copyreloc-main" \
	    "copyreloc-main.out" \
	] \
	[list \
	    "Run pr17689 with PIE and GOTOFF" \
	    "tmpdir/pr17689b.o tmpdir/pr17689.so -pie" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.c } \
	    "pr17689" \
	    "pr17689.out" \
	] \
	[list \
	    "Run pr17689 with PIE, -z now and GOTOFF" \
	    "tmpdir/pr17689b.o tmpdir/pr17689.so -pie -z now" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.c } \
	    "pr17689now" \
	    "pr17689.out" \
	] \
	[list \
	    "Run pr17689ver with PIE and GOTOFF" \
	    "tmpdir/pr17689b.o tmpdir/pr17689ver.so -pie" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.c } \
	    "pr17689ver" \
	    "pr17689.out" \
	] \
	[list \
	    "Run pr18900" \
	    "tmpdir/pr18900.o tmpdir/pr18900.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.s } \
	    "pr18900" \
	    "pr18900.out" \
	] \
	[list \
	    "Run pr19031" \
	    "$NOPIE_LDFLAGS tmpdir/pr19031.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr19031b.S pr19031c.c } \
	    "pr19031" \
	    "pr19031.out" \
	    "$NOPIE_CFLAGS" \
	] \
	[list \
	    "Run got1" \
	    "$NOPIE_LDFLAGS tmpdir/got1d.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { got1a.S got1b.c got1c.c } \
	    "got1" \
	    "got1.out" \
	] \
	[list \
	    "Run property 1" \
	    "" \
	    "-Wa,-mx86-used-note=yes" \
	    {pass.c property-no-copy.S} \
	    "property-1" "pass.out" \
	] \
	[list \
	    "Run property 1 (PIE)" \
	    "-pie" \
	    "-Wa,-mx86-used-note=yes" \
	    {pass.c property-no-copy.S} \
	    "property-1-pie" "pass.out" "-fPIE" \
	] \
	[list \
	    "Run property 1 (static)" \
	    "-static" \
	    "-Wa,-mx86-used-note=yes" \
	    {pass.c property-no-copy.S} \
	    "property-1-static" "pass.out" \
	] \
	[list \
	    "Run property 2" \
	    "" \
	    "-Wa,-mx86-used-note=yes" \
	    {pass.c property-stack.S} \
	    "property-2" "pass.out" \
	] \
	[list \
	    "Run property 2 (PIE)" \
	    "-pie" \
	    "-Wa,-mx86-used-note=yes" \
	    {pass.c property-stack.S} \
	    "property-2-pie" "pass.out" "-fPIE" \
	] \
	[list \
	    "Run property 2 (static)" \
	    "-static" \
	    "-Wa,-mx86-used-note=yes" \
	    {pass.c property-stack.S} \
	    "property-3-static" "pass.out" \
	] \
    ]

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

# Must be native with the C compiler and working IFUNC support,
if { [isnative]
     && [check_ifunc_available]
     && [istarget "i?86-*-*"]
     && [check_compiler_available] } {
    run_cc_link_tests [list \
	[list \
	    "Build ifunc-1a.o ifunc-1b.o ifunc-1c.o ifunc-1d.o" \
	    "" \
	    "-fPIC -O2 -g -Wa,-mx86-used-note=yes" \
	    { ifunc-1a.c ifunc-1b.S ifunc-1c.S ifunc-1d.S } \
	] \
	[list \
	    "Build pr21168a.o" \
	    "" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr21168a.c } \
	] \
	[list \
	    "Build pr21168.so" \
	    "-shared" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr21168b.S } \
	    "" \
	    "pr21168.so" \
	] \
    ]

    run_ld_link_exec_tests [list \
	[list \
	    "Run ifunc-1a" \
	    "tmpdir/ifunc-1a.o tmpdir/ifunc-1b.o \
	     tmpdir/ifunc-1c.o tmpdir/ifunc-1d.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.c } \
	    "ifunc-1a" \
	    "pass.out" \
	] \
	[list \
	    "Run ifunc-1b" \
	    "--static tmpdir/ifunc-1a.o tmpdir/ifunc-1b.o \
	    tmpdir/ifunc-1c.o tmpdir/ifunc-1d.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.c } \
	    "ifunc-1b" \
	    "pass.out" \
	] \
	[list \
	    "Run pr21168" \
	    "tmpdir/pr21168a.o tmpdir/pr21168.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.c } \
	    "pr21168" \
	    "pass.out" \
	] \
    ]

    if { [istarget "i?86-*-linux*"] } {
	run_cc_link_tests [list \
	    [list \
		"Build pr21168.so with -z ibtplt" \
		"-shared -Wl,-z,ibtplt" \
		"-Wa,-mx86-used-note=yes" \
		{ pr21168b.S } \
		"" \
		"pr21168-ibt.so" \
	    ] \
	    [list \
		"Build ifunc-1a with -z ibtplt" \
		"-Wl,-z,ibtplt $NOPIE_LDFLAGS tmpdir/ifunc-1a.o \
		 tmpdir/ifunc-1b.o tmpdir/ifunc-1c.o tmpdir/ifunc-1d.o" \
		"-Wa,-mx86-used-note=yes" \
		{ dummy.c } \
		{{objdump {-dw} plt-main-ibt.dd}} \
		"ifunc-1a-ibt" \
	    ] \
	    [list \
		"Build ifunc-1a with PIE -z ibtplt" \
		"-Wl,-z,ibtplt -pie tmpdir/ifunc-1a.o \
		 tmpdir/ifunc-1b.o tmpdir/ifunc-1c.o tmpdir/ifunc-1d.o" \
		"-Wa,-mx86-used-note=yes" \
		{ dummy.c } \
		{{objdump {-dw} plt-pie-ibt.dd}} \
		"ifunc-1a-pie-ibt" \
	    ] \
	]

	run_ld_link_exec_tests [list \
	    [list \
		"Run ifunc-1a with -z ibtplt" \
		"-Wl,-z,ibtplt $NOPIE_LDFLAGS tmpdir/ifunc-1a.o \
		 tmpdir/ifunc-1b.o tmpdir/ifunc-1c.o tmpdir/ifunc-1d.o" \
		"-Wa,-mx86-used-note=yes" \
		{ dummy.c } \
		"ifunc-1a-ibt" \
		"pass.out" \
	    ] \
	    [list \
		"Run ifunc-1a with PIE -z ibtplt" \
		"-Wl,-z,ibtplt -pie tmpdir/ifunc-1a.o \
		 tmpdir/ifunc-1b.o tmpdir/ifunc-1c.o tmpdir/ifunc-1d.o" \
		"-Wa,-mx86-used-note=yes" \
		{ dummy.c } \
		"ifunc-1a-pie-ibt" \
		"pass.out" \
	    ] \
	    [list \
		"Run pr21168 with -z ibtplt" \
		"tmpdir/pr21168a.o tmpdir/pr21168-ibt.so" \
		"-Wa,-mx86-used-note=yes" \
		{ dummy.c } \
		"pr21168-ibt" \
		"pass.out" \
	    ] \
	]
    }
}

# Must be native with the C compiler.
if { [isnative]
     && [istarget "i?86-*-*"]
     && [check_compiler_available] } {
    run_cc_link_tests [list \
	[list \
	    "Build pr22001-1.so" \
	    "-shared -Wl,-z,notext" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr22001-1a.c } \
	    {} \
	    "pr22001-1.so" \
	] \
	[list \
	    "Build pr21997-1.so" \
	    "-shared" \
	    "-Wa,-mx86-used-note=yes" \
	    { property-stack.S property-no-copy.S pr21997-1a.S } \
	    {} \
	    "pr21997-1.so" \
	] \
	[list \
	    "Build pr22842.so" \
	    "-shared" \
	    "-fPIC -Wa,-mx86-used-note=yes" \
	    { pr22842a.c } \
	    {} \
	    "pr22842.so" \
	] \
    ]

    run_ld_link_exec_tests [list \
	[list \
	    "Run weakundef1 without PIE" \
	    "$NOPIE_LDFLAGS" \
	    "-Wa,-mx86-used-note=yes" \
	    { weakundef1.c } \
	    "weakundef1pie" \
	    "pass.out" \
	    "$NOPIE_CFLAGS" \
	] \
	[list \
	    "Run pr22001-1" \
	    "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext tmpdir/pr22001-1.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr22001-1b.c } \
	    "pr22001-1" \
	    "pass.out" \
	    "$NOPIE_CFLAGS" \
	] \
	[list \
	    "Run pr22001-1 (PIE 1)" \
	    "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr22001-1c.S } \
	    "pr22001-1-pie-1" \
	    "pass.out" \
	] \
	[list \
	    "Run pr22001-1 (PIE 2)" \
	    "-pie -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr22001-1c.S } \
	    "pr22001-1-pie-2" \
	    "pass.out" \
	] \
	[list \
	    "Run pr22001-1 (PIC 1)" \
	    "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr22001-1b.c } \
	    "pr22001-1-pic-1" \
	    "pass.out" \
	    "-fPIC" \
	] \
	[list \
	    "Run pr22001-1 (PIC 2)" \
	    "-pie -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr22001-1b.c } \
	    "pr22001-1-pic-2" \
	    "pass.out" \
	    "-fPIC" \
	] \
	[list \
	    "Run pr21997-1" \
	    "$NOPIE_LDFLAGS -Wl,--no-as-needed,-z,notext tmpdir/pr21997-1.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr21997-1b.c } \
	    "pr21997-1" \
	    "pass.out" \
	    "$NOPIE_CFLAGS" \
	] \
	[list \
	    "Run pr21997-1 (PIC 1)" \
	    "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr21997-1b.c } \
	    "pr21997-1-pic-1" \
	    "pass.out" \
	    "-fPIC" \
	] \
	[list \
	    "Run pr21997-1 (PIC 2)" \
	    "-pie -Wl,--no-as-needed tmpdir/pr21997-1.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr21997-1b.c } \
	    "pr21997-1-pic-2" \
	    "pass.out" \
	    "-fPIC" \
	] \
	[list \
	    "Run pr21997-1 (PIE 1)" \
	    "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr21997-1c.S } \
	    "pr21997-1-pie-1" \
	    "pass.out" \
	] \
	[list \
	    "Run pr21997-1 (PIE 2)" \
	    "-pie -Wl,--no-as-needed tmpdir/pr21997-1.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr21997-1c.S } \
	    "pr21997-1-pie-2" \
	    "pass.out" \
	] \
	[list \
	    "Build pr22842" \
	    "-pie -Wl,--no-as-needed tmpdir/pr22842.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr22842b.S } \
	    "pr22842" \
	    "pass.out" \
	] \
	[list \
	    "Run pr23997" \
	    "" \
	    "" \
	    { ../ld-x86-64/pr23997a.s ../ld-x86-64/pr23997b.c \
	      ../ld-x86-64/pr23997c.c } \
	    "pr23997" \
	    "pass.out" \
	] \
    ]

    if { [at_least_gcc_version 5 0] } {
	run_ld_link_exec_tests [list \
	    [list \
		"Run weakundef1 with PIE" \
		"-pie" \
		"-Wa,-mx86-used-note=yes" \
		{ weakundef1.c } \
		"weakundef1pie" \
		"pass.out" \
		"-fPIE" \
	    ] \
	]
    }
}

if { !([istarget "i?86-*-linux*"]
       || [istarget "x86_64-*-linux*"]) } {
    set ASFLAGS "$saved_ASFLAGS"
    return
}

run_ld_link_tests [list \
    [list \
	"basic PLT generation (non-PIC, -z now)" \
	"-z now -melf_i386 --hash-style=sysv \
	 -z noseparate-code tmpdir/libpltlib.so" \
	"" \
	"--32" \
	{plt2.s} \
	{{readelf -SW plt2.rd} {objdump -dwr plt2.dd}} \
	"plt2" \
    ] \
    [list \
	"basic PLT generation (PIC, -z now)" \
	"-z now -shared -melf_i386 tmpdir/libpltlib.so" \
	"" \
	"--32 -mx86-used-note=yes" \
	{plt-pic.s} \
	{{objdump -dwr plt-pic2.dd}} \
	"plt-pic2.so" \
    ] \
    [list \
	"Build pr21626.so" \
	"-shared -melf_i386" \
	"" \
	"--32 -mx86-used-note=yes" \
	{property-x86-3.s} \
	"" \
	"pr21626.so" \
    ] \
    [list \
	"Build pr21626" \
	"-melf_i386 tmpdir/pr21626.so" \
	"" \
	"--32 -mx86-used-note=yes" \
	{start.s foo.s} \
	"" \
	"pr21626" \
    ] \
]

# Linux only tests
run_dump_test "pltgot-1"
run_dump_test "pltgot-2"
run_dump_test "pr20830"
run_dump_test "ibt-plt-1"
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-3a"
run_dump_test "ibt-plt-3b"
run_dump_test "ibt-plt-3c"
run_dump_test "ibt-plt-3d"

set ASFLAGS "$saved_ASFLAGS"
