mirror of
https://git.yoctoproject.org/poky
synced 2026-04-29 09:32:11 +02:00
patchelf: Fix alignment patch
The previous fix was in the right direction but needed to account for the section alignment of the current section. Tweak the patch to handle this. (From OE-Core rev: 69e5a81ceeba3104ba5954dadc7c65cfa4b1be9b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit e464efc07a8997c43998a9c6a9544be11ab4f303) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -31,12 +31,14 @@ Index: git/src/patchelf.cc
|
||||
===================================================================
|
||||
--- git.orig/src/patchelf.cc
|
||||
+++ git/src/patchelf.cc
|
||||
@@ -1035,6 +1035,8 @@ void ElfFile<ElfFileParamNames>::normali
|
||||
phdrs.push_back(new_phdr);
|
||||
|
||||
curr_off += size;
|
||||
+ /* The next section offset would be aligned */
|
||||
+ curr_off = roundUp(curr_off, sectionAlignment);
|
||||
}
|
||||
}
|
||||
wri(hdr->e_phnum, phdrs.size());
|
||||
@@ -1010,8 +1010,9 @@ void ElfFile<ElfFileParamNames>::normali
|
||||
size_t size = 0;
|
||||
for (const auto & shdr : shdrs) {
|
||||
if (rdi(shdr.sh_type) != SHT_NOTE) continue;
|
||||
- if (rdi(shdr.sh_offset) != curr_off) continue;
|
||||
+ if (rdi(shdr.sh_offset) != roundUp(curr_off, rdi(shdr.sh_addralign))) continue;
|
||||
size = rdi(shdr.sh_size);
|
||||
+ curr_off = roundUp(curr_off, rdi(shdr.sh_addralign));
|
||||
break;
|
||||
}
|
||||
if (size == 0)
|
||||
|
||||
Reference in New Issue
Block a user