core/util: indirection to CommandLine class added to make bochs compile
If CommandLine.hpp and (indirectly) optionparser.h is #included in FailBochsInit.ah, bochs compilation fails (for, e.g., gui/x.cc, at least on Debian 6).
This commit is contained in:
@ -4,6 +4,7 @@
|
|||||||
#include "BochsMemory.hpp"
|
#include "BochsMemory.hpp"
|
||||||
#include "../SALInst.hpp"
|
#include "../SALInst.hpp"
|
||||||
#include "../Listener.hpp"
|
#include "../Listener.hpp"
|
||||||
|
#include "util/CommandLine.hpp"
|
||||||
|
|
||||||
namespace fail {
|
namespace fail {
|
||||||
|
|
||||||
@ -173,4 +174,9 @@ ConcreteCPU& BochsController::detectCPU(BX_CPU_C* pCPU) const
|
|||||||
return getCPU(i);
|
return getCPU(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BochsController::collectCommandLineArguments(int argc, char **argv) const
|
||||||
|
{
|
||||||
|
CommandLine::Inst().collect_args(bx_startup_flags.argc, bx_startup_flags.argv);
|
||||||
|
}
|
||||||
|
|
||||||
} // end-of-namespace: fail
|
} // end-of-namespace: fail
|
||||||
|
|||||||
@ -150,6 +150,20 @@ public:
|
|||||||
* @see The uses SimulatorController::getCPU().
|
* @see The uses SimulatorController::getCPU().
|
||||||
*/
|
*/
|
||||||
ConcreteCPU& detectCPU(BX_CPU_C* pCPU) const;
|
ConcreteCPU& detectCPU(BX_CPU_C* pCPU) const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
/**
|
||||||
|
* Hack: Indirection for commandline argument collection
|
||||||
|
*
|
||||||
|
* This prevents CommandLine.hpp (and optionparser.h) from being pulled
|
||||||
|
* inbe to every single Bochs translation unit via FailBochsInit.ah,
|
||||||
|
* leading to compilation errors in some of them.
|
||||||
|
* TODO: Move this upwards to SimulatorController?
|
||||||
|
*
|
||||||
|
* @param argc main()'s argument counter
|
||||||
|
* @param argv main()'s argument value vector
|
||||||
|
*/
|
||||||
|
void collectCommandLineArguments(int argc, char **argv) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end-of-namespace: fail
|
} // end-of-namespace: fail
|
||||||
|
|||||||
@ -6,12 +6,11 @@
|
|||||||
#ifdef BUILD_BOCHS
|
#ifdef BUILD_BOCHS
|
||||||
|
|
||||||
#include "../SALInst.hpp"
|
#include "../SALInst.hpp"
|
||||||
#include "util/CommandLine.hpp"
|
|
||||||
|
|
||||||
aspect FailBochsInit {
|
aspect FailBochsInit {
|
||||||
advice call("int bxmain()") : before ()
|
advice call("int bxmain()") : before ()
|
||||||
{
|
{
|
||||||
fail::CommandLine::Inst().collect_args(bx_startup_flags.argc, bx_startup_flags.argv);
|
fail::simulator.collectCommandLineArguments(bx_startup_flags.argc, bx_startup_flags.argv);
|
||||||
fail::simulator.startup();
|
fail::simulator.startup();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user