If we don't have it, we don't translate system error codes to strings in dwfl_error.c.
Signed-off-by: Ulf Hermann <ulf.herm...@qt.io> --- ChangeLog | 4 ++++ configure.ac | 2 ++ libdwfl/ChangeLog | 5 +++++ libdwfl/dwfl_error.c | 4 ++++ 4 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index dd9b9ac..1acc8ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2017-02-22 Ulf Hermann <ulf.herm...@qt.io> + * configure.ac: Check for strerror_r and its variants. + +2017-02-22 Ulf Hermann <ulf.herm...@qt.io> + * configure.ac: Add check for fputs_unlocked. 2017-02-22 Ulf Hermann <ulf.herm...@qt.io> diff --git a/configure.ac b/configure.ac index 8119e07..ce40539 100644 --- a/configure.ac +++ b/configure.ac @@ -309,6 +309,8 @@ AC_CHECK_DECLS([fputs_unlocked],[],[], [#define _GNU_SOURCE #include <stdio.h>]) +AC_FUNC_STRERROR_R + AC_CHECK_LIB([stdc++], [__cxa_demangle], [dnl AC_DEFINE([USE_DEMANGLE], [1], [Defined if demangling is enabled])]) AM_CONDITIONAL(DEMANGLE, test "x$ac_cv_lib_stdcpp___cxa_demangle" = "xyes") diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index f5921dc..1a23136 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,5 +1,10 @@ 2017-02-22 Ulf Hermann <ulf.herm...@qt.io> + * dwfl_error.c: If we don't have a strerror_r returning a char*, + output a less useful message in case of a system error. + +2017-02-22 Ulf Hermann <ulf.herm...@qt.io> + * dwfl_module_getsrc_file.c: Include system.h. 2017-02-22 Ulf Hermann <ulf.herm...@qt.io> diff --git a/libdwfl/dwfl_error.c b/libdwfl/dwfl_error.c index 7bcf61c..aba3cca 100644 --- a/libdwfl/dwfl_error.c +++ b/libdwfl/dwfl_error.c @@ -154,7 +154,11 @@ dwfl_errmsg (int error) switch (error &~ 0xffff) { case OTHER_ERROR (ERRNO): +#ifdef STRERROR_R_CHAR_P return strerror_r (error & 0xffff, "bad", 0); +#else + return "Unknown error. See errno"; +#endif case OTHER_ERROR (LIBELF): return elf_errmsg (error & 0xffff); case OTHER_ERROR (LIBDW): -- 2.1.4