fix linker issue
the root cuase of the issue is the template paramter deduction which led to the wrong template parameter.
This commit is contained in:
		| @@ -36,11 +36,9 @@ | ||||
| #include "iss/arch/tgc_b.h" | ||||
| using tgc_b_plat_type = iss::arch::riscv_hart_m_p<iss::arch::tgc_b>; | ||||
| #endif | ||||
| #ifdef CORE_TGC_C | ||||
| #include "iss/arch/riscv_hart_m_p.h" | ||||
| #include "iss/arch/tgc_c.h" | ||||
| using tgc_c_plat_type = iss::arch::riscv_hart_m_p<iss::arch::tgc_c>; | ||||
| #endif | ||||
| #ifdef CORE_TGC_D | ||||
| #include "iss/arch/riscv_hart_mu_p.h" | ||||
| #include "iss/arch/tgc_d.h" | ||||
| @@ -81,8 +79,8 @@ std::array<const char, 4> lvl = {{'U', 'S', 'H', 'M'}}; | ||||
| template<typename PLAT> | ||||
| class core_wrapper_t : public PLAT { | ||||
| public: | ||||
|     using reg_t       = typename arch::traits<typename PLAT::super>::reg_t; | ||||
|     using phys_addr_t = typename arch::traits<typename PLAT::super>::phys_addr_t; | ||||
|     using reg_t       = typename arch::traits<typename PLAT::core>::reg_t; | ||||
|     using phys_addr_t = typename arch::traits<typename PLAT::core>::phys_addr_t; | ||||
|     using heart_state_t = typename PLAT::hart_state_type; | ||||
|     core_wrapper_t(core_complex *owner) | ||||
|     : owner(owner) { } | ||||
| @@ -248,7 +246,7 @@ public: | ||||
|         set_interrupt_execution = [lcpu](bool b) { return lcpu->set_interrupt_execution(b); }; | ||||
|         local_irq = [lcpu](short s, bool b) { return lcpu->local_irq(s, b); }; | ||||
|         if(backend == "interp") | ||||
|             return {cpu_ptr{lcpu}, vm_ptr{iss::interp::create(lcpu, gdb_port)}}; | ||||
|             return {cpu_ptr{lcpu}, vm_ptr{iss::interp::create(static_cast<typename PLAT::core*>(lcpu), gdb_port)}}; | ||||
| #ifdef WITH_LLVM | ||||
|         if(backend == "llvm") | ||||
|             return {cpu_ptr{lcpu}, vm_ptr{iss::llvm::create(lcpu, gdb_port)}}; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user