1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Tue, 18 Feb 2014 10:04:18 +000
---
https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/main/ltrace/musl.patch
--- ./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 <string.h>
+#include <stdio.h>
#include <assert.h>
#include <errno.h>
+#ifdef HAVE_ERROR_H
#include <error.h>
+#endif
#include <stdlib.h>
#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 <stdlib.h>
#include <ctype.h>
#include <errno.h>
+#ifdef HAVE_ERROR_H
#include <error.h>
+#endif
#include <assert.h>
#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 <error.h>
+#endif
#include <errno.h>
+#include <string.h>
#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 <sys/time.h>
+#include <unistd.h>
#if defined(HAVE_LIBUNWIND)
# include <libunwind.h>
|