From 7e61f58125c7fb5f38ae8d170164be2016c399ef Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 2 May 2021 12:11:20 +0100 Subject: 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 (cherry picked from commit e464efc07a8997c43998a9c6a9544be11ab4f303) Signed-off-by: Anuj Mittal Signed-off-by: Richard Purdie --- .../patchelf/patchelf/alignmentfix.patch | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'meta') diff --git a/meta/recipes-devtools/patchelf/patchelf/alignmentfix.patch b/meta/recipes-devtools/patchelf/patchelf/alignmentfix.patch index 62e11a5e7f..a06876e50a 100644 --- a/meta/recipes-devtools/patchelf/patchelf/alignmentfix.patch +++ b/meta/recipes-devtools/patchelf/patchelf/alignmentfix.patch @@ -31,12 +31,14 @@ Index: git/src/patchelf.cc =================================================================== --- git.orig/src/patchelf.cc +++ git/src/patchelf.cc -@@ -1035,6 +1035,8 @@ void ElfFile::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::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) -- cgit v1.2.3-54-g00ecf