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>
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user