sim: move many common settings from CPPFLAGS to config.h

Rather than stuffing the command line with a bunch of -D flags, start
moving things to config.h which is managed by autoheader.  This makes
the makefile a bit simpler and the build output tighter, and it makes
the migration to automake easier as there are fewer vars to juggle.

We'll want to move the other options out too, but it'll take more work.
This commit is contained in:
Mike Frysinger
2016-01-09 04:09:35 -05:00
parent e19418e02e
commit ce39bd3890
96 changed files with 3571 additions and 2107 deletions

View File

@ -1,3 +1,25 @@
2016-01-10 Mike Frysinger <vapier@gentoo.org>
* acinclude.m4 (SIM_AC_COMMON): Call AC_MSG_CHECKING,
AC_DEFINE_UNQUOTED, and AC_MSG_RESULT for sim-debug. Likewise for
sim-stdio, sim-trace, and sim-profile.
(SIM_AC_OPTION_ENVIRONMENT): Likewise.
(SIM_AC_OPTION_ASSERT): Likewise.
(SIM_AC_OPTION_SMP): Likewise.
(SIM_AC_OPTION_XOR_ENDIAN): Likewise.
* configure: Regenerate.
* Make-common.in (SIM_DEBUG, SIM_TRACE, SIM_PROFILE, SIM_ASSERT,
SIM_ENVIRONMENT, SIM_SMP, SIM_XOR_ENDIAN): Delete.
(CONFIG_CFLAGS): Delete $(SIM_DEBUG), $(SIM_TRACE), $(SIM_PROFILE),
$(SIM_ASSERT), $(SIM_ENVIRONMENT), $(SIM_SMP), and $(SIM_XOR_ENDIAN).
* sim-config.c (sim_config): Change DEFAULT_ENVIRONMENT to
WITH_ENVIRONMENT & USER_ENVIRONMENT.
* sim-config.h (SIM_HAVE_ENVIRONMENT, WITH_ENVIRONMENT,
DEFAULT_ENVIRONMENT, WITH_DEBUG, WITH_TRACE, WITH_PROFILE,
WITH_ASSERT, WITH_STDIO): Delete.
* sim-options.c (standard_options): Delete SIM_HAVE_ENVIRONMENT
check.
2016-01-10 Mike Frysinger <vapier@gentoo.org>
* acinclude.m4 (SIM_AC_OPTION_PACKAGES): Delete.

View File

@ -75,16 +75,11 @@ CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
CXXFLAGS = @CXXFLAGS@
LDFLAGS = @LDFLAGS@
SIM_DEBUG = @sim_debug@
SIM_TRACE = @sim_trace@
SIM_PROFILE = @sim_profile@
SIM_ASSERT = @sim_assert@
SIM_ALIGNMENT = @sim_alignment@
SIM_BITSIZE = @sim_bitsize@
SIM_DEFAULT_MODEL = @sim_default_model@
SIM_ENDIAN = @sim_endian@
SIM_ENVIRONMENT = @sim_environment@
SIM_FLOAT = @sim_float@
SIM_HW_CFLAGS = @sim_hw_cflags@
SIM_HW_OBJS = @sim_hw_objs@
@ -92,8 +87,6 @@ SIM_HW = @sim_hw@
SIM_INLINE = @sim_inline@
SIM_RESERVED_BITS = @sim_reserved_bits@
SIM_SCACHE = @sim_scache@
SIM_SMP = @sim_smp@
SIM_XOR_ENDIAN = @sim_xor_endian@
WARN_CFLAGS = @WARN_CFLAGS@
WERROR_CFLAGS = @WERROR_CFLAGS@
SIM_WARN_CFLAGS = $(WARN_CFLAGS)
@ -224,24 +217,17 @@ CGEN_INCLUDE_DEPS = \
CONFIG_CFLAGS = \
@DEFS@ \
$(SIM_DEBUG) \
$(SIM_DEFAULT_MODEL) \
$(SIM_TRACE) \
$(SIM_PROFILE) \
$(SIM_ASSERT) \
$(SIM_ALIGNMENT) \
$(SIM_BITSIZE) \
$(SIM_ENDIAN) \
$(SIM_ENVIRONMENT) \
$(SIM_FLOAT) \
$(SIM_HW_CFLAGS) \
$(SIM_INLINE) \
$(SIM_RESERVED_BITS) \
$(SIM_SCACHE) \
$(SIM_SMP) \
$(SIM_WARN_CFLAGS) \
$(SIM_WERROR_CFLAGS) \
$(SIM_XOR_ENDIAN) \
$(SIM_HARDWARE) \
$(SIM_EXTRA_CFLAGS) \
$(HDEFINES) $(TDEFINES)

View File

@ -135,64 +135,67 @@ AM_MAINTAINER_MODE
dnl --enable-sim-debug is for developers of the simulator
dnl the allowable values are work-in-progress
AC_MSG_CHECKING([for sim debug setting])
sim_debug="0"
AC_ARG_ENABLE(sim-debug,
[AS_HELP_STRING([--enable-sim-debug=opts],
[Enable debugging flags (for developers of the sim itself)])],
[case "${enableval}" in
yes) sim_debug="-DDEBUG=7 -DWITH_DEBUG=7";;
no) sim_debug="-DDEBUG=0 -DWITH_DEBUG=0";;
*) sim_debug="-DDEBUG='(${enableval})' -DWITH_DEBUG='(${enableval})'";;
esac
if test x"$silent" != x"yes" && test x"$sim_debug" != x""; then
echo "Setting sim debug = $sim_debug" 6>&1
fi],[sim_debug=""])dnl
AC_SUBST(sim_debug)
yes) sim_debug="7";;
no) sim_debug="0";;
*) sim_debug="($enableval)";;
esac])dnl
if test "$sim_debug" != "0"; then
AC_DEFINE_UNQUOTED([DEBUG], [$sim_debug], [Sim debug setting])
fi
AC_DEFINE_UNQUOTED([WITH_DEBUG], [$sim_debug], [Sim debug setting])
AC_MSG_RESULT($sim_debug)
dnl --enable-sim-stdio is for users of the simulator
dnl It determines if IO from the program is routed through STDIO (buffered)
AC_MSG_CHECKING([for sim stdio debug behavior])
sim_stdio="0"
AC_ARG_ENABLE(sim-stdio,
[AS_HELP_STRING([--enable-sim-stdio],
[Specify whether to use stdio for console input/output])],
[case "${enableval}" in
yes) sim_stdio="-DWITH_STDIO=DO_USE_STDIO";;
no) sim_stdio="-DWITH_STDIO=DONT_USE_STDIO";;
*) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-stdio"); sim_stdio="";;
esac
if test x"$silent" != x"yes" && test x"$sim_stdio" != x""; then
echo "Setting stdio flags = $sim_stdio" 6>&1
fi],[sim_stdio=""])dnl
AC_SUBST(sim_stdio)
yes) sim_stdio="DO_USE_STDIO";;
no) sim_stdio="DONT_USE_STDIO";;
*) AC_MSG_ERROR([Unknown value $enableval passed to --enable-sim-stdio]);;
esac])dnl
AC_DEFINE_UNQUOTED([WITH_STDIO], [$sim_stdio], [How to route I/O])
AC_MSG_RESULT($sim_stdio)
dnl --enable-sim-trace is for users of the simulator
dnl The argument is either a bitmask of things to enable [exactly what is
dnl up to the simulator], or is a comma separated list of names of tracing
dnl elements to enable. The latter is only supported on simulators that
dnl use WITH_TRACE.
dnl use WITH_TRACE. Default to all tracing but internal debug.
AC_MSG_CHECKING([for sim trace settings])
sim_trace="~TRACE_debug"
AC_ARG_ENABLE(sim-trace,
[AS_HELP_STRING([--enable-sim-trace=opts],
[Enable tracing of simulated programs])],
[case "${enableval}" in
yes) sim_trace="-DWITH_TRACE=-1";;
no) sim_trace="-DWITH_TRACE=0";;
yes) sim_trace="-1";;
no) sim_trace="0";;
[[-0-9]]*)
sim_trace="-DWITH_TRACE='(${enableval})'";;
sim_trace="'(${enableval})'";;
[[[:lower:]]]*)
sim_trace=""
for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
if test x"$sim_trace" = x; then
sim_trace="-DWITH_TRACE='(TRACE_$x"
sim_trace="(TRACE_$x"
else
sim_trace="${sim_trace}|TRACE_$x"
fi
done
sim_trace="$sim_trace)'" ;;
esac
if test x"$silent" != x"yes" && test x"$sim_trace" != x""; then
echo "Setting sim trace = $sim_trace" 6>&1
fi],[sim_trace=""])dnl
AC_SUBST(sim_trace)
sim_trace="$sim_trace)" ;;
esac])dnl
AC_DEFINE_UNQUOTED([WITH_TRACE], [$sim_trace], [Sim trace settings])
AC_MSG_RESULT($sim_trace)
dnl --enable-sim-profile
@ -200,28 +203,32 @@ dnl The argument is either a bitmask of things to enable [exactly what is
dnl up to the simulator], or is a comma separated list of names of profiling
dnl elements to enable. The latter is only supported on simulators that
dnl use WITH_PROFILE.
AC_MSG_CHECKING([for sim profile settings])
profile="1"
sim_profile="-1"
AC_ARG_ENABLE(sim-profile,
[AS_HELP_STRING([--enable-sim-profile=opts], [Enable profiling flags])],
[case "${enableval}" in
yes) sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1";;
no) sim_profile="-DPROFILE=0 -DWITH_PROFILE=0";;
yes) profile="1" sim_profile="-1";;
no) profile="0" sim_profile="0";;
[[-0-9]]*)
sim_profile="-DPROFILE='(${enableval})' -DWITH_PROFILE='(${enableval})'";;
profile="(${enableval})" sim_profile="(${enableval})";;
[[a-z]]*)
profile="1"
sim_profile=""
for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
if test x"$sim_profile" = x; then
sim_profile="-DWITH_PROFILE='(PROFILE_$x"
sim_profile="(PROFILE_$x"
else
sim_profile="${sim_profile}|PROFILE_$x"
fi
done
sim_profile="$sim_profile)'" ;;
esac
if test x"$silent" != x"yes" && test x"$sim_profile" != x""; then
echo "Setting sim profile = $sim_profile" 6>&1
fi],[sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1"])dnl
AC_SUBST(sim_profile)
sim_profile="$sim_profile)" ;;
esac])dnl
AC_DEFINE_UNQUOTED([PROFILE], [$profile], [Sim profile settings])
AC_DEFINE_UNQUOTED([WITH_PROFILE], [$sim_profile], [Sim profile settings])
AC_MSG_RESULT($sim_profile)
SIM_AC_OPTION_ASSERT
SIM_AC_OPTION_ENVIRONMENT
@ -257,23 +264,21 @@ dnl ??? Until there is demonstrable value in doing something more complicated,
dnl let's not.
AC_DEFUN([SIM_AC_OPTION_ENVIRONMENT],
[
AC_MSG_CHECKING([default sim environment setting])
sim_environment="ALL_ENVIRONMENT"
AC_ARG_ENABLE(sim-environment,
[AS_HELP_STRING([--enable-sim-environment=environment],
[Specify mixed, user, virtual or operating environment])],
[case "${enableval}" in
all | ALL) sim_environment="-DWITH_ENVIRONMENT=ALL_ENVIRONMENT";;
user | USER) sim_environment="-DWITH_ENVIRONMENT=USER_ENVIRONMENT";;
virtual | VIRTUAL) sim_environment="-DWITH_ENVIRONMENT=VIRTUAL_ENVIRONMENT";;
operating | OPERATING) sim_environment="-DWITH_ENVIRONMENT=OPERATING_ENVIRONMENT";;
*) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-environment");
sim_environment="";;
esac
if test x"$silent" != x"yes" && test x"$sim_environment" != x""; then
echo "Setting sim environment = $sim_environment" 6>&1
fi],
[sim_environment="-DWITH_ENVIRONMENT=ALL_ENVIRONMENT"])dnl
all | ALL) sim_environment="ALL_ENVIRONMENT";;
user | USER) sim_environment="USER_ENVIRONMENT";;
virtual | VIRTUAL) sim_environment="VIRTUAL_ENVIRONMENT";;
operating | OPERATING) sim_environment="OPERATING_ENVIRONMENT";;
*) AC_MSG_ERROR([Unknown value $enableval passed to --enable-sim-environment]);;
esac])dnl
AC_DEFINE_UNQUOTED([WITH_ENVIRONMENT], [$sim_environment], [Sim default environment])
AC_MSG_RESULT($sim_environment)
])
AC_SUBST(sim_environment)
dnl Specify the alignment restrictions of the target architecture.
@ -332,19 +337,19 @@ AC_SUBST(sim_alignment)
dnl Conditionally compile in assertion statements.
AC_DEFUN([SIM_AC_OPTION_ASSERT],
[
AC_MSG_CHECKING([whether to enable sim asserts])
sim_assert="1"
AC_ARG_ENABLE(sim-assert,
[AS_HELP_STRING([--enable-sim-assert],
[Specify whether to perform random assertions])],
[case "${enableval}" in
yes) sim_assert="-DWITH_ASSERT=1";;
no) sim_assert="-DWITH_ASSERT=0";;
*) AC_MSG_ERROR("--enable-sim-assert does not take a value"); sim_assert="";;
esac
if test x"$silent" != x"yes" && test x"$sim_assert" != x""; then
echo "Setting assert flags = $sim_assert" 6>&1
fi],[sim_assert=""])dnl
yes) sim_assert="1";;
no) sim_assert="0";;
*) AC_MSG_ERROR([--enable-sim-assert does not take a value]);;
esac])dnl
AC_DEFINE_UNQUOTED([WITH_ASSERT], [$sim_assert], [Sim assert settings])
AC_MSG_RESULT($sim_assert)
])
AC_SUBST(sim_assert)
@ -667,41 +672,39 @@ AC_SUBST(sim_reserved_bits)
AC_DEFUN([SIM_AC_OPTION_SMP],
[
AC_MSG_CHECKING([number of sim cpus to support])
default_sim_smp="ifelse([$1],,5,[$1])"
sim_smp="$default_sim_smp""
AC_ARG_ENABLE(sim-smp,
[AS_HELP_STRING([--enable-sim-smp=n],
[Specify number of processors to configure for (default ${default_sim_smp})])],
[case "${enableval}" in
yes) sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5";;
no) sim_smp="-DWITH_SMP=0" ; sim_igen_smp="-N 0";;
*) sim_smp="-DWITH_SMP=$enableval" ; sim_igen_smp="-N $enableval";;
esac
if test x"$silent" != x"yes" && test x"$sim_smp" != x""; then
echo "Setting smp flags = $sim_smp" 6>&1
fi],[sim_smp="-DWITH_SMP=${default_sim_smp}" ; sim_igen_smp="-N ${default_sim_smp}"
if test x"$silent" != x"yes"; then
echo "Setting smp flags = $sim_smp" 6>&1
fi])dnl
yes) sim_smp="5";;
no) sim_smp="0";;
*) sim_smp="$enableval";;
esac])dnl
sim_igen_smp="-N ${sim_smp}"
AC_DEFINE_UNQUOTED([WITH_SMP], [$sim_smp], [Sim SMP settings])
AC_MSG_RESULT($sim_smp)
])
AC_SUBST(sim_smp)
AC_DEFUN([SIM_AC_OPTION_XOR_ENDIAN],
[
AC_MSG_CHECKING([for xor endian support])
default_sim_xor_endian="ifelse([$1],,8,[$1])"
sim_xor_endian="$default_sim_xor_endian"
AC_ARG_ENABLE(sim-xor-endian,
[AS_HELP_STRING([--enable-sim-xor-endian=n],
[Specify number bytes involved in XOR bi-endian mode (default ${default_sim_xor_endian})])],
[case "${enableval}" in
yes) sim_xor_endian="-DWITH_XOR_ENDIAN=8";;
no) sim_xor_endian="-DWITH_XOR_ENDIAN=0";;
*) sim_xor_endian="-DWITH_XOR_ENDIAN=$enableval";;
esac
if test x"$silent" != x"yes" && test x"$sim_xor_endian" != x""; then
echo "Setting xor-endian flag = $sim_xor_endian" 6>&1
fi],[sim_xor_endian="-DWITH_XOR_ENDIAN=${default_sim_xor_endian}"])dnl
yes) sim_xor_endian="8";;
no) sim_xor_endian="0";;
*) sim_xor_endian="$enableval";;
esac])dnl
AC_DEFINE_UNQUOTED([WITH_XOR_ENDIAN], [$sim_xor_endian], [Sim XOR endian settings])
AC_MSG_RESULT($sim_smp)
])
AC_SUBST(sim_xor_endian)
dnl --enable-build-warnings is for developers of the simulator.

View File

@ -602,8 +602,6 @@ PATH_SEPARATOR
SHELL
WERROR_CFLAGS
WARN_CFLAGS
sim_xor_endian
sim_smp
sim_reserved_bits
sim_inline
sim_hw
@ -614,9 +612,7 @@ sim_scache
sim_float
sim_endian
sim_bitsize
sim_assert
sim_alignment
sim_environment'
sim_alignment'
ac_subst_files=''
ac_user_opts='
enable_option_checking

View File

@ -237,7 +237,8 @@ sim_config (SIM_DESC sd)
}
#endif
if (STATE_ENVIRONMENT (sd) == ALL_ENVIRONMENT)
STATE_ENVIRONMENT (sd) = DEFAULT_ENVIRONMENT;
STATE_ENVIRONMENT (sd) = (WITH_ENVIRONMENT != ALL_ENVIRONMENT ?
WITH_ENVIRONMENT : USER_ENVIRONMENT);
/* set the alignment */

View File

@ -167,21 +167,6 @@ enum sim_environment {
OPERATING_ENVIRONMENT
};
/* If the simulator specified SIM_AC_OPTION_ENVIRONMENT, indicate so. */
#ifdef WITH_ENVIRONMENT
#define SIM_HAVE_ENVIRONMENT
#endif
/* If the simulator doesn't specify SIM_AC_OPTION_ENVIRONMENT in its
configure.ac, the only supported environment is the user environment. */
#ifndef WITH_ENVIRONMENT
#define WITH_ENVIRONMENT USER_ENVIRONMENT
#endif
#define DEFAULT_ENVIRONMENT (WITH_ENVIRONMENT != ALL_ENVIRONMENT \
? WITH_ENVIRONMENT \
: USER_ENVIRONMENT)
/* To be prepended to simulator calls with absolute file paths and
chdir:ed at startup. */
extern char *simulator_sysroot;
@ -267,39 +252,6 @@ extern int current_floating_point;
#endif
/* Debugging:
Control the inclusion of debugging code.
Debugging is only turned on in rare circumstances [say during development]
and is not intended to be turned on otherwise. */
#ifndef WITH_DEBUG
#define WITH_DEBUG 0
#endif
/* Include the tracing code. Disabling this eliminates all tracing
code. Default to all tracing but internal debug. */
#ifndef WITH_TRACE
#define WITH_TRACE (~TRACE_debug)
#endif
/* Include the profiling code. Disabling this eliminates all profiling
code. */
#ifndef WITH_PROFILE
#define WITH_PROFILE (-1)
#endif
/* include code that checks assertions scattered through out the
program */
#ifndef WITH_ASSERT
#define WITH_ASSERT 1
#endif
/* Whether to check instructions for reserved bits being set */
/* #define WITH_RESERVED_BITS 1 */
@ -344,10 +296,6 @@ extern int current_model_issue;
#define DONT_USE_STDIO 2
#define DO_USE_STDIO 1
#ifndef WITH_STDIO
#define WITH_STDIO 0
#endif
extern int current_stdio;
#define CURRENT_STDIO (WITH_STDIO \
? WITH_STDIO \

View File

@ -119,14 +119,12 @@ static const OPTION standard_options[] =
'E', "big|little", "Set endianness",
standard_option_handler, NULL },
#ifdef SIM_HAVE_ENVIRONMENT
/* This option isn't supported unless all choices are supported in keeping
with the goal of not printing in --help output things the simulator can't
do [as opposed to things that just haven't been configured in]. */
{ {"environment", required_argument, NULL, OPTION_ENVIRONMENT},
'\0', "user|virtual|operating", "Set running environment",
standard_option_handler },
#endif
{ {"alignment", required_argument, NULL, OPTION_ALIGNMENT},
'\0', "strict|nonstrict|forced", "Set memory access alignment",