From c4793184bd32e97e8932a9a0355d8a7b8a214752 Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Tue, 30 Aug 2005 13:18:54 -0400 Subject: Build options are set via a build_options file in the build directory instead of being inferred from the name of the build directory. Options are passed to C++ via config/*.hh files instead of via the command line. Build option flags are now always defined to 0 or 1, so checks must use '#if' rather than '#ifdef'. SConscript: MySQL detection moved to SConstruct. Add config/*.hh files (via ConfigFile builder). arch/alpha/alpha_memory.cc: arch/alpha/ev5.cc: arch/alpha/ev5.hh: arch/alpha/isa_traits.hh: base/fast_alloc.hh: base/statistics.cc: base/statistics.hh: base/stats/events.cc: base/stats/events.hh: cpu/base.cc: cpu/base.hh: cpu/base_dyn_inst.cc: cpu/base_dyn_inst.hh: cpu/exec_context.cc: cpu/exec_context.hh: cpu/o3/alpha_cpu.hh: cpu/o3/alpha_cpu_builder.cc: cpu/o3/alpha_cpu_impl.hh: cpu/o3/alpha_dyn_inst.hh: cpu/o3/alpha_dyn_inst_impl.hh: cpu/o3/alpha_params.hh: cpu/o3/commit_impl.hh: cpu/o3/cpu.cc: cpu/o3/cpu.hh: cpu/o3/fetch_impl.hh: cpu/o3/iew.hh: cpu/o3/iew_impl.hh: cpu/o3/regfile.hh: cpu/o3/rename_impl.hh: cpu/o3/rob_impl.hh: cpu/ozone/cpu.hh: cpu/pc_event.cc: cpu/simple/cpu.cc: cpu/simple/cpu.hh: sim/process.cc: sim/process.hh: Convert compile flags from def/undef to 0/1. Set via #include config/*.hh instead of command line. arch/alpha/isa_desc: Convert compile flags from def/undef to 0/1. Set via #include config/*.hh instead of command line. Revamp fenv.h support... most of the ugliness is hidden in base/fenv.hh now. base/mysql.hh: Fix typo in #ifndef guard. build/SConstruct: Build options are set via a build_options file in the build directory instead of being inferred from the name of the build directory. Options are passed to C++ via config/*.hh files instead of via the command line. python/SConscript: Generate m5_build_env directly from scons options instead of indirectly via CPPDEFINES. python/m5/convert.py: Allow '0' and '1' for booleans. Rewrite toBool to use dict. base/fenv.hh: Revamp support to make it a compile option (so we can test w/o it even if it's present) and to make isa_desc cleaner. --HG-- extra : convert_revision : 8f97dc11185bef5e1865b3269c7341df8525c9ad --- base/fast_alloc.hh | 4 +++- base/fenv.hh | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ base/mysql.hh | 6 +++--- base/statistics.cc | 3 ++- base/statistics.hh | 3 ++- base/stats/events.cc | 7 ++++--- base/stats/events.hh | 5 +++-- 7 files changed, 69 insertions(+), 11 deletions(-) create mode 100644 base/fenv.hh (limited to 'base') diff --git a/base/fast_alloc.hh b/base/fast_alloc.hh index 9e7fa99d1..54e35f8e0 100644 --- a/base/fast_alloc.hh +++ b/base/fast_alloc.hh @@ -68,7 +68,9 @@ // (by bucket). // #define FAST_ALLOC_STATS -#ifdef NO_FAST_ALLOC +#include "config/no_fast_alloc.hh" + +#if NO_FAST_ALLOC class FastAlloc { }; diff --git a/base/fenv.hh b/base/fenv.hh new file mode 100644 index 000000000..3234f5dd3 --- /dev/null +++ b/base/fenv.hh @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2004-2005 The Regents of The University of Michigan + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer; + * redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution; + * neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __BASE_FENV_HH__ +#define __BASE_FENV_HH__ + +#include "config/use_fenv.hh" + +#if USE_FENV + +#include + +#else + +// Dummy definitions to allow code to compile w/o a real . + +#define FE_TONEAREST 0 +#define FE_DOWNWARD 0 +#define FE_UPWARD 0 +#define FE_TOWARDZERO 0 + +inline int fesetround(int rounding_mode) { return 0; } + +#endif // USE_FENV + + +#endif // __BASE_FENV_HH__ diff --git a/base/mysql.hh b/base/mysql.hh index e16558dd3..2278d42e7 100644 --- a/base/mysql.hh +++ b/base/mysql.hh @@ -26,8 +26,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __BASE_MYQSL_HH__ -#define __BASE_MYQSL_HH__ +#ifndef __BASE_MYSQL_HH__ +#define __BASE_MYSQL_HH__ #define TO_BE_INCLUDED_LATER 0 @@ -417,4 +417,4 @@ class Statement /* namespace MySQL */ } -#endif // __BASE_MYQSL_HH__ +#endif // __BASE_MYSQL_HH__ diff --git a/base/statistics.cc b/base/statistics.cc index 4368f1bcf..eaefd5f15 100644 --- a/base/statistics.cc +++ b/base/statistics.cc @@ -42,6 +42,7 @@ #include "base/time.hh" #include "base/trace.hh" #include "base/stats/statdb.hh" +#include "config/stats_binning.hh" using namespace std; @@ -285,7 +286,7 @@ check() Database::stats().sort(StatData::less); -#if defined(STATS_BINNING) +#if STATS_BINNING if (MainBin::curBin() == NULL) { static MainBin mainBin("main bin"); mainBin.activate(); diff --git a/base/statistics.hh b/base/statistics.hh index c4acd9c23..c46744cac 100644 --- a/base/statistics.hh +++ b/base/statistics.hh @@ -62,6 +62,7 @@ #include "base/stats/flags.hh" #include "base/stats/visit.hh" #include "base/stats/types.hh" +#include "config/stats_binning.hh" #include "sim/host.hh" class Callback; @@ -2184,7 +2185,7 @@ class SumNode : public Node * binned. If the typedef is NoBin, nothing is binned. If it is * MainBin, then all stats are binned under that Bin. */ -#if defined(STATS_BINNING) +#if STATS_BINNING typedef MainBin DefaultBin; #else typedef NoBin DefaultBin; diff --git a/base/stats/events.cc b/base/stats/events.cc index 8c3303a69..3191aec13 100644 --- a/base/stats/events.cc +++ b/base/stats/events.cc @@ -28,11 +28,12 @@ #include -#ifdef USE_MYSQL +#include "base/stats/events.hh" + +#if USE_MYSQL #include "base/cprintf.hh" #include "base/misc.hh" #include "base/mysql.hh" -#include "base/stats/events.hh" #include "base/stats/mysql.hh" #include "base/stats/mysql_run.hh" #include "base/str.hh" @@ -51,7 +52,7 @@ Tick EventStart = ULL(0x7fffffffffffffff); ObjectMatch event_ignore; -#ifdef USE_MYSQL +#if USE_MYSQL class InsertEvent { private: diff --git a/base/stats/events.hh b/base/stats/events.hh index 8b3212bed..2a23240b4 100644 --- a/base/stats/events.hh +++ b/base/stats/events.hh @@ -32,12 +32,13 @@ #include #include "base/trace.hh" +#include "config/use_mysql.hh" namespace Stats { extern Tick EventStart; -#ifdef USE_MYSQL +#if USE_MYSQL void __event(const std::string &stat); bool MySqlConnected(); #endif @@ -52,7 +53,7 @@ recordEvent(const std::string &stat) DPRINTF(StatEvents, "Statistics Event: %s\n", stat); -#ifdef USE_MYSQL +#if USE_MYSQL if (!MySqlConnected()) return; -- cgit v1.2.3