123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- 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
|