From c19e2c23be453b6ba69aa456c6eb4dd1779dd860 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: e464efc07a8997c43998a9c6a9544be11ab4f303) 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