summaryrefslogtreecommitdiff
path: root/src/base/loader
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2019-10-01 19:26:12 -0700
committerGabe Black <gabeblack@google.com>2019-10-05 04:17:23 +0000
commite4ed0d84013a36dda19dd93d6b883d7d2984d600 (patch)
treeeaa6b0727f949545856610075a5c6366d5168c93 /src/base/loader
parent2dc4b9d95a156030e9b7ac44ffbdbf9bdacc5944 (diff)
downloadgem5-e4ed0d84013a36dda19dd93d6b883d7d2984d600.tar.xz
base: ELF segment types are not bitfields.
The ELF segment type had been checked by bitwise &-ing it with the PT_LOAD constant to check if it was loadable. This is incorrect. The value is a flat integer, with different values selecting different types of segments. Change-Id: I644dd985bda4ad2d992557c90ffe8048c0ae6aac Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21460 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com> Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
Diffstat (limited to 'src/base/loader')
-rw-r--r--src/base/loader/elf_object.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/base/loader/elf_object.cc b/src/base/loader/elf_object.cc
index 654cb33d5..2a8fb04ea 100644
--- a/src/base/loader/elf_object.cc
+++ b/src/base/loader/elf_object.cc
@@ -342,7 +342,7 @@ ElfObject::ElfObject(const std::string &_filename, size_t _len,
}
// for now we don't care about non-loadable segments
- if (!(phdr.p_type & PT_LOAD))
+ if (phdr.p_type != PT_LOAD)
continue;
ldMin = std::min(ldMin, phdr.p_vaddr);