guix-devel/gnu/packages/patches/ola-readdir-r.patch

63 lines
2.2 KiB
Diff

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;
}