[mpich] MPICH primary repository branch, master, updated. v3.2b4-233-gb78f14c
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "MPICH primary repository". The branch, master has been updated via b78f14c8e3b732817f5772dc88f6a5d1fe56498c (commit) from 16e3319b40808591a8f48e2f09e4574c20e38254 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.mpich.org/mpich.git/commitdiff/b78f14c8e3b732817f5772dc88f6a5d1fe... commit b78f14c8e3b732817f5772dc88f6a5d1fe56498c Author: Rob Latham <[email protected]> Date: Tue Sep 15 21:56:21 2015 -0500 implement and use MPL_strerror The mpl printf routines tried to use strerror but we apparently forgot to write a configure check for it. In the unlikely case where strerror not available we provide a dead-simple version. Signed-off-by: Pavan Balaji <[email protected]> diff --git a/src/mpl/configure.ac b/src/mpl/configure.ac index 8d348e6..c4e798c 100644 --- a/src/mpl/configure.ac +++ b/src/mpl/configure.ac @@ -194,6 +194,12 @@ if test "$ac_cv_func_putenv" = "yes" ; then PAC_FUNC_NEEDS_DECL([#include <stdlib.h>],putenv) fi +# Check for strerror +AC_CHECK_FUNCS(strerror) +if test "$ac_cv_func_strerror" = "yes" ; then + PAC_FUNC_NEEDS_DECL([#include <string.h>],strerror) +fi + dnl Check for ATTRIBUTE PAC_C_GNU_ATTRIBUTE diff --git a/src/mpl/include/mplstr.h b/src/mpl/include/mplstr.h index 0699b15..26cecb6 100644 --- a/src/mpl/include/mplstr.h +++ b/src/mpl/include/mplstr.h @@ -48,6 +48,15 @@ extern int strncmp(const char *s1, const char *s2, size_t n); #error "strncmp is required" #endif /* MPL_HAVE_STRNCMP */ +#if defined MPL_NEEDS_STRERROR_DECL +extern char *strerror(int errnum); +#endif +#if defined MPL_HAVE_STRERROR +#define MPL_strerror strerror +#else +char *MPL_strerror(int errnum); +#endif /* MPL_HAVE_STRERROR */ + /* *INDENT-ON* */ #if defined(__cplusplus) } diff --git a/src/mpl/src/mplmsg.c b/src/mpl/src/mplmsg.c index 8286569..94a38d9 100644 --- a/src/mpl/src/mplmsg.c +++ b/src/mpl/src/mplmsg.c @@ -51,17 +51,10 @@ int MPL_internal_sys_error_printf(const char *name, int errnum, const char *str, const char *format_str = 0; /* Prepend information on the system error */ -#ifdef HAVE_STRERROR if (!format_str) format_str = "Error in system call %s: %s\n"; - fprintf(stderr, format_str, name, strerror(errnum)); -#else - if (!format_str) - format_str = "Error in system call %s errno = %d\n"; - - fprintf(stderr, "Error in %s: errno = %d\n", name, errnum); -#endif + fprintf(stderr, format_str, name, MPL_strerror(errnum)); /* Now add the message that is specific to this use, if any */ if (str) { diff --git a/src/mpl/src/mplstr.c b/src/mpl/src/mplstr.c index 1f1f8f6..941493b 100644 --- a/src/mpl/src/mplstr.c +++ b/src/mpl/src/mplstr.c @@ -298,3 +298,17 @@ char *MPL_strsep(char **stringp, const char *delim) } } + +/* there's no standard portable way to convert error codes to human readable + * strings. The standard way to do that is via strerror() but if for some + * resason we don't have it, then we'll merely output the error code seen */ +#if !defined MPL_HAVE_STRERROR +char *MPL_strerror(int errnum) +{ +#define STRERROR_SIZE 256 + static char msgbuf[STRERROR_SIZE]; + snprintf(msgbuf, STRERROR_SIZE, "errno = %d", errnum); +#undef STRERROR_SIZE + return msgbuf; +} +#endif /* MPL_HAVE_STRERROR */ ----------------------------------------------------------------------- Summary of changes: src/mpl/configure.ac | 6 ++++++ src/mpl/include/mplstr.h | 9 +++++++++ src/mpl/src/mplmsg.c | 9 +-------- src/mpl/src/mplstr.c | 14 ++++++++++++++ 4 files changed, 30 insertions(+), 8 deletions(-) hooks/post-receive -- MPICH primary repository
participants (1)
-
noreply@mpich.org