aboutsummaryrefslogtreecommitdiff
path: root/sim/common
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2016-01-09 04:09:35 -0500
committerMike Frysinger <vapier@gentoo.org>2016-01-10 18:54:41 -0500
commitce39bd389039d99458950b072550ab52f0a07a34 (patch)
tree2bd4218fe7cc847322b73d613065a6825e49bcda /sim/common
parente19418e02e25ae4c62eb95547220897fa6aaf2e0 (diff)
downloadfsf-binutils-gdb-ce39bd389039d99458950b072550ab52f0a07a34.zip
fsf-binutils-gdb-ce39bd389039d99458950b072550ab52f0a07a34.tar.gz
fsf-binutils-gdb-ce39bd389039d99458950b072550ab52f0a07a34.tar.bz2
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.
Diffstat (limited to 'sim/common')
-rw-r--r--sim/common/ChangeLog22
-rw-r--r--sim/common/Make-common.in14
-rw-r--r--sim/common/acinclude.m4155
-rwxr-xr-xsim/common/configure6
-rw-r--r--sim/common/sim-config.c3
-rw-r--r--sim/common/sim-config.h52
-rw-r--r--sim/common/sim-options.c2
7 files changed, 104 insertions, 150 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index 8afffa4..7b5c8f9 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,5 +1,27 @@
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.
* configure: Regenerate.
* Make-common.in (SIM_PACKAGES): Delete.
diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in
index 49401dd..3d99f62 100644
--- a/sim/common/Make-common.in
+++ b/sim/common/Make-common.in
@@ -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)
diff --git a/sim/common/acinclude.m4 b/sim/common/acinclude.m4
index 16e6d5c..5ebf584 100644
--- a/sim/common/acinclude.m4
+++ b/sim/common/acinclude.m4
@@ -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.
diff --git a/sim/common/configure b/sim/common/configure
index a02b129..53082d4 100755
--- a/sim/common/configure
+++ b/sim/common/configure
@@ -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
diff --git a/sim/common/sim-config.c b/sim/common/sim-config.c
index 7e66787..9da7105 100644
--- a/sim/common/sim-config.c
+++ b/sim/common/sim-config.c
@@ -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 */
diff --git a/sim/common/sim-config.h b/sim/common/sim-config.h
index 1c65365..88ecfd8 100644
--- a/sim/common/sim-config.h
+++ b/sim/common/sim-config.h
@@ -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 \
diff --git a/sim/common/sim-options.c b/sim/common/sim-options.c
index 7393554..54a8c43 100644
--- a/sim/common/sim-options.c
+++ b/sim/common/sim-options.c
@@ -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",