diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/recipes-devtools/patchelf/patchelf/alignmentfix.patch | 20 |
1 files changed, 11 insertions, 9 deletions
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 | |||
31 | =================================================================== | 31 | =================================================================== |
32 | --- git.orig/src/patchelf.cc | 32 | --- git.orig/src/patchelf.cc |
33 | +++ git/src/patchelf.cc | 33 | +++ git/src/patchelf.cc |
34 | @@ -1035,6 +1035,8 @@ void ElfFile<ElfFileParamNames>::normali | 34 | @@ -1010,8 +1010,9 @@ void ElfFile<ElfFileParamNames>::normali |
35 | phdrs.push_back(new_phdr); | 35 | size_t size = 0; |
36 | 36 | for (const auto & shdr : shdrs) { | |
37 | curr_off += size; | 37 | if (rdi(shdr.sh_type) != SHT_NOTE) continue; |
38 | + /* The next section offset would be aligned */ | 38 | - if (rdi(shdr.sh_offset) != curr_off) continue; |
39 | + curr_off = roundUp(curr_off, sectionAlignment); | 39 | + if (rdi(shdr.sh_offset) != roundUp(curr_off, rdi(shdr.sh_addralign))) continue; |
40 | } | 40 | size = rdi(shdr.sh_size); |
41 | } | 41 | + curr_off = roundUp(curr_off, rdi(shdr.sh_addralign)); |
42 | wri(hdr->e_phnum, phdrs.size()); | 42 | break; |
43 | } | ||
44 | if (size == 0) | ||