| From 01883cc14904e55d90955ad7cd9fc55bc18364ac Mon Sep 17 00:00:00 2001 |
| From: Thomas Petazzoni <thomas.petazzoni@bootlin.com> |
| Date: Sat, 20 Jan 2024 13:29:28 +0100 |
| 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 define that falls back on |
| strerror() in utils.h header and include it where missing. |
| |
| Upstream: N/A since it's due uclibc only |
| |
| Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> |
| Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> |
| [Giulio: ported to version 3.0 and 3.1] |
| --- |
| configure.ac | 2 ++ |
| src/utils/module.c | 1 + |
| src/utils/utils.h | 4 ++++ |
| 3 files changed, 7 insertions(+) |
| |
| diff --git a/configure.ac b/configure.ac |
| index 02b26e3e..67341134 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -120,6 +120,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([escrow], |
| AS_HELP_STRING([--with-escrow], [support escrow @<:@default=yes@:>@]), |
| [], |
| diff --git a/src/utils/module.c b/src/utils/module.c |
| index 6557c3ab..5893f0ac 100644 |
| --- a/src/utils/module.c |
| +++ b/src/utils/module.c |
| @@ -28,6 +28,7 @@ |
| #include "module.h" |
| #include "exec.h" |
| #include "logging.h" |
| +#include "utils.h" |
| |
| |
| /** |
| diff --git a/src/utils/utils.h b/src/utils/utils.h |
| index 801a8b6e..b2bdf0d0 100644 |
| --- a/src/utils/utils.h |
| +++ b/src/utils/utils.h |
| @@ -9,6 +9,10 @@ |
| #include "dbus.h" |
| #include "logging.h" |
| |
| +#if !defined(HAVE_STRERROR_L) |
| +#define strerror_l(errnum, locale) strerror(errnum) |
| +#endif |
| + |
| /** |
| * SECTION: utils |
| * @short_description: library providing utility functions used by the blockdev library and its plugins |
| -- |
| 2.34.1 |
| |