summaryrefslogtreecommitdiff
path: root/SConstruct
AgeCommit message (Collapse)Author
2012-06-20swig: Use SWIG from environment when determining versionAndreas Hansson
This patch fixes a minor issue in the SConstruct where a hardcoded swig is used instead of the environment SWIG when determining the version.
2012-06-18Build: Point to the appropriate tcmalloc packageAndreas Hansson
This patch updates the message printed if the user does not have tcmalloc available. It turns out that the correct package (which creates all required symlinks etc) is libgoogle-perftools-dev. This has been verified on Ubuntu 12.04.
2012-06-11scons: Make compiler version error more verbose and easier to debug.Ali Saidi
2012-06-05sim: Add support for tcmalloc if it's installed and available.Ali Saidi
This package is available in Ubuntu, Debian, and Redhat as google-perftools. With multiple tests on a single machine I've seen a little over 10% performance gain with tcmalloc.
2012-06-05sim: Remove FastAllocAli Saidi
While FastAlloc provides a small performance increase (~1.5%) over regular malloc it isn't thread safe. After removing FastAlloc and using tcmalloc I've seen a performance increase of 12% over libc malloc when running twolf for ARM.
2012-05-08scons: allow override of SWIG binary on command lineSteve Reinhardt
2012-04-23scons: update minimum SWIG version to 1.3.34Steve Reinhardt
We should try to keep this synced with the wiki (which I also just updated, but which was previously inconsistent).
2012-04-14Regression: Add ANSI colours to highlight test statusAndreas Hansson
This patch adds a very basic pretty-printing of the test status (passed or failed) to highlight failing tests even more: green for passed, and red for failed. The printing only uses ANSI it the target output is a tty and supports ANSI colours. Hence, any regression scripts that are outputting to files or sending e-mails etc should still be fine.
2012-04-14clang/gcc: Fix compilation issues with clang 3.0 and gcc 4.6Andreas Hansson
This patch addresses a number of minor issues that cause problems when compiling with clang >= 3.0 and gcc >= 4.6. Most importantly, it avoids using the deprecated ext/hash_map and instead uses unordered_map (and similarly so for the hash_set). To make use of the new STL containers, g++ and clang has to be invoked with "-std=c++0x", and this is now added for all gcc versions >= 4.6, and for clang >= 3.0. For gcc >= 4.3 and <= 4.5 and clang <= 3.0 we use the tr1 unordered_map to avoid the deprecation warning. The addition of c++0x in turn causes a few problems, as the compiler is more stringent and adds a number of new warnings. Below, the most important issues are enumerated: 1) the use of namespaces is more strict, e.g. for isnan, and all headers opening the entire namespace std are now fixed. 2) another other issue caused by the more stringent compiler is the narrowing of the embedded python, which used to be a char array, and is now unsigned char since there were values larger than 128. 3) a particularly odd issue that arose with the new c++0x behaviour is found in range.hh, where the operator< causes gcc to complain about the template type parsing (the "<" is interpreted as the beginning of a template argument), and the problem seems to be related to the begin/end members introduced for the range-type iteration, which is a new feature in c++11. As a minor update, this patch also fixes the build flags for the clang debug target that used to be shared with gcc and incorrectly use "-ggdb".
2012-03-16build: remove implicit-cache setting of scons from recent build faster patchMarc Orr
2012-03-09CheckerCPU: Make CheckerCPU runtime selectable instead of compile selectableGeoffrey Blake
Enables the CheckerCPU to be selected at runtime with the --checker option from the configs/example/fs.py and configs/example/se.py configuration files. Also merges with the SE/FS changes.
2012-03-06build scripts: Made minor modifications to reduce build overhead time.Marc Orr
1. --implicit-cache behavior is default. 2. makeEnv in src/SConscript is conditionally called. 3. decider set to MD5-timestamp 4. NO_HTML build option changed to SLICC_HTML (defaults to False)
2012-03-02SConstruct: rename and document AddM5OptionSteve Reinhardt
Got rid of gratuitous M5 reference in the function name. In the process, wondered why we have this function at all and spent time trying to get rid of it and eventually firgured out why it's needed. Put the answer in a comment so we don't have to wonder again.
2012-03-02SConstruct: update comments & doc stringsSteve Reinhardt
Lots of references to 'M5' still, and some to SE/FS
2012-01-31Merge with head, hopefully the last time for this batch.Gabe Black
2012-01-31clang: Enable compiling gem5 using clang 2.9 and 3.0Koan-Sin Tan
This patch adds the necessary flags to the SConstruct and SConscript files for compiling using clang 2.9 and later (on Ubuntu et al and OSX XCode 4.2), and also cleans up a bunch of compiler warnings found by clang. Most of the warnings are related to hidden virtual functions, comparisons with unsigneds >= 0, and if-statements with empty bodies. A number of mismatches between struct and class are also fixed. clang 2.8 is not working as it has problems with class names that occur in multiple namespaces (e.g. Statistics in kernel_stats.hh). clang has a bug (http://llvm.org/bugs/show_bug.cgi?id=7247) which causes confusion between the container std::set and the function Packet::set, and this is currently addressed by not including the entire namespace std, but rather selecting e.g. "using std::vector" in the appropriate places.
2012-01-28SE/FS: Get rid of the FULL_SYSTEM config option.Gabe Black
2012-01-09MAC: Make gem5 compile and run on MacOSX 10.7.2Andreas Hansson
Adaptations to make gem5 compile and run on OSX 10.7.2, with a stock gcc 4.2.1 and the remaining dependencies from macports, i.e. python 2.7,.2 swig 2.0.4, mercurial 2.0. The changes include an adaptation of the SConstruct to handle non-library linker flags, and Darwin-specific code to find the memory usage of gem5. A number of Ruby files relied on ambigious uint (without the 32 suffix) which caused compilation errors.
2011-11-09GCC: Guard some gcc flags so they're used when available and needed.Gabe Black
2011-08-08BuildEnv: Eliminate RUBY as build environment variableNilay Vaish
This patch replaces RUBY with PROTOCOL in all the SConscript files as the environment variable that decides whether or not certain components of the simulator are compiled.
2011-08-02Scons: Make some Action objects fit the abreviated output format.Gabe Black
2011-08-02Scons: Drop RUBY as compile time option.Nilay Vaish
This patch drops RUBY as a compile time option. Instead the PROTOCOL option is used to figure out whether or not to build Ruby. If the specified protocol is 'None', then Ruby is not compiled.
2011-07-19SCons: Only print all the SConsopts being read if verbose is turned on.Gabe Black
2011-06-02SConstruct: automatically update .hg/hgrc with style hooks.Steve Reinhardt
Seems easier than pestering people about it. Note also that path is now absolute, so you don't get errors when invoking hg from subdirectories. Also whacked unused mercurial_bin_not_found message (the code that used this was deleted a couple months ago in rev 5138d1e453f1).
2011-05-12stats: delete mysql supportNathan Binkert
we can add it back within python in some future changeset
2011-05-02scons: interpret paths relative to launch directorySteve Reinhardt
Make sure all command-line targets and EXTRAS directories are interpreted relative to the launch directory. This turns out to be very useful when building code from an EXTRAS directory using SCons's -C option. We were trying to do this with targets but it didn't actually work since we didn't update BUILD_TARGETS (so SCons got confused internally). We weren't even trying with EXTRAS. To simplify the code, the default target is also interpreted relative to the launch dir even though it was explicitly handled as relative to the m5 dir before... I doubt anyone really uses this anyway so it didn't seem worth the complexity. (Maybe we should get rid of it?)
2011-05-02scons: allow use of current builds as default build settingsSteve Reinhardt
Currently the --default= option only looks at the predefined build configs (in m5/build_opts), so you're limited to basing a new build config off of those (ALPHA_SE, etc.). If you've already defined a non-standard build config and want to clone it or tweak it, you have to start from scratch. This patch causes --default= to look first among the existing builds (in build/variables) before looking in build_opts so you can specify an existing non-standard build config as a starting point for a new config.
2011-03-18base: disable FastAlloc in debug builds by defaultSteve Reinhardt
FastAlloc's reuse policies can mask allocation bugs, so we typically want it disabled when debugging. Set FORCE_FAST_ALLOC to enable even when debugging, and set NO_FAST_ALLOC to disable even in non-debug builds.
2011-03-11SCons: Stop embedding the mercurial revision into the binary.Gabe Black
This causes a lot of rebuilds that could have otherwise possibly been avoided, and, more annoyingly, a lot of unnecessary rerunning of the regressions. The benefits of having the revision in the output haven't materialized, so this change removes it.
2011-03-04SCons: Fix the polarity on the --ignore-style check.Gabe Black
2011-03-03SCons: Clean up some inconsistent capitalization in scons options.Gabe Black
2011-03-03SCons: Turn some scons variables into command line options.Gabe Black
2011-03-01SCons: Separately label the global non-sticky options.Gabe Black
The global sticky options were being printed with a heading, and then the global nonsticky options were being printed immediately after them without a heading. Because the two lists ran together and the first had its own heading, it looked like -all- those options where sticky even though some of them aren't. This change adds a label to the second list so it's clear they're different.
2011-01-21SConstruct: Fix the librt check in SConstruct.Gabe Black
2011-01-15time: improve time datastructureNathan Binkert
Use posix clock functions (and librt) if it is available. Inline a bunch of functions and implement more operators. * * * time: more cleanup
2011-01-10style: clean up style hook code a bitNathan Binkert
I've renamed the check_whitespace operation to check_style. You're going to need to change your .hg/hgrc file. While you're at it, add a pre-qrefresh hook please.
2011-01-07scons: show sources and targets when building, and colorize output.Steve Reinhardt
I like the brevity of Ali's recent change, but the ambiguity of sometimes showing the source and sometimes the target is a little confusing. This patch makes scons typically list all sources and all targets for each action, with the common path prefix factored out for brevity. It's a little more verbose now but also more informative. Somehow Ali talked me into adding colors too, which is a whole 'nother story.
2010-12-30style: make style hook work with pre-qrefresh and update to use new codeNathan Binkert
clean up the code a little bit while we're at it. I recommend that everyone adds the pre-qrefresh hook below since it will make qref run the style hook and not just commit/qpush [extensions] style = <m5 path>/util/style.py [hooks] pretxncommit.style = python:style.check_whitespace pre-qrefresh.style = python:style.check_whitespace
2010-11-19SCons: Fix compilation on OS XAli Saidi
2010-11-15SCons: Cleanup SCons output during compileAli Saidi
2010-11-09scons: Work around for old versions of scons mistaking strings for sequences.Gabe Black
2010-11-08scons: add a parameter to configure SCons' build cacheAli Saidi
2010-08-23BUILD: GCC 4.4.1/2 have a bug in their auto-vectorizer that we trip onAli Saidi
2010-06-14build: grab the right library if we're using a debug version of pythonNathan Binkert
2010-06-07scons: make RUBY a regular (non-global) sticky varSteve Reinhardt
and force it to True for builds that imply Ruby protocols (else unexpected things happen when testing these builds with RUBY=False).
2010-02-26cpu_models: get rid of cpu_models.py and move the stuff into SConsNathan Binkert
2010-01-17SCons: Make --help reflect the arguments to scons.Gabe Black
The arguments were added to the global_sticky_vars Variables object after the basic help text was generated. As a result, the "actual:" value wouldn't reflect the arguments to scons and wouldn't really be the "actual" value used by the build. This change fixes that by updating global_sticky_vars slightly earlier.
2009-09-23arch: nuke arch/isa_specific.hh and move stuff to generated config/the_isa.hhNathan Binkert
2009-09-22scons: add slicc and ply to sys.path and PYTHONPATH so everyone has accessNathan Binkert
2009-09-22python: Move more code into m5.util allow SCons to use that code.Nathan Binkert
Get rid of misc.py and just stick misc things in __init__.py Move utility functions out of SCons files and into m5.util Move utility type stuff from m5/__init__.py to m5/util/__init__.py Remove buildEnv from m5 and allow access only from m5.defines Rename AddToPath to addToPath while we're moving it to m5.util Rename read_command to readCommand while we're moving it Rename compare_versions to compareVersions while we're moving it. --HG-- rename : src/python/m5/convert.py => src/python/m5/util/convert.py rename : src/python/m5/smartdict.py => src/python/m5/util/smartdict.py