|
@@ -0,0 +1,69 @@
|
|
|
+From ccf93148aa3587dd98a02e253cdc42a7af14df1e Mon Sep 17 00:00:00 2001
|
|
|
+From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
|
+Date: Sat, 29 Aug 2020 16:04:15 +0200
|
|
|
+Subject: [PATCH] Provide replacement function for strerror_l()
|
|
|
+
|
|
|
+strerror_l() is not implemented in some C libraries, such as uClibc,
|
|
|
+so let's provide a simple replacement function that falls back on
|
|
|
+strerror().
|
|
|
+
|
|
|
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
|
+---
|
|
|
+ configure.ac | 2 ++
|
|
|
+ src/plugins/crypto.c | 7 +++++++
|
|
|
+ src/utils/module.c | 8 ++++++++
|
|
|
+ 3 files changed, 17 insertions(+)
|
|
|
+
|
|
|
+diff --git a/configure.ac b/configure.ac
|
|
|
+index c2d22c2..36aeb51 100644
|
|
|
+--- a/configure.ac
|
|
|
++++ b/configure.ac
|
|
|
+@@ -137,6 +137,8 @@ AC_CHECK_HEADERS([dlfcn.h string.h unistd.h sys/fcntl.h sys/ioctl.h linux/random
|
|
|
+ [LIBBLOCKDEV_SOFT_FAILURE([Header file $ac_header not found.])],
|
|
|
+ [])
|
|
|
+
|
|
|
++AC_CHECK_FUNCS([strerror_l])
|
|
|
++
|
|
|
+ AC_ARG_WITH([bcache],
|
|
|
+ AS_HELP_STRING([--with-bcache], [support bcache @<:@default=yes@:>@]),
|
|
|
+ [],
|
|
|
+diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c
|
|
|
+index f4a2e8f..c1bd7b5 100644
|
|
|
+--- a/src/plugins/crypto.c
|
|
|
++++ b/src/plugins/crypto.c
|
|
|
+@@ -52,6 +52,13 @@
|
|
|
+
|
|
|
+ #define UNUSED __attribute__((unused))
|
|
|
+
|
|
|
++#if !defined(HAVE_STRERROR_L)
|
|
|
++static char *strerror_l(int errnum, locale_t locale UNUSED)
|
|
|
++{
|
|
|
++ return strerror(errnum);
|
|
|
++}
|
|
|
++#endif
|
|
|
++
|
|
|
+ /**
|
|
|
+ * SECTION: crypto
|
|
|
+ * @short_description: plugin for operations with encrypted devices
|
|
|
+diff --git a/src/utils/module.c b/src/utils/module.c
|
|
|
+index 9750e24..086bec0 100644
|
|
|
+--- a/src/utils/module.c
|
|
|
++++ b/src/utils/module.c
|
|
|
+@@ -27,6 +27,14 @@
|
|
|
+
|
|
|
+ #include "module.h"
|
|
|
+
|
|
|
++#define UNUSED __attribute__((unused))
|
|
|
++
|
|
|
++#if !defined(HAVE_STRERROR_L)
|
|
|
++static char *strerror_l(int errnum, locale_t locale UNUSED)
|
|
|
++{
|
|
|
++ return strerror(errnum);
|
|
|
++}
|
|
|
++#endif
|
|
|
+
|
|
|
+ /**
|
|
|
+ * bd_utils_module_error_quark: (skip)
|
|
|
+--
|
|
|
+2.26.2
|
|
|
+
|