Hi everyone, i am trying to add an additional CPU port to the MinorCPU, which is similar to a dcacheport, i have tried to implement it and i have gone to a point to also edit the BaseCPU, so it can accept the new port, but when building GEM5 I get the following errors, Would someone explain to me as to why I am getting this errors? what is it that I am doing wrong?
build/X86/kern/lib.o.partial: In function `module_init(pybind11::module&)': /home/weez/Desktop/gem5_86/gem5/ext/pybind11/include/pybind11/pybind11.h:1075: undefined reference to `typeinfo for BaseCPU' /home/weez/Desktop/gem5_86/gem5/ext/pybind11/include/pybind11/pybind11.h:1101: undefined reference to `typeinfo for BaseCPU' /home/weez/Desktop/gem5_86/gem5/ext/pybind11/include/pybind11/pybind11.h:1101: undefined reference to `typeinfo for BaseCPU' /home/weez/Desktop/gem5_86/gem5/ext/pybind11/include/pybind11/pybind11.h:1101: undefined reference to `typeinfo for BaseCPU' /home/weez/Desktop/gem5_86/gem5/ext/pybind11/include/pybind11/pybind11.h:1101: undefined reference to `typeinfo for BaseCPU' build/X86/kern/lib.o.partial:/home/weez/Desktop/gem5_86/gem5/ext/pybind11/include/pybind11/pybind11.h:1101: more undefined references to `typeinfo for BaseCPU' follow build/X86/cpu/simple/lib.o.partial:(.data.rel.ro._ZTV15AtomicSimpleCPU[_ZTV15AtomicSimpleCPU]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/simple/lib.o.partial:(.data.rel.ro._ZTV19NonCachingSimpleCPU[_ZTV19NonCachingSimpleCPU]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/simple/lib.o.partial:(.data.rel.ro._ZTV15TimingSimpleCPU[_ZTV15TimingSimpleCPU]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/simple/lib.o.partial:(.data.rel.ro._ZTI13BaseSimpleCPU[_ZTI13BaseSimpleCPU]+0x10): undefined reference to `typeinfo for BaseCPU' build/X86/cpu/simple/lib.o.partial:(.data.rel.ro._ZTV13BaseSimpleCPU[_ZTV13BaseSimpleCPU]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/o3/lib.o.partial: In function `FullO3CPU<O3CPUImpl>::takeOverFrom(BaseCPU*)': /home/weez/Desktop/gem5_86/gem5/build/X86/cpu/o3/cpu.cc:1149: undefined reference to `typeinfo for BaseCPU' build/X86/cpu/o3/lib.o.partial: In function `FullO3CPU<O3CPUImpl>::FullO3CPU(DerivO3CPUParams*)': /home/weez/Desktop/gem5_86/gem5/build/X86/cpu/o3/cpu.cc:152: undefined reference to `typeinfo for BaseCPU' build/X86/cpu/o3/lib.o.partial:(.data.rel.ro._ZTI9BaseO3CPU[_ZTI9BaseO3CPU]+0x10): undefined reference to `typeinfo for BaseCPU' build/X86/cpu/o3/lib.o.partial:(.data.rel.ro._ZTV9BaseO3CPU[_ZTV9BaseO3CPU]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/o3/lib.o.partial:(.data.rel.ro._ZTV9FullO3CPUI9O3CPUImplE[_ZTV9FullO3CPUI9O3CPUImplE]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/o3/lib.o.partial:(.data.rel.ro._ZTV10DerivO3CPU[_ZTV10DerivO3CPU]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/o3/lib.o.partial:(.data.rel.ro._ZTV7CheckerI9O3CPUImplE[_ZTV7CheckerI9O3CPUImplE]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/o3/lib.o.partial:(.data.rel.ro._ZTV9O3Checker[_ZTV9O3Checker]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/sim/lib.o.partial: In function `System::validKvmEnvironment() const': /home/weez/Desktop/gem5_86/gem5/build/X86/sim/system.cc:393: undefined reference to `typeinfo for BaseCPU' build/X86/cpu/minor/lib.o.partial:(.data.rel.ro._ZTI8MinorCPU[_ZTI8MinorCPU]+0x10): undefined reference to `typeinfo for BaseCPU' build/X86/cpu/kvm/lib.o.partial: In function `KvmVM::contextIdToVCpuId(int) const': /home/weez/Desktop/gem5_86/gem5/build/X86/cpu/kvm/vm.cc:544: undefined reference to `typeinfo for BaseCPU' build/X86/cpu/kvm/lib.o.partial:(.data.rel.ro._ZTI10BaseKvmCPU[_ZTI10BaseKvmCPU]+0x10): undefined reference to `typeinfo for BaseCPU' build/X86/cpu/kvm/lib.o.partial:(.data.rel.ro._ZTV10BaseKvmCPU[_ZTV10BaseKvmCPU]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/kvm/lib.o.partial:(.data.rel.ro._ZTV9X86KvmCPU[_ZTV9X86KvmCPU]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/trace/lib.o.partial:(.data.rel.ro._ZTI8TraceCPU[_ZTI8TraceCPU]+0x10): undefined reference to `typeinfo for BaseCPU' build/X86/cpu/trace/lib.o.partial:(.data.rel.ro._ZTV8TraceCPU[_ZTV8TraceCPU]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/lib.o.partial: In function `BaseCPU::~BaseCPU()': /home/weez/Desktop/gem5_86/gem5/build/X86/cpu/base.cc:208: undefined reference to `vtable for BaseCPU' build/X86/cpu/lib.o.partial: In function `BaseCPU::BaseCPU(BaseCPUParams*, bool)': /home/weez/Desktop/gem5_86/gem5/build/X86/cpu/base.cc:144: undefined reference to `vtable for BaseCPU' build/X86/cpu/lib.o.partial:(.data.rel.ro._ZTI10CheckerCPU[_ZTI10CheckerCPU]+0x18): undefined reference to `typeinfo for BaseCPU' build/X86/cpu/lib.o.partial:(.data.rel.ro._ZTV10CheckerCPU[_ZTV10CheckerCPU]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' build/X86/cpu/lib.o.partial:(.data.rel.ro._ZTV12DummyChecker[_ZTV12DummyChecker]+0x90): undefined reference to `BaseCPU::getSPMDataPort()' collect2: error: ld returned 1 exit status scons: *** [build/X86/gem5.opt] Error 1 scons: building terminated because of errors. >From what i understand from the errors, is that all the cpu models should now also have the implementation of the additional port that i have created? i have not used a purely virtual function to initialise my new port in the /src/cpu/base.hh file , Any help would be appreciated. Thanks, Aamir
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s