diff options
Diffstat (limited to 'src/base/loader')
-rw-r--r-- | src/base/loader/elf_object.cc | 2 | ||||
-rw-r--r-- | src/base/loader/object_file.hh | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/base/loader/elf_object.cc b/src/base/loader/elf_object.cc index 60c79f803..761fd79f5 100644 --- a/src/base/loader/elf_object.cc +++ b/src/base/loader/elf_object.cc @@ -112,7 +112,7 @@ ElfObject::tryFile(const std::string &fname, size_t len, uint8_t *data, ehdr.e_ident[EI_CLASS] == ELFCLASS64) { arch = Arm64; } else if (ehdr.e_machine == EM_RISCV) { - arch = Riscv; + arch = (ehdr.e_ident[EI_CLASS] == ELFCLASS64) ? Riscv64 : Riscv32; } else if (ehdr.e_machine == EM_PPC && ehdr.e_ident[EI_CLASS] == ELFCLASS32) { arch = Power; diff --git a/src/base/loader/object_file.hh b/src/base/loader/object_file.hh index c2cdafe47..09c453b8d 100644 --- a/src/base/loader/object_file.hh +++ b/src/base/loader/object_file.hh @@ -57,7 +57,8 @@ class ObjectFile Arm, Thumb, Power, - Riscv + Riscv64, + Riscv32 }; enum OpSys { |