2013-11-13 07:46:55 +08:00
|
|
|
# Expect script for ELF MPX tests.
|
|
|
|
# Copyright 2013
|
|
|
|
# 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
|
|
|
|
}
|
|
|
|
|
|
|
|
# Only on Linux for now.
|
|
|
|
if ![istarget "x86_64-*-linux*"] {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
# Check to see if the C compiler works
|
|
|
|
if { [which $CC] == 0 } {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
set build_tests {
|
|
|
|
{"Build libmpx1a.a"
|
|
|
|
"" "-Wa,-madd-bnd-prefix -fPIC"
|
|
|
|
{mpx1a.c} {{readelf {-r --wide} mpx1a.rd}} "libmpx1a.a"}
|
|
|
|
{"Build libmpx1b.a"
|
|
|
|
"" ""
|
|
|
|
{mpx1b.c} {} "libmpx1b.a"}
|
|
|
|
{"Build libmpx1c.a"
|
|
|
|
"" "-Wa,-madd-bnd-prefix"
|
|
|
|
{mpx1c.c} {{readelf {-r --wide} mpx1c.rd}} "libmpx1c.a"}
|
2013-11-21 04:35:10 +08:00
|
|
|
{"Build libmpx2a.a"
|
|
|
|
"" "-Wa,-madd-bnd-prefix -fPIE"
|
|
|
|
{mpx2a.c} {{readelf {-r --wide} mpx2a.rd}} "libmpx2a.a"}
|
|
|
|
{"Build libmpx2b.a"
|
|
|
|
"" "-fPIE"
|
|
|
|
{mpx2b.c} {} "libmpx2b.a"}
|
|
|
|
{"Build libmpx2c.a"
|
|
|
|
"" "-Wa,-madd-bnd-prefix -fPIE"
|
|
|
|
{mpx2c.c} {{readelf {-r --wide} mpx2c.rd}} "libmpx2c.a"}
|
2013-11-13 07:46:55 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
run_cc_link_tests $build_tests
|
|
|
|
|
|
|
|
set run_tests {
|
|
|
|
{"Run mpx1"
|
|
|
|
"tmpdir/mpx1a.o tmpdir/mpx1b.o tmpdir/mpx1c.o" ""
|
|
|
|
{dummy.s} "mpx1" "mpx1.out"}
|
2013-11-21 04:35:10 +08:00
|
|
|
{"Run mpx1 with -static"
|
|
|
|
"tmpdir/mpx1a.o tmpdir/mpx1b.o tmpdir/mpx1c.o -static" ""
|
|
|
|
{dummy.s} "mpx1static" "mpx1.out"}
|
|
|
|
{"Run mpx2"
|
|
|
|
"tmpdir/mpx2a.o tmpdir/mpx2b.o tmpdir/mpx2c.o -pie" ""
|
|
|
|
{dummy.s} "mpx2" "mpx2.out"}
|
|
|
|
{"Run mpx2 with -static"
|
|
|
|
"tmpdir/mpx2a.o tmpdir/mpx2b.o tmpdir/mpx2c.o -static" ""
|
|
|
|
{dummy.s} "mpx2static" "mpx2.out"}
|
2013-11-13 07:46:55 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
run_ld_link_exec_tests [] $run_tests
|