summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch46
-rw-r--r--meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch30
-rw-r--r--meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch53
-rw-r--r--meta/recipes-devtools/patchelf/patchelf/maxsize.patch30
-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 @@
1From e3658740ec100e4c8cf83295460b032979e1a99a Mon Sep 17 00:00:00 2001
2From: Fabio Berton <fabio.berton@ossystems.com.br>
3Date: Fri, 9 Sep 2016 18:21:32 -0300
4Subject: [PATCH] Increase maxSize to 64MB
5Organization: O.S. Systems Software LTDA.
6
7Fix 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
21Similar issue is discussed here:
22https://github.com/NixOS/patchelf/issues/47
23
24Upstream-Status: Inappropriate [embedded specific]
25
26Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
27---
28 src/patchelf.cc | 2 +-
29 1 file changed, 1 insertion(+), 1 deletion(-)
30
31diff --git a/src/patchelf.cc b/src/patchelf.cc
32index 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--
452.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 @@
1From 73526cb546ae6b00ea6169e40b01fb7b5f0dbb50 Mon Sep 17 00:00:00 2001
2From: Fabio Berton <fabio.berton@ossystems.com.br>
3Date: Thu, 28 Jul 2016 11:05:06 -0300
4Subject: [PATCH] Skip empty section (fixes #66)
5Organization: O.S. Systems Software LTDA.
6
7Upstream-Status: Pending
8
9Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
10---
11 src/patchelf.cc | 3 +++
12 1 file changed, 3 insertions(+)
13
14diff --git a/src/patchelf.cc b/src/patchelf.cc
15index 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--
292.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 @@
1From 2a603acb65993698c21f1c6eb7664f93ad830d52 Mon Sep 17 00:00:00 2001
2From: Fabio Berton <fabio.berton@ossystems.com.br>
3Date: Fri, 9 Sep 2016 16:00:42 -0300
4Subject: [PATCH] handle read-only files
5Organization: O.S. Systems Software LTDA.
6
7Patch from:
8https://github.com/darealshinji/patchelf/commit/40e66392bc4b96e9b4eda496827d26348a503509
9
10Upstream-Status: Pending
11
12Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
13---
14 src/patchelf.cc | 16 +++++++++++++++-
15 1 file changed, 15 insertions(+), 1 deletion(-)
16
17diff --git a/src/patchelf.cc b/src/patchelf.cc
18index 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--
522.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 @@
1From f6886c2c33a1cf8771163919f3d20f6340c0ce38 Mon Sep 17 00:00:00 2001
2From: Eelco Dolstra <eelco.dolstra@logicblox.com>
3Date: Fri, 10 Jul 2015 18:12:37 +0200
4Subject: [PATCH] Quick fix for #47
5
6https://github.com/NixOS/patchelf/issues/47
7
8Avoid issues with holes in binaries such as qemu-pcc from qemu-native.
9
10Upstream-Status: Submitted
11RP
122016/2/3
13
14---
15 src/patchelf.cc | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/src/patchelf.cc b/src/patchelf.cc
19index 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 @@
1SRC_URI = "http://nixos.org/releases/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.bz2 \ 1SRC_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
3LICENSE = "GPLv3" 7LICENSE = "GPLv3"
4SUMMARY = "Tool to allow editing of RPATH and interpreter fields in ELF binaries" 8SUMMARY = "Tool to allow editing of RPATH and interpreter fields in ELF binaries"
5 9
6SRC_URI[md5sum] = "5b151e3c83b31f5931b4a9fc01635bfd" 10SRC_URI[md5sum] = "d02687629c7e1698a486a93a0d607947"
7SRC_URI[sha256sum] = "c99f84d124347340c36707089ec8f70530abd56e7827c54d506eb4cc097a17e7" 11SRC_URI[sha256sum] = "a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83"
8 12
9LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" 13LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
10 14