gem5: codebase patched to compile with ag++

This changes allows us to compile the gem5 simulator with ag++. It
was tested with ag++ v0.8, built Apr 18 2013. Most of the changes
are preprocessor directives like #ifndef __puma which have been
inserted into the gem5 code. Unfortunately, a python script and a
SWIG input file have been patched, too.
Additionally, the CMake file has been updated. A single call to
"make" now invokes the ag++ (instead of the g++) compiler front
end. The new CMake target "gem5-allclean" should be used to clean
the current project when building FailGem5. In addition to cleaning
the Fail build directory, it also invokes "scons -c" in the gem5
build directory; that is, gem5 is cleaned as well.

Change-Id: I20a92f025f34f626b81e30f2c873baeba189f83b
This commit is contained in:
Adrian Böckenkamp
2013-05-16 15:35:28 +02:00
parent 95892e9688
commit f92557c2c2
21 changed files with 96 additions and 17 deletions

View File

@ -101,14 +101,18 @@ void
CompoundFlag::enable()
{
SimpleFlag::enable();
#ifndef __puma // DanceOS (error: no matching function for call to `mem_fun')
for_each(_kids.begin(), _kids.end(), mem_fun(&Flag::enable));
#endif
}
void
CompoundFlag::disable()
{
SimpleFlag::disable();
#ifndef __puma // DanceOS (error: no matching function for call to `mem_fun')
for_each(_kids.begin(), _kids.end(), mem_fun(&Flag::disable));
#endif
}
struct AllFlags : public Flag

View File

@ -102,7 +102,10 @@ string
EthAddr::string() const
{
stringstream stream;
// DanceOS modification
#ifndef __puma
stream << *this;
#endif
return stream.str();
}

View File

@ -69,6 +69,7 @@ class Random
value = genrand() & (int8_t)-1;
}
#ifndef __puma // DanceOS (redefinition of `_random')
void
_random(int16_t &value)
{
@ -86,6 +87,7 @@ class Random
{
value = (int64_t)genrand() << 32 | (int64_t)genrand();
}
#endif // DanceOS
void
_random(uint8_t &value)
@ -136,6 +138,7 @@ class Random
return static_cast<int8_t>(min + genrand(diff));
}
#ifndef __puma // DanceOS (redefinition of `_random')
int16_t
_random(int16_t min, int16_t max)
{
@ -156,6 +159,7 @@ class Random
uint64_t diff = max - min;
return static_cast<int64_t>(min + genrand(diff));
}
#endif // DanceOS
uint8_t
_random(uint8_t min, uint8_t max)

View File

@ -264,7 +264,10 @@ operator-(const Time &l, const Time &r)
inline std::ostream &
operator<<(std::ostream &out, const Time &time)
{
// DanceOS modification
#ifndef __puma
out << time.date();
#endif
return out;
}