diff options
| -rw-r--r-- | meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch | 46 | ||||
| -rw-r--r-- | meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch | 30 | ||||
| -rw-r--r-- | meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch | 53 | ||||
| -rw-r--r-- | meta/recipes-devtools/patchelf/patchelf/maxsize.patch | 30 | ||||
| -rw-r--r-- | meta/recipes-devtools/patchelf/patchelf_0.9.bb (renamed from meta/recipes-devtools/patchelf/patchelf_0.8.bb) | 10 |
5 files changed, 136 insertions, 33 deletions
diff --git a/meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch b/meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch new file mode 100644 index 0000000000..49050a18d2 --- /dev/null +++ b/meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | From e3658740ec100e4c8cf83295460b032979e1a99a Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Fabio Berton <fabio.berton@ossystems.com.br> | ||
| 3 | Date: Fri, 9 Sep 2016 18:21:32 -0300 | ||
| 4 | Subject: [PATCH] Increase maxSize to 64MB | ||
| 5 | Organization: O.S. Systems Software LTDA. | ||
| 6 | |||
| 7 | Fix error: | ||
| 8 | |||
| 9 | / | ||
| 10 | |ERROR: qemu-native-2.5.0-r1 do_populate_sysroot_setscene: '('patchelf-uninative', | ||
| 11 | |'--set-interpreter', '../build/tmp/sysroots-uninative/x86_64-linux/lib/ | ||
| 12 | |ld-linux-x86-64.so.2', '../build/tmp/work/x86_64-linux/qemu-native/2.5.0-r1/ | ||
| 13 | |sstate-install-populate_sysroot/x86_64-linux/usr/bin/qemu-mips64')' | ||
| 14 | |failed with exit code 1 and the following output: | ||
| 15 | |warning: working around a Linux kernel bug by creating a hole of 36032512 | ||
| 16 | |bytes in ‘../build/tmp/work/x86_64-linux/qemu-native/2.5.0-r1/ | ||
| 17 | |sstate-install-populate_sysroot/x86_64-linux/usr/bin/qemu-mips64’ | ||
| 18 | |maximum file size exceeded | ||
| 19 | \ | ||
| 20 | |||
| 21 | Similar issue is discussed here: | ||
| 22 | https://github.com/NixOS/patchelf/issues/47 | ||
| 23 | |||
| 24 | Upstream-Status: Inappropriate [embedded specific] | ||
| 25 | |||
| 26 | Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> | ||
| 27 | --- | ||
| 28 | src/patchelf.cc | 2 +- | ||
| 29 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 30 | |||
| 31 | diff --git a/src/patchelf.cc b/src/patchelf.cc | ||
| 32 | index a59c12d..0fd7355 100644 | ||
| 33 | --- a/src/patchelf.cc | ||
| 34 | +++ b/src/patchelf.cc | ||
| 35 | @@ -279,7 +279,7 @@ static void readFile(string fileName) | ||
| 36 | struct stat st; | ||
| 37 | if (stat(fileName.c_str(), &st) != 0) error("stat"); | ||
| 38 | fileSize = st.st_size; | ||
| 39 | - maxSize = fileSize + 32 * 1024 * 1024; | ||
| 40 | + maxSize = fileSize + 64 * 1024 * 1024; | ||
| 41 | |||
| 42 | contents = (unsigned char *) malloc(fileSize + maxSize); | ||
| 43 | if (!contents) abort(); | ||
| 44 | -- | ||
| 45 | 2.1.4 | ||
| 46 | |||
diff --git a/meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch b/meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch new file mode 100644 index 0000000000..9ee8a554a7 --- /dev/null +++ b/meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | From 73526cb546ae6b00ea6169e40b01fb7b5f0dbb50 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Fabio Berton <fabio.berton@ossystems.com.br> | ||
| 3 | Date: Thu, 28 Jul 2016 11:05:06 -0300 | ||
| 4 | Subject: [PATCH] Skip empty section (fixes #66) | ||
| 5 | Organization: O.S. Systems Software LTDA. | ||
| 6 | |||
| 7 | Upstream-Status: Pending | ||
| 8 | |||
| 9 | Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> | ||
| 10 | --- | ||
| 11 | src/patchelf.cc | 3 +++ | ||
| 12 | 1 file changed, 3 insertions(+) | ||
| 13 | |||
| 14 | diff --git a/src/patchelf.cc b/src/patchelf.cc | ||
| 15 | index 136098f..2677a26 100644 | ||
| 16 | --- a/src/patchelf.cc | ||
| 17 | +++ b/src/patchelf.cc | ||
| 18 | @@ -684,6 +684,9 @@ void ElfFile<ElfFileParamNames>::rewriteSectionsExecutable() | ||
| 19 | for (unsigned int i = 1; i <= lastReplaced; ++i) { | ||
| 20 | Elf_Shdr & shdr(shdrs[i]); | ||
| 21 | string sectionName = getSectionName(shdr); | ||
| 22 | + if (sectionName == "") { | ||
| 23 | + continue; | ||
| 24 | + } | ||
| 25 | debug("looking at section `%s'\n", sectionName.c_str()); | ||
| 26 | /* !!! Why do we stop after a .dynstr section? I can't | ||
| 27 | remember! */ | ||
| 28 | -- | ||
| 29 | 2.1.4 | ||
| 30 | |||
diff --git a/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch b/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch new file mode 100644 index 0000000000..9fafec4b59 --- /dev/null +++ b/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | From 2a603acb65993698c21f1c6eb7664f93ad830d52 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Fabio Berton <fabio.berton@ossystems.com.br> | ||
| 3 | Date: Fri, 9 Sep 2016 16:00:42 -0300 | ||
| 4 | Subject: [PATCH] handle read-only files | ||
| 5 | Organization: O.S. Systems Software LTDA. | ||
| 6 | |||
| 7 | Patch from: | ||
| 8 | https://github.com/darealshinji/patchelf/commit/40e66392bc4b96e9b4eda496827d26348a503509 | ||
| 9 | |||
| 10 | Upstream-Status: Pending | ||
| 11 | |||
| 12 | Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> | ||
| 13 | --- | ||
| 14 | src/patchelf.cc | 16 +++++++++++++++- | ||
| 15 | 1 file changed, 15 insertions(+), 1 deletion(-) | ||
| 16 | |||
| 17 | diff --git a/src/patchelf.cc b/src/patchelf.cc | ||
| 18 | index 136098f..aea360e 100644 | ||
| 19 | --- a/src/patchelf.cc | ||
| 20 | +++ b/src/patchelf.cc | ||
| 21 | @@ -388,7 +388,17 @@ void ElfFile<ElfFileParamNames>::sortShdrs() | ||
| 22 | |||
| 23 | static void writeFile(string fileName) | ||
| 24 | { | ||
| 25 | - int fd = open(fileName.c_str(), O_TRUNC | O_WRONLY); | ||
| 26 | + struct stat st; | ||
| 27 | + int fd; | ||
| 28 | + | ||
| 29 | + if (stat(fileName.c_str(), &st) != 0) | ||
| 30 | + error("stat"); | ||
| 31 | + | ||
| 32 | + if (chmod(fileName.c_str(), 0600) != 0) | ||
| 33 | + error("chmod"); | ||
| 34 | + | ||
| 35 | + fd = open(fileName.c_str(), O_TRUNC | O_WRONLY); | ||
| 36 | + | ||
| 37 | if (fd == -1) | ||
| 38 | error("open"); | ||
| 39 | |||
| 40 | @@ -397,6 +407,10 @@ static void writeFile(string fileName) | ||
| 41 | |||
| 42 | if (close(fd) != 0) | ||
| 43 | error("close"); | ||
| 44 | + | ||
| 45 | + if (chmod(fileName.c_str(), st.st_mode) != 0) | ||
| 46 | + error("chmod"); | ||
| 47 | + | ||
| 48 | } | ||
| 49 | |||
| 50 | |||
| 51 | -- | ||
| 52 | 2.1.4 | ||
| 53 | |||
diff --git a/meta/recipes-devtools/patchelf/patchelf/maxsize.patch b/meta/recipes-devtools/patchelf/patchelf/maxsize.patch deleted file mode 100644 index cc04a89e69..0000000000 --- a/meta/recipes-devtools/patchelf/patchelf/maxsize.patch +++ /dev/null | |||
| @@ -1,30 +0,0 @@ | |||
| 1 | From f6886c2c33a1cf8771163919f3d20f6340c0ce38 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Eelco Dolstra <eelco.dolstra@logicblox.com> | ||
| 3 | Date: Fri, 10 Jul 2015 18:12:37 +0200 | ||
| 4 | Subject: [PATCH] Quick fix for #47 | ||
| 5 | |||
| 6 | https://github.com/NixOS/patchelf/issues/47 | ||
| 7 | |||
| 8 | Avoid issues with holes in binaries such as qemu-pcc from qemu-native. | ||
| 9 | |||
| 10 | Upstream-Status: Submitted | ||
| 11 | RP | ||
| 12 | 2016/2/3 | ||
| 13 | |||
| 14 | --- | ||
| 15 | src/patchelf.cc | 2 +- | ||
| 16 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 17 | |||
| 18 | diff --git a/src/patchelf.cc b/src/patchelf.cc | ||
| 19 | index 8566ed9..df75593 100644 | ||
| 20 | --- a/src/patchelf.cc | ||
| 21 | +++ b/src/patchelf.cc | ||
| 22 | @@ -248,7 +248,7 @@ static void readFile(string fileName, mode_t * fileMode) | ||
| 23 | if (stat(fileName.c_str(), &st) != 0) error("stat"); | ||
| 24 | fileSize = st.st_size; | ||
| 25 | *fileMode = st.st_mode; | ||
| 26 | - maxSize = fileSize + 8 * 1024 * 1024; | ||
| 27 | + maxSize = fileSize + 64 * 1024 * 1024; | ||
| 28 | |||
| 29 | contents = (unsigned char *) malloc(fileSize + maxSize); | ||
| 30 | if (!contents) abort(); \ No newline at end of file | ||
diff --git a/meta/recipes-devtools/patchelf/patchelf_0.8.bb b/meta/recipes-devtools/patchelf/patchelf_0.9.bb index 8484a7e589..54e654bdcb 100644 --- a/meta/recipes-devtools/patchelf/patchelf_0.8.bb +++ b/meta/recipes-devtools/patchelf/patchelf_0.9.bb | |||
| @@ -1,10 +1,14 @@ | |||
| 1 | SRC_URI = "http://nixos.org/releases/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.bz2 \ | 1 | SRC_URI = "http://nixos.org/releases/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.bz2 \ |
| 2 | file://maxsize.patch" | 2 | file://Skip-empty-section-fixes-66.patch \ |
| 3 | file://handle-read-only-files.patch \ | ||
| 4 | file://Increase-maxSize-to-64MB.patch \ | ||
| 5 | " | ||
| 6 | |||
| 3 | LICENSE = "GPLv3" | 7 | LICENSE = "GPLv3" |
| 4 | SUMMARY = "Tool to allow editing of RPATH and interpreter fields in ELF binaries" | 8 | SUMMARY = "Tool to allow editing of RPATH and interpreter fields in ELF binaries" |
| 5 | 9 | ||
| 6 | SRC_URI[md5sum] = "5b151e3c83b31f5931b4a9fc01635bfd" | 10 | SRC_URI[md5sum] = "d02687629c7e1698a486a93a0d607947" |
| 7 | SRC_URI[sha256sum] = "c99f84d124347340c36707089ec8f70530abd56e7827c54d506eb4cc097a17e7" | 11 | SRC_URI[sha256sum] = "a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83" |
| 8 | 12 | ||
| 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" | 13 | LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" |
| 10 | 14 | ||
