old-cross-binutils/gdb/testsuite/gdb.multi/multi-arch.exp
Yao Qi 71be1fdc36 Adjust gdb.multi tests for aarch64
Multi-arch related tests under gdb.multi are to compile programs with
the same compiler but different compiler options (-m64 vs -m32).  However,
different compilers are needed to compile both aarch64 program and
arm (aarch32) program.  This patch is to adjust these test cases to
compile programs in different modes with different compiler.

When we use gcc for arm-linux target, its file name can be different,
arm-linux-gnueabihf-gcc, arm-linux-gnueabi-gcc, or arm-none-linux-gnueabi-gcc,
so I add a variable ARM_CC_FOR_TARGET, so that user can set the name
of gcc for arm-linux target on aarch64, like:

 $ make check RUNTESTFLAGS='ARM_CC_FOR_TARGET=arm-linux-gnueabihf-gcc multi-arch.exp'

gdb/testsuite:

2015-07-07  Yao Qi  <yao.qi@linaro.org>

	* gdb.multi/multi-arch-exec.exp: Set march1 and march2 to "" if target
	is aarch64.  If target is aarch64, set compiler=${ARM_CC_FOR_TARGET}
	if it exists.
	* gdb.multi/multi-arch.exp: Likewise.
2015-07-07 16:58:19 +01:00

98 lines
2.5 KiB
Text

# Copyright 2009-2015 Free Software Foundation, Inc.
# 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, see <http://www.gnu.org/licenses/>.
# Test multi-exec / multi-process features that work for all configurations,
# even ones that cannot run multiple processes simultaneously.
set testfile "multi-arch"
# The plain remote target can't do multiple inferiors.
if [target_info exists use_gdb_stub] {
return
}
# The 64-bit compile may succeed for i386-linux, but gdb won't be able
# to load the file.
if [istarget "i?86-*linux*"] {
return
}
# Can't use standard_testfile, we want executables with specialized
# names.
set exec1 "ma-hello"
set srcfile1 hello.c
set binfile1 [standard_output_file ${exec1}]
set exec2 "ma-hangout"
set srcfile2 hangout.c
set binfile2 [standard_output_file ${exec2}]
# Build two executables, one for each arch.
if [istarget "s390*-*-*"] {
set march1 "-m64"
set march2 "-m31"
} elseif { [istarget "aarch64*-*-*"] } {
set march1 ""
set march2 ""
} else {
set march1 "-m64"
set march2 "-m32"
}
if { [prepare_for_testing ${testfile}.exp ${exec1} "${srcfile1}" \
[list debug nowarnings additional_flags=${march1}]] } {
return -1
}
set options [list debug nowarnings]
if [istarget "aarch64*-*-*"] {
if {[info exists ARM_CC_FOR_TARGET]} {
lappend options "compiler=${ARM_CC_FOR_TARGET}"
} else {
unsupported "ARM compiler is not known"
return -1
}
} else {
lappend options "additional_flags=${march2}"
}
if { [prepare_for_testing ${testfile}.exp ${exec2} "${srcfile2}" \
$options]} {
return -1
}
# Start inferior 1
clean_restart ${exec1}
if ![runto_main] then {
fail "starting inferior 1"
}
# Add and start inferior 2
gdb_test "add-inferior" "Added inferior 2.*" "add empty inferior 2"
gdb_test "inferior 2" "Switching to inferior 2.*" "switch to inferior 2"
gdb_load ${binfile2}
if ![runto_main] then {
fail "starting inferior 2"
}
# Check we do have two inferiors loaded.
gdb_test "info inferiors" \
"Executable.*${exec2}.*${exec1}.*"