--- ./configure.ac.orig +++ ./configure.ac @@ -34,6 +34,7 @@ case "${host_os}" in linux-gnu*) HOST_OS="linux-gnu" ;; linux-uclibc*) HOST_OS="linux-gnu" ;; + linux-musl*) HOST_OS="linux-gnu" ;; *) AC_MSG_ERROR([unkown host-os ${host_os}]) ;; esac AC_SUBST(HOST_OS) @@ -234,6 +235,7 @@ sys/param.h \ sys/time.h \ unistd.h \ + error.h \ ]) # Checks for typedefs, structures, and compiler characteristics. diff --git a/expr.c b/expr.c index 32860fd..374c549 100644 --- a/expr.c +++ b/expr.c @@ -19,9 +19,12 @@ */ #include +#include #include #include +#ifdef HAVE_ERROR_H #include +#endif #include #include "expr.h" @@ -330,8 +333,11 @@ expr_self(void) static struct expr_node *node = NULL; if (node == NULL) { node = malloc(sizeof(*node)); - if (node == NULL) - error(1, errno, "malloc expr_self"); + if (node == NULL) { + fprintf(stderr, "%s: malloc expr_self\n", + strerror(errno)); + exit(1); + } expr_init_self(node); } return node; diff --git a/glob.c b/glob.c index 075c867..06fec47 100644 --- a/glob.c +++ b/glob.c @@ -180,7 +180,7 @@ glob_to_regex(const char *glob, char **retp) goto fail; } *retp = buf; - return REG_NOERROR; + return 0; } int @@ -188,7 +188,7 @@ globcomp(regex_t *preg, const char *glob, int cflags) { char *regex = NULL; int status = glob_to_regex(glob, ®ex); - if (status != REG_NOERROR) + if (status != 0) return status; assert(regex != NULL); status = regcomp(preg, regex, cflags); diff --git a/options.c b/options.c index 1e19dc7..1dc5e1e 100644 --- a/options.c +++ b/options.c @@ -204,7 +204,7 @@ compile_libname(const char *expr, const char *a_lib, int lib_re_p, regex_t lib_re; int status = (lib_re_p ? regcomp : globcomp)(&lib_re, lib, 0); - if (status != REG_NOERROR) { + if (status != 0) { char buf[100]; regerror(status, &lib_re, buf, sizeof buf); fprintf(stderr, "Rule near '%s' will be ignored: %s.\n", diff --git a/read_config_file.c b/read_config_file.c index e247436..73528fe 100644 --- a/read_config_file.c +++ b/read_config_file.c @@ -27,7 +27,9 @@ #include #include #include +#ifdef HAVE_ERROR_H #include +#endif #include #include "common.h" @@ -1258,8 +1260,12 @@ void init_global_config(void) { struct arg_type_info *info = malloc(2 * sizeof(*info)); - if (info == NULL) - error(1, errno, "malloc in init_global_config"); + if (info == NULL) { + report_error(filename, line_no, + "%s: malloc in init_global_config", + strerror(errno)); + exit(1); + } memset(info, 0, 2 * sizeof(*info)); info[0].type = ARGTYPE_POINTER; diff --git a/zero.c b/zero.c index bc119ee..e685f59 100644 --- a/zero.c +++ b/zero.c @@ -18,8 +18,11 @@ * 02110-1301 USA */ +#ifdef HAVE_ERROR_H #include +#endif #include +#include #include "zero.h" #include "common.h" @@ -96,8 +99,11 @@ expr_node_zero(void) static struct expr_node *node = NULL; if (node == NULL) { node = malloc(sizeof(*node)); - if (node == NULL) - error(1, errno, "malloc expr_node_zero"); + if (node == NULL) { + report_global_error("%s: malloc expr_node_zero", + strerror(errno)); + exit(1); + } expr_init_cb1(node, &zero1_callback, expr_self(), 0, (void *)-1); } --- ./proc.h.orig +++ ./proc.h @@ -26,6 +26,7 @@ #include "config.h" #include +#include #if defined(HAVE_LIBUNWIND) # include