This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
[PATCH v2] Check for existence of GNU-style strerror_r
- From: Ulf Hermann <ulf dot hermann at qt dot io>
- To: <elfutils-devel at sourceware dot org>
- Date: Thu, 4 May 2017 11:53:16 +0200
- Subject: [PATCH v2] Check for existence of GNU-style strerror_r
- Authentication-results: sourceware.org; auth=none
- Authentication-results: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=qt.io;
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qtcompany.onmicrosoft.com; s=selector1-qt-io; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=7sjRyx1PtXBqakTyVva9GIYNVQLx5Zd4dIJcDlslsQc=; b=g0YVYdrqAbxR343AvsYlmpNjgSPXSyfR89MvWSERZUs+lTtKF1wThkercUb0V4b2miNTLuWAhB2TkikAEbMQpKZahqwNWXlO1f7UyTbh8jAYe+S/K4CwTSCSwhOLN5qKlZ5zUrCFFtxMx1az0wqNDmBDUvgUPhS1+qvfSjIluEk=
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
We cannot get GNU strerror_r from gnulib.
If we don't have it, we don't translate system error codes to strings in
dwfl_error.c.
(rebased on top of all the other patches)
Signed-off-by: Ulf Hermann <ulf.hermann@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 7a40c9d..662c633 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -48,6 +48,10 @@
2017-04-21 Ulf Hermann <ulf.hermann@qt.io>
+ * configure.ac: Check for strerror_r and its variants.
+
+2017-04-21 Ulf Hermann <ulf.hermann@qt.io>
+
* configure.ac: Add check for GNU-style basename.
2017-02-15 Ulf Hermann <ulf.hermann@qt.io>
diff --git a/configure.ac b/configure.ac
index e55360d..6cbd70d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -456,6 +456,8 @@ char *basename(const char *path);
#endif
])
+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 a7e6e30..26a3599 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -100,6 +100,11 @@
the note name data is the empty string.
(dwfl_core_file_attach): Likewise.
+2017-02-22 Ulf Hermann <ulf.hermann@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-15 Ulf Hermann <ulf.hermann@qt.io>
* linux-kernel-modules.c: Include system.h.
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