I have a code which forms the infrastructure for some reliability analysis.
I have put that code into a separate folder in the "m5/src/avf" directory
and
have added a SConscript file into "avf" folder with the following content:
Import('*')
SimObject('RelObj.py')
SimObject('PreDeadBuffer.py')
SimObject('AvfPredictor.py')
Source('reliability.cc')
Source('rel_counter.cc')
Source('dyn_dead.cc')
Source('avf_predictor.cc')
I have also modified some files/structures in the CPU such as
InstructionQueue and ROB. My goal is to analyze some behavior in these
structures. So, I have modified some functions, e.g. Tick(), to send
information to the analysis infrastructure through its API.
Any clue about the problem? Is adding the SConscript file all I have to do
to add new code/functionality to M5?
Part of the compilation output is as follows:
************************************************************************************************************************************
scons: Building targets ...
[ CXX] ALPHA_FS/sim/main.cc -> .fo
[ CXX] ALPHA_FS/avf/reliability.cc -> .fo
[ CXX] ALPHA_FS/avf/rel_counter.cc -> .fo
[ CXX] ALPHA_FS/avf/dyn_dead.cc -> .fo
[ CXX] ALPHA_FS/avf/avf_predictor.cc -> .fo
[ CXX] ALPHA_FS/kern/kernel_stats.cc -> .fo
[ CXX] ALPHA_FS/kern/system_events.cc -> .fo
.
.
.
[ CXX] ALPHA_FS/python/m5/internal/param_DiskImage.py.cc -> .fo
[ CXX] ALPHA_FS/base/traceflags.py.cc -> .fo
[ CXX] ALPHA_FS/base/date.cc -> .fo
[ LINK] -> ALPHA_FS/m5.fast.unstripped
build/ALPHA_FS/avf/avf_predictor.fo(.text+0x15f1): In function
`AvfPredictor::updateHVFEntries(long)':
: undefined reference to
`InstructionQueue<O3CPUImpl>::getInstByIQIndex(unsigned int)'
build/ALPHA_FS/avf/avf_predictor.fo(.gnu.linkonce.t._ZN12AvfPredictor15HvfPredictorObjI16InstructionQueueI9O3CPUImplEE12signalStructEii+0x1c):
In function `AvfPredictor::HvfPredictorObj<InstructionQueue<O3CPUImpl>
>::signalStruct(int, int)':
: undefined reference to
`InstructionQueue<O3CPUImpl>::getInstByIQIndex(unsigned int)'
build/ALPHA_FS/cpu/o3/inst_queue.fo(.gnu.linkonce.t._ZN16InstructionQueueI9O3CPUImplE14signalHVFIndexEii+0x1c):
In function `InstructionQueue<O3CPUImpl>::signalHVFIndex(int, int)':
: undefined reference to
`InstructionQueue<O3CPUImpl>::getInstByIQIndex(unsigned int)'
build/ALPHA_FS/cpu/o3/inst_queue.fo(.gnu.linkonce.t._ZN16InstructionQueueI9O3CPUImplE13insertNonSpecER14RefCountingPtrI13BaseO3DynInstIS0_EE+0x115):
In function
`InstructionQueue<O3CPUImpl>::insertNonSpec(RefCountingPtr<BaseO3DynInst<O3CPUImpl>
>&)':
: undefined reference to
`InstructionQueue<O3CPUImpl>::iqAVFinsert(RefCountingPtr<BaseO3DynInst<O3CPUImpl>
>)'
build/ALPHA_FS/cpu/o3/inst_queue.fo(.gnu.linkonce.t._ZN16InstructionQueueI9O3CPUImplEC1EP9FullO3CPUIS0_EP10DefaultIEWIS0_EP16DerivO3CPUParams+0x84a):
In function
`InstructionQueue<O3CPUImpl>::InstructionQueue(FullO3CPU<O3CPUImpl>*,
DefaultIEW<O3CPUImpl>*, DerivO3CPUParams*)':
: undefined reference to
`InstructionQueue<O3CPUImpl>::iqAVFinit(DerivO3CPUParams*)'
build/ALPHA_FS/cpu/o3/inst_queue.fo(.gnu.linkonce.t._ZN16InstructionQueueI9O3CPUImplEC2EP9FullO3CPUIS0_EP10DefaultIEWIS0_EP16DerivO3CPUParams+0x84a):
In function
`InstructionQueue<O3CPUImpl>::InstructionQueue(FullO3CPU<O3CPUImpl>*,
DefaultIEW<O3CPUImpl>*, DerivO3CPUParams*)':
: undefined reference to
`InstructionQueue<O3CPUImpl>::iqAVFinit(DerivO3CPUParams*)'
build/ALPHA_FS/cpu/o3/inst_queue.fo(.gnu.linkonce.t._ZN16InstructionQueueI9O3CPUImplE6insertER14RefCountingPtrI13BaseO3DynInstIS0_EE+0x88):
In function
`InstructionQueue<O3CPUImpl>::insert(RefCountingPtr<BaseO3DynInst<O3CPUImpl>
>&)':
: undefined reference to
`InstructionQueue<O3CPUImpl>::iqAVFinsert(RefCountingPtr<BaseO3DynInst<O3CPUImpl>
>)'
collect2: ld returned 1 exit status
scons: *** [build/ALPHA_FS/m5.fast.unstripped] Error 1
scons: building terminated because of errors.
************************************************************************************************************************************
Thanks in advance for your help,
Navid.
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users