diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-02-11 13:42:54 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-02-11 13:45:04 +0000 |
commit | bcdba091d99f9a3ae67c0ba17fcf27329698a0c0 (patch) | |
tree | a0f71d08fb5397afa8f1318743ab68f4b0b5f471 /meta/recipes-devtools | |
parent | f4dbdb9774eb61a71289fe91b017b4caf9c34b16 (diff) | |
download | openembedded-core-contrib-bcdba091d99f9a3ae67c0ba17fcf27329698a0c0.tar.gz |
patchelf: Fix corrupted file mode patch
The recent patchelf upgrades corrupted the file permissions patch we
carry as upstream inserted an early exit to the funciton.
This showed up as corrupted file modes when testing a new uninative tarball
containing this patchelf.
Rework and tweak the patch to fix this.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r-- | meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch b/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch index 8d9a50a697..b755a263a4 100644 --- a/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch +++ b/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch @@ -14,11 +14,11 @@ Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> src/patchelf.cc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) -diff --git a/src/patchelf.cc b/src/patchelf.cc -index 1aeae88..6b77afe 100644 ---- a/src/patchelf.cc -+++ b/src/patchelf.cc -@@ -534,9 +534,19 @@ void ElfFile<ElfFileParamNames>::sortShdrs() +Index: git/src/patchelf.cc +=================================================================== +--- git.orig/src/patchelf.cc ++++ git/src/patchelf.cc +@@ -534,9 +534,19 @@ void ElfFile<ElfFileParamNames>::sortShd static void writeFile(const std::string & fileName, const FileContents & contents) { @@ -39,17 +39,27 @@ index 1aeae88..6b77afe 100644 if (fd == -1) error("open"); -@@ -564,6 +574,10 @@ static void writeFile(const std::string & fileName, const FileContents & content - if (errno == EINTR) - return; - error("close"); +@@ -551,8 +561,6 @@ static void writeFile(const std::string + bytesWritten += portion; + } + +- if (close(fd) >= 0) +- return; + /* + * Just ignore EINTR; a retry loop is the wrong thing to do. + * +@@ -561,9 +569,11 @@ static void writeFile(const std::string + * http://utcc.utoronto.ca/~cks/space/blog/unix/CloseEINTR + * https://sites.google.com/site/michaelsafyan/software-engineering/checkforeintrwheninvokingclosethinkagain + */ +- if (errno == EINTR) +- return; +- error("close"); ++ if ((close(fd) < 0) && errno != EINTR) ++ error("close"); + + if (chmod(fileName.c_str(), st.st_mode) != 0) + error("chmod"); -+ } --- -2.25.1 - |