mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 20:28:28 +08:00
Use offsets instead of addresses in ELF_SECTION_IN_SEGMENT for non SHT_NOBITS
For sections that are not SHT_NOBITS, use sh_offset and p_offset instead of sh_addr and p_vaddr when calculating if a section fits in a segment. Both methods are valid when using the GNU linker. include/ * elf/internal.h (ELF_SECTION_IN_SEGMENT): Don’t check addresses for non SHT_NOBITS.
This commit is contained in:
@ -342,8 +342,10 @@ struct elf_segment_map
|
||||
&& (((sec_hdr)->sh_offset - (segment)->p_offset \
|
||||
+ ELF_SECTION_SIZE(sec_hdr, segment)) \
|
||||
<= (segment)->p_filesz))) \
|
||||
/* SHF_ALLOC sections must have VMAs within the segment. */ \
|
||||
/* SHT_NOBITS sections with SHF_ALLOC must have VMAs within the \
|
||||
segment. */ \
|
||||
&& (!(check_vma) \
|
||||
|| (sec_hdr)->sh_type != SHT_NOBITS \
|
||||
|| ((sec_hdr)->sh_flags & SHF_ALLOC) == 0 \
|
||||
|| ((sec_hdr)->sh_addr >= (segment)->p_vaddr \
|
||||
&& (!(strict) \
|
||||
|
Reference in New Issue
Block a user