# Expect script for i386 no-PLT tests.
#   Copyright (C) 2016-2019 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.
#

# The following tests require running the executable generated by ld,
# or enough of a build environment to create a fully linked executable.
# This is not commonly available when testing a cross-built linker.
if ![isnative] {
    return
}

if ![is_elf_format] {
    return
}

if ![istarget "i?86-*-*"] {
    return
}

# Check to see if the C compiler works
if { ![check_compiler_available] } {
    return
}

# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required.
global NOPIE_CFLAGS NOPIE_LDFLAGS

run_cc_link_tests [list \
    [list \
	"Build no-plt-func1.o no-plt-main1.o" \
	"" \
	"-fPIE -Wa,-mx86-used-note=yes" \
	{no-plt-func1.c no-plt-main1.c} \
    ] \
    [list \
	"Build no-plt-check1a.o no-plt-extern1a.o \
	 no-plt-check1b.o no-plt-extern1b.o" \
	"" \
	"-Wa,-mrelax-relocations=yes,-mx86-used-note=yes" \
	{no-plt-check1a.S no-plt-extern1a.S \
	 no-plt-check1b.S no-plt-extern1b.S } \
    ] \
    [list \
	"Build libno-plt-1a.so" \
	"-shared tmpdir/no-plt-func1.o" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	{} \
	"libno-plt-1a.so" \
    ] \
    [list \
	"Build libno-plt-1b.so" \
	"-shared tmpdir/no-plt-extern1a.o" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	{{readelf -Wr libno-plt-1b.rd} \
	 {objdump -dwrj.text libno-plt-1b.dd}} \
	"libno-plt-1b.so" \
    ] \
    [list \
	"No PLT (dynamic 1a)" \
	"$NOPIE_LDFLAGS tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	{{readelf -Wr no-plt-1a.rd} {objdump -dwrj.text no-plt-1a.dd}} \
	"no-plt-1a" \
    ] \
    [list \
	"No PLT (dynamic 1b)" \
	"tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	{{readelf -Wr no-plt-1b.rd} {objdump -dwrj.text no-plt-1b.dd}} \
	"no-plt-1b" \
    ] \
    [list \
	"No PLT (dynamic 1c)" \
	"$NOPIE_LDFLAGS tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	{{readelf -Wr no-plt-1c.rd} {objdump -dwrj.text no-plt-1c.dd}} \
	"no-plt-1c" \
    ] \
    [list \
	"No PLT (static 1d)" \
	"-static tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	{{readelf -Wr no-plt-1d.rd} {objdump -dwrj.text no-plt-1d.dd}} \
	"no-plt-1d" \
    ] \
    [list \
	"No PLT (PIE 1e)" \
	"-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	{{readelf -Wr no-plt-1e.rd} {objdump -dwrj.text no-plt-1e.dd}} \
	"no-plt-1e" \
    ] \
    [list \
	"No PLT (PIE 1f)" \
	"-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
	"-Wa,-mx86-used-note=yes" \
	{ dummy.s } \
	{{readelf -Wr no-plt-1f.rd} {objdump -dwrj.text no-plt-1f.dd}} \
	"no-plt-1f" \
    ] \
    [list \
	"No PLT (PIE 1g)" \
	"-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
	"-Wa,-mx86-used-note=yes" \
	{ dummy.s } \
	{{readelf -Wr no-plt-1g.rd} {objdump -dwrj.text no-plt-1g.dd}} \
	"no-plt-1g" \
    ] \
    [list \
	"No PLT (dynamic 1h)" \
	"$NOPIE_LDFLAGS tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/no-plt-extern1b.o" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	{{readelf -Wr no-plt-1h.rd} {objdump -dwrj.text no-plt-1h.dd}} \
	"no-plt-1h" \
    ] \
    [list \
	"No PLT (dynamic 1i)" \
	"$NOPIE_LDFLAGS tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-extern1b.o tmpdir/libno-plt-1a.so" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	{{readelf -Wr no-plt-1i.rd} {objdump -dwrj.text no-plt-1i.dd}} \
	"no-plt-1i" \
    ] \
    [list \
	"No PLT (static 1j)" \
	"-static tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/no-plt-extern1b.o" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	{{readelf -Wr no-plt-1j.rd} {objdump -dwrj.text no-plt-1j.dd}} \
	"no-plt-1j" \
    ] \
]

run_ld_link_exec_tests [list \
    [list \
	"No PLT (dynamic 1a)" \
	"tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
	"-Wa,-mx86-used-note=yes" \
	{ dummy.s } \
	"no-plt-1a" \
	"pass.out" \
    ] \
    [list \
	"No PLT (dynamic 1b)" \
	"tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
	"-Wa,-mx86-used-note=yes" \
	{ dummy.s } \
	"no-plt-1b" \
	"pass.out" \
    ] \
    [list \
	"No PLT (dynamic 1c)" \
	"tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
	"-Wa,-mx86-used-note=yes" \
	{ dummy.s } \
	"no-plt-1c" \
	"pass.out" \
    ] \
    [list \
	"No PLT (static 1d)" \
	"-static tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
	"-Wa,-mx86-used-note=yes" \
	{ dummy.s } \
	"no-plt-1d" \
	"pass.out" \
    ] \
    [list \
	"No PLT (PIE 1e)" \
	"-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
	"-Wa,-mx86-used-note=yes" \
	{ dummy.s } \
	"no-plt-1e" \
	"pass.out" \
    ] \
    [list \
	"No PLT (PIE 1f)" \
	"-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
	"-Wa,-mx86-used-note=yes" \
	{ dummy.s } \
	"no-plt-1f" \
	"pass.out" \
    ] \
    [list \
	"No PLT (PIE 1g)" \
	"-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
	"-Wa,-mx86-used-note=yes" \
	{ dummy.s } \
	"no-plt-1g" \
	"pass.out" \
    ] \
    [list \
	"No PLT (dynamic 1h)" \
	"$NOPIE_LDFLAGS tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/no-plt-extern1b.o" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	"no-plt-1h" \
	"pass.out" \
    ] \
    [list \
	"No PLT (dynamic 1i)" \
	"$NOPIE_LDFLAGS tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-extern1b.o tmpdir/libno-plt-1a.so" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	"no-plt-1i" \
	"pass.out" \
    ] \
    [list \
	"No PLT (static 1j)" \
	"-static tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
	 tmpdir/no-plt-func1.o tmpdir/no-plt-extern1b.o" \
	"-Wa,-mx86-used-note=yes" \
	{dummy.s} \
	"no-plt-1j" \
	"pass.out" \
    ] \
]

# Run-time tests which require working IFUNC support.
if { [check_ifunc_available] } {
    run_cc_link_tests [list \
	[list \
	    "Build pr20244-3a.o pr20244-3b.o pr20244-3c.o pr20244-3d.o" \
	    "" \
	    "-fPIC -O2 -g -Wa,-mx86-used-note=yes" \
	    { pr20244-3a.c pr20244-3b.S pr20244-3c.S pr20244-3d.S } \
	] \
	[list \
	    "Build pr20253-1a.o pr20253-1b.o pr20253-1c.o pr20253-1d.o" \
	    "" \
	    "-fPIE -O2 -g -Wa,-mx86-used-note=yes" \
	    { pr20253-1a.c pr20253-1b.S pr20253-1c.S pr20253-1d.S } \
	] \
	[list \
	    "Build libpr20253-1a.so" \
	    "-shared tmpdir/pr20253-1b.o \
	     tmpdir/pr20253-1c.o tmpdir/pr20253-1d.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.s } \
	    {} \
	    "libpr20253-1a.so" \
	] \
	[list \
	    "Build pr20253-2a.o pr20253-2b.o pr20253-2c.o pr20253-2d.o" \
	    "-Wa,-mx86-used-note=yes" \
	    "-fPIE -O2 -g" \
	    { pr20253-2a.c pr20253-2b.S pr20253-2c.S pr20253-2d.S } \
	] \
    ]

    run_ld_link_exec_tests [list \
	[list \
	    "Run pr20244-3a" \
	    "$NOPIE_LDFLAGS tmpdir/pr20244-3a.o tmpdir/pr20244-3b.o \
	     tmpdir/pr20244-3c.o tmpdir/pr20244-3d.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.c } \
	    "pr20244-3a" \
	    "pass.out" \
	] \
	[list \
	    "Run pr20244-3b" \
	    "--static tmpdir/pr20244-3a.o tmpdir/pr20244-3b.o \
	    tmpdir/pr20244-3c.o tmpdir/pr20244-3d.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.c } \
	    "pr20244-3b" \
	    "pass.out" \
	] \
	[list \
	    "Run pr20253-1a" \
	    "tmpdir/pr20253-1a.o tmpdir/pr20253-1b.o \
	     tmpdir/pr20253-1c.o tmpdir/pr20253-1d.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.s } \
	    "pr20253-1a" \
	    "pass.out" \
	] \
	[list \
	    "Run pr20253-1b" \
	    "--static tmpdir/pr20253-1a.o tmpdir/pr20253-1b.o \
	    tmpdir/pr20253-1c.o tmpdir/pr20253-1d.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.s } \
	    "pr20253-1b" \
	    "pass.out" \
	] \
	[list \
	    "Run pr20253-1c" \
	    "-pie tmpdir/pr20253-1a.o tmpdir/pr20253-1b.o \
	    tmpdir/pr20253-1c.o tmpdir/pr20253-1d.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.s } \
	    "pr20253-1c" \
	    "pass.out" \
	] \
	[list \
	    "Run pr20253-1d" \
	    "tmpdir/pr20253-1a.o tmpdir/libpr20253-1a.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.s } \
	    "pr20253-1d" \
	    "pass.out" \
	] \
	[list \
	    "Run pr20253-1e" \
	    "-pie tmpdir/pr20253-1a.o tmpdir/libpr20253-1a.so" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.s } \
	    "pr20253-1e" \
	    "pass.out" \
	] \
	[list \
	    "Run pr20253-1f" \
	    "$NOPIE_LDFLAGS tmpdir/pr20253-1a.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr20253-1b.S pr20253-1c.S pr20253-1d.S } \
	    "pr20253-1f" \
	    "pass.out" \
	    "-DCHECK_PLT" \
	] \
	[list \
	    "Run pr20253-1g" \
	    "--static tmpdir/pr20253-1a.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr20253-1b.S pr20253-1c.S pr20253-1d.S } \
	    "pr20253-1g" \
	    "pass.out" \
	    "-DCHECK_PLT" \
	] \
	[list \
	    "Run pr20253-2a" \
	    "$NOPIE_LDFLAGS tmpdir/pr20253-2a.o tmpdir/pr20253-2b.o \
	     tmpdir/pr20253-2c.o tmpdir/pr20253-2d.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.s } \
	    "pr20253-2a" \
	    "pass.out" \
	] \
	[list \
	    "Run pr20253-2b" \
	    "--static tmpdir/pr20253-2a.o tmpdir/pr20253-2b.o \
	    tmpdir/pr20253-2c.o tmpdir/pr20253-2d.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { dummy.s } \
	    "pr20253-2b" \
	    "pass.out" \
	] \
	[list \
	    "Run pr20253-2c" \
	    "$NOPIE_LDFLAGS tmpdir/pr20253-2a.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr20253-2b.S pr20253-2c.S pr20253-2d.S } \
	    "pr20253-2c" \
	    "pass.out" \
	    "-DCHECK_PLT" \
	] \
	[list \
	    "Run pr20253-2d" \
	    "--static tmpdir/pr20253-2a.o" \
	    "-Wa,-mx86-used-note=yes" \
	    { pr20253-2b.S pr20253-2c.S pr20253-2d.S } \
	    "pr20253-2d" \
	    "pass.out" \
	    "-DCHECK_PLT" \
	] \
    ]
}
