Navid,

Did you figure this out?  My guess is that you did not explicitly
instantiate your functions in your .cc file.  Look at the "template
class" statements in the various .cc files of the o3 directory.

  Nate

On Mon, Apr 4, 2011 at 5:11 PM, Navid Farazmand <[email protected]> wrote:
> 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
>
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to