mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
sim: testsuite: setup per-port toolchain settings for multitarget build
Gas does not support multitarget builds -- it still only supports a single input & output format. ld is a bit better, but requires manual flags to select the right output. This makes it impossible to run the complete testsuite in a multitarget build. To address this limitation, create a suite of FOR_TARGET variables so these can be set to precompiled as & ld programs. It requires a bit of setup ahead of time, but it's a one-time cost, and makes running the full testsuite at once much easier.
This commit is contained in:
@ -1073,6 +1073,38 @@ AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
AR_FOR_BUILD = @AR_FOR_BUILD@
|
||||
AS_FOR_TARGET_AARCH64 = @AS_FOR_TARGET_AARCH64@
|
||||
AS_FOR_TARGET_ARM = @AS_FOR_TARGET_ARM@
|
||||
AS_FOR_TARGET_AVR = @AS_FOR_TARGET_AVR@
|
||||
AS_FOR_TARGET_BFIN = @AS_FOR_TARGET_BFIN@
|
||||
AS_FOR_TARGET_BPF = @AS_FOR_TARGET_BPF@
|
||||
AS_FOR_TARGET_CR16 = @AS_FOR_TARGET_CR16@
|
||||
AS_FOR_TARGET_CRIS = @AS_FOR_TARGET_CRIS@
|
||||
AS_FOR_TARGET_D10V = @AS_FOR_TARGET_D10V@
|
||||
AS_FOR_TARGET_ERC32 = @AS_FOR_TARGET_ERC32@
|
||||
AS_FOR_TARGET_EXAMPLE_SYNACOR = @AS_FOR_TARGET_EXAMPLE_SYNACOR@
|
||||
AS_FOR_TARGET_FRV = @AS_FOR_TARGET_FRV@
|
||||
AS_FOR_TARGET_FT32 = @AS_FOR_TARGET_FT32@
|
||||
AS_FOR_TARGET_H8300 = @AS_FOR_TARGET_H8300@
|
||||
AS_FOR_TARGET_IQ2000 = @AS_FOR_TARGET_IQ2000@
|
||||
AS_FOR_TARGET_LM32 = @AS_FOR_TARGET_LM32@
|
||||
AS_FOR_TARGET_M32C = @AS_FOR_TARGET_M32C@
|
||||
AS_FOR_TARGET_M32R = @AS_FOR_TARGET_M32R@
|
||||
AS_FOR_TARGET_M68HC11 = @AS_FOR_TARGET_M68HC11@
|
||||
AS_FOR_TARGET_MCORE = @AS_FOR_TARGET_MCORE@
|
||||
AS_FOR_TARGET_MICROBLAZE = @AS_FOR_TARGET_MICROBLAZE@
|
||||
AS_FOR_TARGET_MIPS = @AS_FOR_TARGET_MIPS@
|
||||
AS_FOR_TARGET_MN10300 = @AS_FOR_TARGET_MN10300@
|
||||
AS_FOR_TARGET_MOXIE = @AS_FOR_TARGET_MOXIE@
|
||||
AS_FOR_TARGET_MSP430 = @AS_FOR_TARGET_MSP430@
|
||||
AS_FOR_TARGET_OR1K = @AS_FOR_TARGET_OR1K@
|
||||
AS_FOR_TARGET_PPC = @AS_FOR_TARGET_PPC@
|
||||
AS_FOR_TARGET_PRU = @AS_FOR_TARGET_PRU@
|
||||
AS_FOR_TARGET_RISCV = @AS_FOR_TARGET_RISCV@
|
||||
AS_FOR_TARGET_RL78 = @AS_FOR_TARGET_RL78@
|
||||
AS_FOR_TARGET_RX = @AS_FOR_TARGET_RX@
|
||||
AS_FOR_TARGET_SH = @AS_FOR_TARGET_SH@
|
||||
AS_FOR_TARGET_V850 = @AS_FOR_TARGET_V850@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
@ -1082,6 +1114,38 @@ CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CC_FOR_BUILD = @CC_FOR_BUILD@
|
||||
CC_FOR_TARGET_AARCH64 = @CC_FOR_TARGET_AARCH64@
|
||||
CC_FOR_TARGET_ARM = @CC_FOR_TARGET_ARM@
|
||||
CC_FOR_TARGET_AVR = @CC_FOR_TARGET_AVR@
|
||||
CC_FOR_TARGET_BFIN = @CC_FOR_TARGET_BFIN@
|
||||
CC_FOR_TARGET_BPF = @CC_FOR_TARGET_BPF@
|
||||
CC_FOR_TARGET_CR16 = @CC_FOR_TARGET_CR16@
|
||||
CC_FOR_TARGET_CRIS = @CC_FOR_TARGET_CRIS@
|
||||
CC_FOR_TARGET_D10V = @CC_FOR_TARGET_D10V@
|
||||
CC_FOR_TARGET_ERC32 = @CC_FOR_TARGET_ERC32@
|
||||
CC_FOR_TARGET_EXAMPLE_SYNACOR = @CC_FOR_TARGET_EXAMPLE_SYNACOR@
|
||||
CC_FOR_TARGET_FRV = @CC_FOR_TARGET_FRV@
|
||||
CC_FOR_TARGET_FT32 = @CC_FOR_TARGET_FT32@
|
||||
CC_FOR_TARGET_H8300 = @CC_FOR_TARGET_H8300@
|
||||
CC_FOR_TARGET_IQ2000 = @CC_FOR_TARGET_IQ2000@
|
||||
CC_FOR_TARGET_LM32 = @CC_FOR_TARGET_LM32@
|
||||
CC_FOR_TARGET_M32C = @CC_FOR_TARGET_M32C@
|
||||
CC_FOR_TARGET_M32R = @CC_FOR_TARGET_M32R@
|
||||
CC_FOR_TARGET_M68HC11 = @CC_FOR_TARGET_M68HC11@
|
||||
CC_FOR_TARGET_MCORE = @CC_FOR_TARGET_MCORE@
|
||||
CC_FOR_TARGET_MICROBLAZE = @CC_FOR_TARGET_MICROBLAZE@
|
||||
CC_FOR_TARGET_MIPS = @CC_FOR_TARGET_MIPS@
|
||||
CC_FOR_TARGET_MN10300 = @CC_FOR_TARGET_MN10300@
|
||||
CC_FOR_TARGET_MOXIE = @CC_FOR_TARGET_MOXIE@
|
||||
CC_FOR_TARGET_MSP430 = @CC_FOR_TARGET_MSP430@
|
||||
CC_FOR_TARGET_OR1K = @CC_FOR_TARGET_OR1K@
|
||||
CC_FOR_TARGET_PPC = @CC_FOR_TARGET_PPC@
|
||||
CC_FOR_TARGET_PRU = @CC_FOR_TARGET_PRU@
|
||||
CC_FOR_TARGET_RISCV = @CC_FOR_TARGET_RISCV@
|
||||
CC_FOR_TARGET_RL78 = @CC_FOR_TARGET_RL78@
|
||||
CC_FOR_TARGET_RX = @CC_FOR_TARGET_RX@
|
||||
CC_FOR_TARGET_SH = @CC_FOR_TARGET_SH@
|
||||
CC_FOR_TARGET_V850 = @CC_FOR_TARGET_V850@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
|
||||
CGEN_MAINT = @CGEN_MAINT@
|
||||
@ -1114,6 +1178,38 @@ INSTOBJEXT = @INSTOBJEXT@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
LD_FOR_TARGET_AARCH64 = @LD_FOR_TARGET_AARCH64@
|
||||
LD_FOR_TARGET_ARM = @LD_FOR_TARGET_ARM@
|
||||
LD_FOR_TARGET_AVR = @LD_FOR_TARGET_AVR@
|
||||
LD_FOR_TARGET_BFIN = @LD_FOR_TARGET_BFIN@
|
||||
LD_FOR_TARGET_BPF = @LD_FOR_TARGET_BPF@
|
||||
LD_FOR_TARGET_CR16 = @LD_FOR_TARGET_CR16@
|
||||
LD_FOR_TARGET_CRIS = @LD_FOR_TARGET_CRIS@
|
||||
LD_FOR_TARGET_D10V = @LD_FOR_TARGET_D10V@
|
||||
LD_FOR_TARGET_ERC32 = @LD_FOR_TARGET_ERC32@
|
||||
LD_FOR_TARGET_EXAMPLE_SYNACOR = @LD_FOR_TARGET_EXAMPLE_SYNACOR@
|
||||
LD_FOR_TARGET_FRV = @LD_FOR_TARGET_FRV@
|
||||
LD_FOR_TARGET_FT32 = @LD_FOR_TARGET_FT32@
|
||||
LD_FOR_TARGET_H8300 = @LD_FOR_TARGET_H8300@
|
||||
LD_FOR_TARGET_IQ2000 = @LD_FOR_TARGET_IQ2000@
|
||||
LD_FOR_TARGET_LM32 = @LD_FOR_TARGET_LM32@
|
||||
LD_FOR_TARGET_M32C = @LD_FOR_TARGET_M32C@
|
||||
LD_FOR_TARGET_M32R = @LD_FOR_TARGET_M32R@
|
||||
LD_FOR_TARGET_M68HC11 = @LD_FOR_TARGET_M68HC11@
|
||||
LD_FOR_TARGET_MCORE = @LD_FOR_TARGET_MCORE@
|
||||
LD_FOR_TARGET_MICROBLAZE = @LD_FOR_TARGET_MICROBLAZE@
|
||||
LD_FOR_TARGET_MIPS = @LD_FOR_TARGET_MIPS@
|
||||
LD_FOR_TARGET_MN10300 = @LD_FOR_TARGET_MN10300@
|
||||
LD_FOR_TARGET_MOXIE = @LD_FOR_TARGET_MOXIE@
|
||||
LD_FOR_TARGET_MSP430 = @LD_FOR_TARGET_MSP430@
|
||||
LD_FOR_TARGET_OR1K = @LD_FOR_TARGET_OR1K@
|
||||
LD_FOR_TARGET_PPC = @LD_FOR_TARGET_PPC@
|
||||
LD_FOR_TARGET_PRU = @LD_FOR_TARGET_PRU@
|
||||
LD_FOR_TARGET_RISCV = @LD_FOR_TARGET_RISCV@
|
||||
LD_FOR_TARGET_RL78 = @LD_FOR_TARGET_RL78@
|
||||
LD_FOR_TARGET_RX = @LD_FOR_TARGET_RX@
|
||||
LD_FOR_TARGET_SH = @LD_FOR_TARGET_SH@
|
||||
LD_FOR_TARGET_V850 = @LD_FOR_TARGET_V850@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBINTL_DEP = @LIBINTL_DEP@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
@ -1162,6 +1258,7 @@ SIM_INLINE = @SIM_INLINE@
|
||||
SIM_PRIMARY_TARGET = @SIM_PRIMARY_TARGET@
|
||||
SIM_RX_CYCLE_ACCURATE_FLAGS = @SIM_RX_CYCLE_ACCURATE_FLAGS@
|
||||
SIM_SUBDIRS = @SIM_SUBDIRS@
|
||||
SIM_TOOLCHAIN_VARS = @SIM_TOOLCHAIN_VARS@
|
||||
STRIP = @STRIP@
|
||||
TERMCAP_LIB = @TERMCAP_LIB@
|
||||
USE_NLS = @USE_NLS@
|
||||
@ -2701,6 +2798,7 @@ site-sim-config.exp: Makefile
|
||||
$(AM_V_GEN)( \
|
||||
echo "set builddir \"$(builddir)\""; \
|
||||
echo "set srcdir \"$(srcdir)/testsuite\""; \
|
||||
$(foreach V,$(SIM_TOOLCHAIN_VARS),echo "set $(V) \"$($(V))\"";) \
|
||||
) > $@
|
||||
|
||||
check-DEJAGNU: site.exp
|
||||
|
772
sim/configure
vendored
772
sim/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -103,6 +103,7 @@ m4_define([SIM_TARGET], [dnl
|
||||
$4
|
||||
;;
|
||||
esac
|
||||
SIM_AC_TOOLCHAIN_FOR_TARGET($2)
|
||||
AM_CONDITIONAL([SIM_ENABLE_ARCH_$2], [${sim_enable_arch_$2}])
|
||||
])
|
||||
|
||||
@ -151,6 +152,7 @@ if test "${enable_sim}" != no; then
|
||||
done
|
||||
|
||||
if test "x${enable_example_sims}" = xyes; then
|
||||
SIM_AC_TOOLCHAIN_FOR_TARGET(example-synacor)
|
||||
SIM_BUILD_TARGET([example-synacor])
|
||||
fi
|
||||
fi
|
||||
|
@ -77,3 +77,28 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
|
||||
], [AC_MSG_ERROR([C11 is required])])])
|
||||
AC_SUBST(C_DIALECT)
|
||||
])
|
||||
dnl
|
||||
SIM_TOOLCHAIN_VARS=
|
||||
AC_SUBST(SIM_TOOLCHAIN_VARS)
|
||||
AC_DEFUN([_SIM_AC_TOOLCHAIN_FOR_TARGET],
|
||||
[dnl
|
||||
AC_ARG_VAR(AS_FOR_TARGET_$2, [Assembler for $1 tests])
|
||||
AC_ARG_VAR(LD_FOR_TARGET_$2, [Linker for $1 tests])
|
||||
AC_ARG_VAR(CC_FOR_TARGET_$2, [C compiler for $1 tests])
|
||||
m4_bmatch($1, [example-], [dnl
|
||||
: "${AS_FOR_TARGET_$2:=\$(abs_builddir)/../gas/as-new}"
|
||||
: "${LD_FOR_TARGET_$2:=\$(abs_builddir)/../ld/ld-new}"
|
||||
: "${CC_FOR_TARGET_$2:=\$(CC)}"
|
||||
], [dnl
|
||||
AS_IF([test "$SIM_PRIMARY_TARGET" = "$1"], [dnl
|
||||
: "${AS_FOR_TARGET_$2:=\$(abs_builddir)/../gas/as-new}"
|
||||
: "${LD_FOR_TARGET_$2:=\$(abs_builddir)/../ld/ld-new}"
|
||||
dnl The default will be checked at test time. If it's not available, then
|
||||
dnl it is automatically skipped. So hardcoding this is safe.
|
||||
: "${CC_FOR_TARGET_$2:=${target_alias}-gcc}"
|
||||
])
|
||||
])
|
||||
AS_VAR_APPEND([SIM_TOOLCHAIN_VARS], [" AS_FOR_TARGET_$2 LD_FOR_TARGET_$2 CC_FOR_TARGET_$2"])
|
||||
])
|
||||
AC_DEFUN([SIM_AC_TOOLCHAIN_FOR_TARGET],
|
||||
[_SIM_AC_TOOLCHAIN_FOR_TARGET($1, m4_toupper(m4_translit($1, [-], [_])))])
|
||||
|
@ -28,6 +28,7 @@ site-sim-config.exp: Makefile
|
||||
$(AM_V_GEN)( \
|
||||
echo "set builddir \"$(builddir)\""; \
|
||||
echo "set srcdir \"$(srcdir)/testsuite\""; \
|
||||
$(foreach V,$(SIM_TOOLCHAIN_VARS),echo "set $(V) \"$($(V))\"";) \
|
||||
) > $@
|
||||
|
||||
check-DEJAGNU: site.exp
|
||||
|
Reference in New Issue
Block a user