aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/ola-readdir-r.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/ola-readdir-r.patch')
-rw-r--r--gnu/packages/patches/ola-readdir-r.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/gnu/packages/patches/ola-readdir-r.patch b/gnu/packages/patches/ola-readdir-r.patch
new file mode 100644
index 0000000000..b4bd98137e
--- /dev/null
+++ b/gnu/packages/patches/ola-readdir-r.patch
@@ -0,0 +1,62 @@
+Fix build failure caused by use of the deprecated readdir_r(3) while
+building with -Werror=deprecated-declarations
+
+Patch copied from upstream source repository:
+https://github.com/daveol/ola/commit/9d8575ff38f76df698ea8889e07a3dee8f21bd68
+
+From 9d8575ff38f76df698ea8889e07a3dee8f21bd68 Mon Sep 17 00:00:00 2001
+From: Dave Olsthoorn <dave.olsthoorn@gmail.com>
+Date: Wed, 2 Mar 2016 11:22:17 +0100
+Subject: [PATCH] Use readdir instead of readdir_r
+
+This replacec the use of readdir_r with readdir since readdir seems to
+be both dangarous and deprecated in newer versions of glibc.
+
+This fixes #1055
+---
+ common/file/Util.cpp | 17 ++++++++---------
+ 1 file changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/common/file/Util.cpp b/common/file/Util.cpp
+index e2261fd..0ffddd3 100644
+--- a/common/file/Util.cpp
++++ b/common/file/Util.cpp
+@@ -128,30 +128,29 @@ bool FindMatchingFiles(const string &directory,
+ FindClose(h_find);
+ #else
+ DIR *dp;
+- struct dirent dir_ent;
+- struct dirent *dir_ent_p;
++ struct dirent *dir_ent;
+ if ((dp = opendir(directory.data())) == NULL) {
+ OLA_WARN << "Could not open " << directory << ":" << strerror(errno);
+ return false;
+ }
+
+- if (readdir_r(dp, &dir_ent, &dir_ent_p)) {
+- OLA_WARN << "readdir_r(" << directory << "): " << strerror(errno);
++ if ((dir_ent = readdir(dp)) == NULL) {
++ OLA_WARN << "readdir(" << directory << "): " << strerror(errno);
+ closedir(dp);
+ return false;
+ }
+
+- while (dir_ent_p != NULL) {
++ while (dir_ent != NULL) {
+ vector<string>::const_iterator iter;
+ for (iter = prefixes.begin(); iter != prefixes.end(); ++iter) {
+- if (!strncmp(dir_ent_p->d_name, iter->data(), iter->size())) {
++ if (!strncmp(dir_ent->d_name, iter->data(), iter->size())) {
+ std::ostringstream str;
+- str << directory << PATH_SEPARATOR << dir_ent_p->d_name;
++ str << directory << PATH_SEPARATOR << dir_ent->d_name;
+ files->push_back(str.str());
+ }
+ }
+- if (readdir_r(dp, &dir_ent, &dir_ent_p)) {
+- OLA_WARN << "readdir_r(" << directory << "): " << strerror(errno);
++ if ((dir_ent = readdir(dp)) == NULL) {
++ OLA_WARN << "readdir(" << directory << "): " << strerror(errno);
+ closedir(dp);
+ return false;
+ }