1 |
commit: de88aff0a839844526ae262f8961ec4372fed238 |
2 |
Author: William Hubbs <w.d.hubbs <AT> gmail <DOT> com> |
3 |
AuthorDate: Mon Sep 23 01:23:56 2013 +0000 |
4 |
Commit: William Hubbs <williamh <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Sep 27 03:18:21 2013 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/openrc.git;a=commit;h=de88aff0 |
7 |
|
8 |
Make einfo routines private |
9 |
|
10 |
The libeinfo library has no consumers other than OpenRC, so there is no |
11 |
reason for it to be maintained as a library. The einfo routines are now |
12 |
an object that links with the rc binary. |
13 |
|
14 |
--- |
15 |
man/Makefile | 2 +- |
16 |
man/einfo.3 | 210 -------------------------------- |
17 |
pkgconfig/Makefile | 4 +- |
18 |
pkgconfig/einfo.pc.in | 9 -- |
19 |
src/Makefile | 2 +- |
20 |
src/libeinfo/.gitignore | 1 - |
21 |
src/libeinfo/Makefile | 12 -- |
22 |
src/libeinfo/einfo.map | 35 ------ |
23 |
src/rc/Makefile | 27 ++-- |
24 |
src/{libeinfo/libeinfo.c => rc/einfo.c} | 110 +++++------------ |
25 |
src/{libeinfo => rc}/einfo.h | 68 ++++------- |
26 |
src/test/einfo.data.list | 1 - |
27 |
src/test/einfo.funcs.list | 52 -------- |
28 |
src/test/runtests.sh | 18 --- |
29 |
14 files changed, 79 insertions(+), 472 deletions(-) |
30 |
|
31 |
diff --git a/man/Makefile b/man/Makefile |
32 |
index 4110c8f..6a106e7 100644 |
33 |
--- a/man/Makefile |
34 |
+++ b/man/Makefile |
35 |
@@ -1,4 +1,4 @@ |
36 |
-MAN3= einfo.3 \ |
37 |
+MAN3= \ |
38 |
rc_config.3 rc_deptree.3 rc_find_pids.3 rc_plugin_hook.3 \ |
39 |
rc_runlevel.3 rc_service.3 rc_stringlist.3 |
40 |
MAN8= rc-service.8 rc-status.8 rc-update.8 rc.8 runscript.8 \ |
41 |
|
42 |
diff --git a/man/einfo.3 b/man/einfo.3 |
43 |
deleted file mode 100644 |
44 |
index f7b1fd2..0000000 |
45 |
--- a/man/einfo.3 |
46 |
+++ /dev/null |
47 |
@@ -1,210 +0,0 @@ |
48 |
-.\" Copyright (c) 2007-2008 Roy Marples |
49 |
-.\" |
50 |
-.\" Redistribution and use in source and binary forms, with or without |
51 |
-.\" modification, are permitted provided that the following conditions |
52 |
-.\" are met: |
53 |
-.\" 1. Redistributions of source code must retain the above copyright |
54 |
-.\" notice, this list of conditions and the following disclaimer. |
55 |
-.\" 2. Redistributions in binary form must reproduce the above copyright |
56 |
-.\" notice, this list of conditions and the following disclaimer in the |
57 |
-.\" documentation and/or other materials provided with the distribution. |
58 |
-.\" |
59 |
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |
60 |
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
61 |
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
62 |
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
63 |
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
64 |
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
65 |
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
66 |
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
67 |
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
68 |
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
69 |
-.\" SUCH DAMAGE. |
70 |
-.\" |
71 |
-.Dd Mar 16, 2008 |
72 |
-.Dt EINFO 3 SMM |
73 |
-.Os OpenRC |
74 |
-.Sh NAME |
75 |
-.Nm einfo , ewarn , eerror , ebegin , |
76 |
-.Nm einfon , ewarnn , eerrorn , ebeginn , |
77 |
-.Nm einfov , ewarnv , ebeginv , |
78 |
-.Nm einfovn , ewarnvn , ebeginvn , |
79 |
-.Nm ewarnx , eerrorx , |
80 |
-.Nm eend , ewend , |
81 |
-.Nm eendv , ewendv , |
82 |
-.Nm ebracket , |
83 |
-.Nm eindent , eoutdent , |
84 |
-.Nm eindentv , eoutdentv , |
85 |
-.Nm eprefix |
86 |
-.Nd colorful informational output |
87 |
-.Sh LIBRARY |
88 |
-Enhanced Information output library (libeinfo, -leinfo) |
89 |
-.Sh SYNOPSIS |
90 |
-.In einfo.h |
91 |
-.Ft int Fn einfo "const char * restrict format" ... |
92 |
-.Ft int Fn ewarn "const char * restrict format" ... |
93 |
-.Ft int Fn eerror "const char * restrict format" ... |
94 |
-.Ft int Fn ebegin "const char * restrict format" ... |
95 |
-.Ft int Fn einfon "const char * restrict format" ... |
96 |
-.Ft int Fn ewarnn "const char * restrict format" ... |
97 |
-.Ft int Fn eerrorn "const char * restrict format" ... |
98 |
-.Ft int Fn ebeginn "const char * restrict format" ... |
99 |
-.Ft int Fn einfov "const char * restrict format" ... |
100 |
-.Ft int Fn ewarnv "const char * restrict format" ... |
101 |
-.Ft int Fn ebeginv "const char * restrict format" ... |
102 |
-.Ft int Fn einfovn "const char * restrict format" ... |
103 |
-.Ft int Fn ewarnvn "const char * restrict format" ... |
104 |
-.Ft int Fn ebeginvn "const char * restrict format" ... |
105 |
-.Ft int Fn ewarnx "const char * restrict format" ... |
106 |
-.Ft int Fn eerrorx "const char * restrict format" ... |
107 |
-.Ft int Fn eend "int retval" "const char * restrict format" ... |
108 |
-.Ft int Fn ewend "int retval" "const char * restrict format" ... |
109 |
-.Ft int Fn eendv "int retval" "const char * restrict format" ... |
110 |
-.Ft int Fn ewendv "int retval" "const char * restrict format" ... |
111 |
-.Ft void Fn ebracket "int col" "ECOLOR color" "const char * restrict msg" |
112 |
-.Ft void Fn eindent void |
113 |
-.Ft void Fn eoutdent void |
114 |
-.Ft void Fn eindentv void |
115 |
-.Ft void Fn eoutdentv void |
116 |
-.Ft void Fn eprefix "const char * prefix" |
117 |
-.Sh DESCRIPTION |
118 |
-The |
119 |
-.Fn einfo |
120 |
-family of functions provide a simple informational output that is colorised. |
121 |
-Basically |
122 |
-.Fn einfo , |
123 |
-.Fn ewarn |
124 |
-and |
125 |
-.Fn eerror |
126 |
-behave exactly like |
127 |
-.Fn printf |
128 |
-but prefix the output with a colored *. The function called denotes the color |
129 |
-used with |
130 |
-.Fn einfo |
131 |
-being green, |
132 |
-.Fn ewarn |
133 |
-being yellow and |
134 |
-.Fn eerror |
135 |
-being red. |
136 |
-einfo goes to stdout and the others go to stderr. |
137 |
-The number of real characters printed is returned. |
138 |
-.Fn ebegin |
139 |
-is identical to |
140 |
-.Fn einfo |
141 |
-except that 3 dots are appended to the output. |
142 |
-.Pp |
143 |
-.Fn einfov , |
144 |
-.Fn ewarnv |
145 |
-and |
146 |
-.Fn ebeginv |
147 |
-work the same way to |
148 |
-.Fn einfo , |
149 |
-.Fn ewarn , |
150 |
-and |
151 |
-.Fn ebegin |
152 |
-respectively, but only work when |
153 |
-.Va EINFO_VERBOSE |
154 |
-is true. You can also make the |
155 |
-.Fn einfo , |
156 |
-.Fn ewarn , |
157 |
-and |
158 |
-.Fn ebegin |
159 |
-functions silent by setting |
160 |
-.Va EINFO_QUIET |
161 |
-to true. |
162 |
-.Pp |
163 |
-These functions are designed to output a whole line, so they also |
164 |
-append a newline to the string. To stop this behaviour, you can use the |
165 |
-functions |
166 |
-.Fn einfon , |
167 |
-.Fn ewarnn , |
168 |
-.Fn eerrorn , |
169 |
-.Fn einfovn , |
170 |
-.Fn ewarnvn , |
171 |
-and |
172 |
-.Fn ebeginvn . |
173 |
-.Pp |
174 |
-.Fn eend , |
175 |
-.Fn ewend , |
176 |
-.Fn eendv |
177 |
-and |
178 |
-.Fn ewendv |
179 |
-are the counterparts to the above functions. If |
180 |
-.Fa retval |
181 |
-is zero then ok in green is printed in a bracket at the end of the prior |
182 |
-line. Otherwise we print the formatted string using |
183 |
-.Fn error |
184 |
-(or |
185 |
-.Fn ewarn |
186 |
-if |
187 |
-.Fn ewend |
188 |
-is called) !! in red (or yellow if |
189 |
-.Fn ewend |
190 |
-is called) is printed in a bracket at the end of the line. |
191 |
-The value of |
192 |
-.Fa retval |
193 |
-is returned. |
194 |
-.Pp |
195 |
-.Fn ebracket |
196 |
-does the same as |
197 |
-.Fn eend |
198 |
-but prints |
199 |
-.Fa msg |
200 |
-instead of ok or !! in the color |
201 |
-.Fa color |
202 |
-at the column |
203 |
-.Fa col . |
204 |
-.Pp |
205 |
-.Fn eindent |
206 |
-indents subsequent calls to the above functions by 3 characters. |
207 |
-.Fn eoutdent |
208 |
-removes an |
209 |
-.Fn eindent . |
210 |
-.Fn eindentv |
211 |
-and |
212 |
-.Fn eoutdentv |
213 |
-only work when |
214 |
-.Va EINFO_VERBOSE |
215 |
-is true. |
216 |
-.Pp |
217 |
-.Fn eprefix |
218 |
-prefixes the string |
219 |
-.Fa prefix |
220 |
-to the above functions. |
221 |
-.Sh IMPLEMENTATION NOTES |
222 |
-einfo can optionally be linked against the |
223 |
-.Lb libtermcap |
224 |
-so that we can correctly query the connected console for our color and |
225 |
-cursor escape codes. |
226 |
-If not, then we have a hard coded list of terminals we know about that support |
227 |
-the commonly used codes for color and cursor position. |
228 |
-.Sh ENVIRONMENT |
229 |
-.Va EINFO_QUIET |
230 |
-when set to true makes the |
231 |
-.Fn einfo |
232 |
-and |
233 |
-.Fn einfon |
234 |
-family of functions quiet, so nothing is printed. |
235 |
-.Va EERROR_QUIET |
236 |
-when set to true makes the |
237 |
-.Fn eerror |
238 |
-and |
239 |
-.Fn eerrorn |
240 |
-family of functions quiet, so nothing is printed. |
241 |
-.Pp |
242 |
-.Va EINFO_VERBOSE |
243 |
-when set to true makes the |
244 |
-.Fn einfov |
245 |
-and |
246 |
-.Fn einfovn |
247 |
-family of functions work, so they do print. |
248 |
-.Sh FILES |
249 |
-.Pa /etc/init.d/functions.sh |
250 |
-is provided by OpenRC, which allows shell scripts to use the above functions. |
251 |
-For historical reasons our verbose functions are prefixed with v instead of |
252 |
-suffixed. So einfov becomes veinfo, einfovn becomes veinfon. |
253 |
-Rinse and repeat for the other verbose functions. |
254 |
-.Sh SEE ALSO |
255 |
-.Xr printf 3 , |
256 |
-.Sh AUTHORS |
257 |
-.An Roy Marples <roy@×××××××.name> |
258 |
|
259 |
diff --git a/pkgconfig/Makefile b/pkgconfig/Makefile |
260 |
index 4bf28cf..d1dc550 100644 |
261 |
--- a/pkgconfig/Makefile |
262 |
+++ b/pkgconfig/Makefile |
263 |
@@ -1,6 +1,6 @@ |
264 |
DIR= ${LIBDIR}/pkgconfig |
265 |
-SRCS= einfo.pc.in openrc.pc.in |
266 |
-INC= einfo.pc openrc.pc |
267 |
+SRCS= openrc.pc.in |
268 |
+INC= openrc.pc |
269 |
|
270 |
.DEFAULT: |
271 |
${SED} -n -e 's/^VERSION=[[:space:]]*\([^[:space:]]*\).*/#define VERSION "\1${GITVER}\"/p' ../../Makefile > version.h |
272 |
|
273 |
diff --git a/pkgconfig/einfo.pc.in b/pkgconfig/einfo.pc.in |
274 |
deleted file mode 100644 |
275 |
index b5242a6..0000000 |
276 |
--- a/pkgconfig/einfo.pc.in |
277 |
+++ /dev/null |
278 |
@@ -1,9 +0,0 @@ |
279 |
-prefix=@PREFIX@ |
280 |
-exec_prefix=${prefix} |
281 |
-libdir=${prefix}/@LIB@ |
282 |
-includedir=/usr/include |
283 |
- |
284 |
-Name: einfo |
285 |
-Description: Pretty console informational display |
286 |
-Version: @VERSION@ |
287 |
-Libs: -L${libdir} -leinfo |
288 |
|
289 |
diff --git a/src/Makefile b/src/Makefile |
290 |
index ffbf8d6..f4cd512 100644 |
291 |
--- a/src/Makefile |
292 |
+++ b/src/Makefile |
293 |
@@ -1,7 +1,7 @@ |
294 |
# Copyright (c) 2007-2008 Roy Marples <roy@×××××××.name> |
295 |
# Released under the 2-clause BSD license. |
296 |
|
297 |
-SUBDIR= test libeinfo librc rc |
298 |
+SUBDIR= test librc rc |
299 |
|
300 |
ifeq (${MKTOOLS},yes) |
301 |
SUBDIR+= tools |
302 |
|
303 |
diff --git a/src/libeinfo/.gitignore b/src/libeinfo/.gitignore |
304 |
deleted file mode 100644 |
305 |
index 373284d..0000000 |
306 |
--- a/src/libeinfo/.gitignore |
307 |
+++ /dev/null |
308 |
@@ -1 +0,0 @@ |
309 |
-libeinfo.so.1 |
310 |
|
311 |
diff --git a/src/libeinfo/Makefile b/src/libeinfo/Makefile |
312 |
deleted file mode 100644 |
313 |
index ec756b4..0000000 |
314 |
--- a/src/libeinfo/Makefile |
315 |
+++ /dev/null |
316 |
@@ -1,12 +0,0 @@ |
317 |
-LIB= einfo |
318 |
-SHLIB_MAJOR= 1 |
319 |
-SRCS= libeinfo.c |
320 |
-INCS= einfo.h |
321 |
-VERSION_MAP= einfo.map |
322 |
- |
323 |
-CPPFLAGS+= -I../includes |
324 |
- |
325 |
-MK= ../../mk |
326 |
-include ${MK}/lib.mk |
327 |
-include ${MK}/cc.mk |
328 |
-include ${MK}/termcap.mk |
329 |
|
330 |
diff --git a/src/libeinfo/einfo.map b/src/libeinfo/einfo.map |
331 |
deleted file mode 100644 |
332 |
index 428a895..0000000 |
333 |
--- a/src/libeinfo/einfo.map |
334 |
+++ /dev/null |
335 |
@@ -1,35 +0,0 @@ |
336 |
-EINFO_1.0 { |
337 |
-global: |
338 |
- ecolor; |
339 |
- elog; |
340 |
- einfon; |
341 |
- ewarnn; |
342 |
- eerrorn; |
343 |
- einfo; |
344 |
- ewarn; |
345 |
- ewarnx; |
346 |
- eerror; |
347 |
- eerrorx; |
348 |
- einfovn; |
349 |
- ewarnvn; |
350 |
- ebeginvn; |
351 |
- eendvn; |
352 |
- ewendvn; |
353 |
- einfov; |
354 |
- ewarnv; |
355 |
- ebeginv; |
356 |
- ebegin; |
357 |
- eend; |
358 |
- ewend; |
359 |
- ebracket; |
360 |
- eendv; |
361 |
- ewendv; |
362 |
- eindent; |
363 |
- eoutdent; |
364 |
- eindentv; |
365 |
- eoutdentv; |
366 |
- eprefix; |
367 |
- |
368 |
-local: |
369 |
- *; |
370 |
-}; |
371 |
|
372 |
diff --git a/src/rc/Makefile b/src/rc/Makefile |
373 |
index a2e638e..6490826 100644 |
374 |
--- a/src/rc/Makefile |
375 |
+++ b/src/rc/Makefile |
376 |
@@ -1,8 +1,21 @@ |
377 |
PROG= rc |
378 |
-SRCS= checkpath.c fstabinfo.c mountinfo.c start-stop-daemon.c \ |
379 |
- rc-applets.c rc-depend.c rc-logger.c \ |
380 |
- rc-misc.c rc-plugin.c rc-service.c rc-status.c rc-update.c \ |
381 |
- runscript.c rc.c swclock.c |
382 |
+SRCS= \ |
383 |
+ checkpath.c \ |
384 |
+ einfo.c \ |
385 |
+ fstabinfo.c \ |
386 |
+ mountinfo.c \ |
387 |
+ rc-applets.c \ |
388 |
+ rc-depend.c \ |
389 |
+ rc-logger.c \ |
390 |
+ rc-misc.c \ |
391 |
+ rc-plugin.c \ |
392 |
+ rc-service.c \ |
393 |
+ rc-status.c \ |
394 |
+ rc-update.c \ |
395 |
+ rc.c \ |
396 |
+ runscript.c \ |
397 |
+ start-stop-daemon.c \ |
398 |
+ swclock.c |
399 |
|
400 |
CLEANFILES= version.h |
401 |
|
402 |
@@ -30,9 +43,9 @@ RC_SBINLINKS= mark_service_starting mark_service_started \ |
403 |
ALL_LINKS= ${BINLINKS} ${SBINLINKS} ${RC_BINLINKS} ${RC_SBINLINKS} |
404 |
CLEANFILES+= ${ALL_LINKS} |
405 |
|
406 |
-CPPFLAGS+= -I../includes -I../librc -I../libeinfo |
407 |
-LDFLAGS+= -L../librc -L../libeinfo |
408 |
-LDADD+= -lutil -lrc -leinfo |
409 |
+CPPFLAGS+= -I../includes -I../librc |
410 |
+LDFLAGS+= -L../librc |
411 |
+LDADD+= -lutil -lrc |
412 |
|
413 |
include ../../Makefile.inc |
414 |
MK= ../../mk |
415 |
|
416 |
diff --git a/src/libeinfo/libeinfo.c b/src/rc/einfo.c |
417 |
similarity index 87% |
418 |
rename from src/libeinfo/libeinfo.c |
419 |
rename to src/rc/einfo.c |
420 |
index 9791051..306e788 100644 |
421 |
--- a/src/libeinfo/libeinfo.c |
422 |
+++ b/src/rc/einfo.c |
423 |
@@ -52,34 +52,6 @@ const char libeinfo_copyright[] = "Copyright (c) 2007-2008 Roy Marples"; |
424 |
|
425 |
#include "einfo.h" |
426 |
#include "helpers.h" |
427 |
-#include "hidden-visibility.h" |
428 |
- |
429 |
-hidden_proto(ecolor) |
430 |
-hidden_proto(ebegin) |
431 |
-hidden_proto(ebeginv) |
432 |
-hidden_proto(ebracket) |
433 |
-hidden_proto(eend) |
434 |
-hidden_proto(eendv) |
435 |
-hidden_proto(eerror) |
436 |
-hidden_proto(eerrorn) |
437 |
-hidden_proto(eerrorx) |
438 |
-hidden_proto(eindent) |
439 |
-hidden_proto(eindentv) |
440 |
-hidden_proto(einfo) |
441 |
-hidden_proto(einfon) |
442 |
-hidden_proto(einfov) |
443 |
-hidden_proto(einfovn) |
444 |
-hidden_proto(elog) |
445 |
-hidden_proto(eoutdent) |
446 |
-hidden_proto(eoutdentv) |
447 |
-hidden_proto(eprefix) |
448 |
-hidden_proto(ewarn) |
449 |
-hidden_proto(ewarnn) |
450 |
-hidden_proto(ewarnv) |
451 |
-hidden_proto(ewarnvn) |
452 |
-hidden_proto(ewarnx) |
453 |
-hidden_proto(ewend) |
454 |
-hidden_proto(ewendv) |
455 |
|
456 |
/* Incase we cannot work out how many columns from ioctl, supply a default */ |
457 |
#define DEFAULT_COLS 80 |
458 |
@@ -352,7 +324,7 @@ tgoto(const char *cap, int col, int line) |
459 |
#endif |
460 |
|
461 |
static bool |
462 |
-colour_terminal(FILE * EINFO_RESTRICT f) |
463 |
+colour_terminal(FILE *f) |
464 |
{ |
465 |
static int in_colour = -1; |
466 |
char *e, *ee, *end, *d, *p; |
467 |
@@ -499,7 +471,7 @@ colour_terminal(FILE * EINFO_RESTRICT f) |
468 |
} |
469 |
|
470 |
static int |
471 |
-get_term_columns(FILE * EINFO_RESTRICT stream) |
472 |
+get_term_columns(FILE *stream) |
473 |
{ |
474 |
struct winsize ws; |
475 |
char *env = getenv("COLUMNS"); |
476 |
@@ -519,14 +491,13 @@ get_term_columns(FILE * EINFO_RESTRICT stream) |
477 |
} |
478 |
|
479 |
void |
480 |
-eprefix(const char *EINFO_RESTRICT prefix) |
481 |
+eprefix(const char *prefix) |
482 |
{ |
483 |
_eprefix = prefix; |
484 |
} |
485 |
-hidden_def(eprefix) |
486 |
|
487 |
static void EINFO_PRINTF(2, 0) |
488 |
-elogv(int level, const char *EINFO_RESTRICT fmt, va_list ap) |
489 |
+elogv(int level, const char *fmt, va_list ap) |
490 |
{ |
491 |
char *e = getenv("EINFO_LOG"); |
492 |
va_list apc; |
493 |
@@ -542,7 +513,7 @@ elogv(int level, const char *EINFO_RESTRICT fmt, va_list ap) |
494 |
} |
495 |
|
496 |
void |
497 |
-elog(int level, const char *EINFO_RESTRICT fmt, ...) |
498 |
+elog(int level, const char *fmt, ...) |
499 |
{ |
500 |
va_list ap; |
501 |
|
502 |
@@ -550,10 +521,9 @@ elog(int level, const char *EINFO_RESTRICT fmt, ...) |
503 |
elogv(level, fmt, ap); |
504 |
va_end(ap); |
505 |
} |
506 |
-hidden_def(elog) |
507 |
|
508 |
static int |
509 |
-_eindent(FILE * EINFO_RESTRICT stream) |
510 |
+_eindent(FILE *stream) |
511 |
{ |
512 |
char *env = getenv("EINFO_INDENT"); |
513 |
int amount = 0; |
514 |
@@ -577,7 +547,7 @@ _eindent(FILE * EINFO_RESTRICT stream) |
515 |
} |
516 |
|
517 |
static const char * |
518 |
-_ecolor(FILE * EINFO_RESTRICT f, ECOLOR color) |
519 |
+_ecolor(FILE *f, ECOLOR color) |
520 |
{ |
521 |
unsigned int i; |
522 |
|
523 |
@@ -589,7 +559,6 @@ _ecolor(FILE * EINFO_RESTRICT f, ECOLOR color) |
524 |
return ecolors_str[i]; |
525 |
return ""; |
526 |
} |
527 |
-hidden_def(ecolor) |
528 |
|
529 |
const char * |
530 |
ecolor(ECOLOR color) |
531 |
@@ -615,7 +584,7 @@ ecolor(ECOLOR color) |
532 |
} |
533 |
|
534 |
static int EINFO_PRINTF(3, 0) |
535 |
- _einfo(FILE *f, ECOLOR color, const char *EINFO_RESTRICT fmt, va_list va) |
536 |
+ _einfo(FILE *f, ECOLOR color, const char *fmt, va_list va) |
537 |
{ |
538 |
int retval = 0; |
539 |
char *last = getenv("EINFO_LASTCMD"); |
540 |
@@ -643,7 +612,7 @@ static int EINFO_PRINTF(3, 0) |
541 |
#define _eerrorvn(fmt, ap) _einfo(stderr, ECOLOR_BAD, fmt, ap) |
542 |
|
543 |
int |
544 |
-einfon(const char *EINFO_RESTRICT fmt, ...) |
545 |
+einfon(const char *fmt, ...) |
546 |
{ |
547 |
int retval; |
548 |
va_list ap; |
549 |
@@ -656,10 +625,9 @@ einfon(const char *EINFO_RESTRICT fmt, ...) |
550 |
LASTCMD("einfon"); |
551 |
return retval; |
552 |
} |
553 |
-hidden_def(einfon) |
554 |
|
555 |
int |
556 |
-ewarnn(const char *EINFO_RESTRICT fmt, ...) |
557 |
+ewarnn(const char *fmt, ...) |
558 |
{ |
559 |
int retval; |
560 |
va_list ap; |
561 |
@@ -672,10 +640,9 @@ ewarnn(const char *EINFO_RESTRICT fmt, ...) |
562 |
LASTCMD("ewarnn"); |
563 |
return retval; |
564 |
} |
565 |
-hidden_def(ewarnn) |
566 |
|
567 |
int |
568 |
-eerrorn(const char *EINFO_RESTRICT fmt, ...) |
569 |
+eerrorn(const char *fmt, ...) |
570 |
{ |
571 |
int retval; |
572 |
va_list ap; |
573 |
@@ -688,10 +655,9 @@ eerrorn(const char *EINFO_RESTRICT fmt, ...) |
574 |
LASTCMD("errorn"); |
575 |
return retval; |
576 |
} |
577 |
-hidden_def(eerrorn) |
578 |
|
579 |
int |
580 |
-einfo(const char *EINFO_RESTRICT fmt, ...) |
581 |
+einfo(const char *fmt, ...) |
582 |
{ |
583 |
int retval; |
584 |
va_list ap; |
585 |
@@ -705,10 +671,9 @@ einfo(const char *EINFO_RESTRICT fmt, ...) |
586 |
LASTCMD("einfo"); |
587 |
return retval; |
588 |
} |
589 |
-hidden_def(einfo) |
590 |
|
591 |
int |
592 |
-ewarn(const char *EINFO_RESTRICT fmt, ...) |
593 |
+ewarn(const char *fmt, ...) |
594 |
{ |
595 |
int retval; |
596 |
va_list ap; |
597 |
@@ -723,10 +688,9 @@ ewarn(const char *EINFO_RESTRICT fmt, ...) |
598 |
LASTCMD("ewarn"); |
599 |
return retval; |
600 |
} |
601 |
-hidden_def(ewarn) |
602 |
|
603 |
void |
604 |
-ewarnx(const char *EINFO_RESTRICT fmt, ...) |
605 |
+ewarnx(const char *fmt, ...) |
606 |
{ |
607 |
int retval; |
608 |
va_list ap; |
609 |
@@ -740,10 +704,9 @@ ewarnx(const char *EINFO_RESTRICT fmt, ...) |
610 |
} |
611 |
exit(EXIT_FAILURE); |
612 |
} |
613 |
-hidden_def(ewarnx) |
614 |
|
615 |
int |
616 |
-eerror(const char *EINFO_RESTRICT fmt, ...) |
617 |
+eerror(const char *fmt, ...) |
618 |
{ |
619 |
int retval; |
620 |
va_list ap; |
621 |
@@ -758,10 +721,9 @@ eerror(const char *EINFO_RESTRICT fmt, ...) |
622 |
LASTCMD("eerror"); |
623 |
return retval; |
624 |
} |
625 |
-hidden_def(eerror) |
626 |
|
627 |
void |
628 |
-eerrorx(const char *EINFO_RESTRICT fmt, ...) |
629 |
+eerrorx(const char *fmt, ...) |
630 |
{ |
631 |
va_list ap; |
632 |
|
633 |
@@ -774,10 +736,9 @@ eerrorx(const char *EINFO_RESTRICT fmt, ...) |
634 |
} |
635 |
exit(EXIT_FAILURE); |
636 |
} |
637 |
-hidden_def(eerrorx) |
638 |
|
639 |
int |
640 |
-ebegin(const char *EINFO_RESTRICT fmt, ...) |
641 |
+ebegin(const char *fmt, ...) |
642 |
{ |
643 |
int retval; |
644 |
va_list ap; |
645 |
@@ -793,10 +754,9 @@ ebegin(const char *EINFO_RESTRICT fmt, ...) |
646 |
LASTCMD("ebegin"); |
647 |
return retval; |
648 |
} |
649 |
-hidden_def(ebegin) |
650 |
|
651 |
static void |
652 |
-_eend(FILE * EINFO_RESTRICT fp, int col, ECOLOR color, const char *msg) |
653 |
+_eend(FILE *fp, int col, ECOLOR color, const char *msg) |
654 |
{ |
655 |
int i; |
656 |
int cols; |
657 |
@@ -832,7 +792,7 @@ _eend(FILE * EINFO_RESTRICT fp, int col, ECOLOR color, const char *msg) |
658 |
|
659 |
static int EINFO_PRINTF(3, 0) |
660 |
_do_eend(const char *cmd, int retval, |
661 |
- const char *EINFO_RESTRICT fmt, va_list ap) |
662 |
+ const char *fmt, va_list ap) |
663 |
{ |
664 |
int col = 0; |
665 |
FILE *fp = stdout; |
666 |
@@ -855,7 +815,7 @@ _do_eend(const char *cmd, int retval, |
667 |
} |
668 |
|
669 |
int |
670 |
-eend(int retval, const char *EINFO_RESTRICT fmt, ...) |
671 |
+eend(int retval, const char *fmt, ...) |
672 |
{ |
673 |
va_list ap; |
674 |
|
675 |
@@ -867,10 +827,9 @@ eend(int retval, const char *EINFO_RESTRICT fmt, ...) |
676 |
LASTCMD("eend"); |
677 |
return retval; |
678 |
} |
679 |
-hidden_def(eend) |
680 |
|
681 |
int |
682 |
-ewend(int retval, const char *EINFO_RESTRICT fmt, ...) |
683 |
+ewend(int retval, const char *fmt, ...) |
684 |
{ |
685 |
va_list ap; |
686 |
|
687 |
@@ -882,14 +841,12 @@ ewend(int retval, const char *EINFO_RESTRICT fmt, ...) |
688 |
LASTCMD("ewend"); |
689 |
return retval; |
690 |
} |
691 |
-hidden_def(ewend) |
692 |
|
693 |
void |
694 |
ebracket(int col, ECOLOR color, const char *msg) |
695 |
{ |
696 |
_eend(stdout, col, color, msg); |
697 |
} |
698 |
-hidden_def(ebracket) |
699 |
|
700 |
void |
701 |
eindent(void) |
702 |
@@ -910,7 +867,6 @@ eindent(void) |
703 |
snprintf(num, 10, "%08d", amount); |
704 |
setenv("EINFO_INDENT", num, 1); |
705 |
} |
706 |
-hidden_def(eindent) |
707 |
|
708 |
void eoutdent(void) |
709 |
{ |
710 |
@@ -935,10 +891,9 @@ void eoutdent(void) |
711 |
} |
712 |
errno = serrno; |
713 |
} |
714 |
-hidden_def(eoutdent) |
715 |
|
716 |
int |
717 |
-einfovn(const char *EINFO_RESTRICT fmt, ...) |
718 |
+einfovn(const char *fmt, ...) |
719 |
{ |
720 |
int retval; |
721 |
va_list ap; |
722 |
@@ -951,10 +906,9 @@ einfovn(const char *EINFO_RESTRICT fmt, ...) |
723 |
LASTCMD("einfovn"); |
724 |
return retval; |
725 |
} |
726 |
-hidden_def(einfovn) |
727 |
|
728 |
int |
729 |
-ewarnvn(const char *EINFO_RESTRICT fmt, ...) |
730 |
+ewarnvn(const char *fmt, ...) |
731 |
{ |
732 |
int retval; |
733 |
va_list ap; |
734 |
@@ -967,10 +921,9 @@ ewarnvn(const char *EINFO_RESTRICT fmt, ...) |
735 |
LASTCMD("ewarnvn"); |
736 |
return retval; |
737 |
} |
738 |
-hidden_def(ewarnvn) |
739 |
|
740 |
int |
741 |
-einfov(const char *EINFO_RESTRICT fmt, ...) |
742 |
+einfov(const char *fmt, ...) |
743 |
{ |
744 |
int retval; |
745 |
va_list ap; |
746 |
@@ -984,10 +937,9 @@ einfov(const char *EINFO_RESTRICT fmt, ...) |
747 |
LASTCMD("einfov"); |
748 |
return retval; |
749 |
} |
750 |
-hidden_def(einfov) |
751 |
|
752 |
int |
753 |
-ewarnv(const char *EINFO_RESTRICT fmt, ...) |
754 |
+ewarnv(const char *fmt, ...) |
755 |
{ |
756 |
int retval; |
757 |
va_list ap; |
758 |
@@ -1001,10 +953,9 @@ ewarnv(const char *EINFO_RESTRICT fmt, ...) |
759 |
LASTCMD("ewarnv"); |
760 |
return retval; |
761 |
} |
762 |
-hidden_def(ewarnv) |
763 |
|
764 |
int |
765 |
-ebeginv(const char *EINFO_RESTRICT fmt, ...) |
766 |
+ebeginv(const char *fmt, ...) |
767 |
{ |
768 |
int retval; |
769 |
va_list ap; |
770 |
@@ -1021,10 +972,9 @@ ebeginv(const char *EINFO_RESTRICT fmt, ...) |
771 |
LASTCMD("ebeginv"); |
772 |
return retval; |
773 |
} |
774 |
-hidden_def(ebeginv) |
775 |
|
776 |
int |
777 |
-eendv(int retval, const char *EINFO_RESTRICT fmt, ...) |
778 |
+eendv(int retval, const char *fmt, ...) |
779 |
{ |
780 |
va_list ap; |
781 |
|
782 |
@@ -1036,10 +986,9 @@ eendv(int retval, const char *EINFO_RESTRICT fmt, ...) |
783 |
LASTCMD("eendv"); |
784 |
return retval; |
785 |
} |
786 |
-hidden_def(eendv) |
787 |
|
788 |
int |
789 |
-ewendv(int retval, const char *EINFO_RESTRICT fmt, ...) |
790 |
+ewendv(int retval, const char *fmt, ...) |
791 |
{ |
792 |
va_list ap; |
793 |
|
794 |
@@ -1051,7 +1000,6 @@ ewendv(int retval, const char *EINFO_RESTRICT fmt, ...) |
795 |
LASTCMD("ewendv"); |
796 |
return retval; |
797 |
} |
798 |
-hidden_def(ewendv) |
799 |
|
800 |
void |
801 |
eindentv(void) |
802 |
@@ -1059,7 +1007,6 @@ eindentv(void) |
803 |
if (is_verbose()) |
804 |
eindent(); |
805 |
} |
806 |
-hidden_def(eindentv) |
807 |
|
808 |
void |
809 |
eoutdentv(void) |
810 |
@@ -1067,4 +1014,3 @@ eoutdentv(void) |
811 |
if (is_verbose()) |
812 |
eoutdent(); |
813 |
} |
814 |
-hidden_def(eoutdentv) |
815 |
|
816 |
diff --git a/src/libeinfo/einfo.h b/src/rc/einfo.h |
817 |
similarity index 61% |
818 |
rename from src/libeinfo/einfo.h |
819 |
rename to src/rc/einfo.h |
820 |
index 31a891f..5764569 100644 |
821 |
--- a/src/libeinfo/einfo.h |
822 |
+++ b/src/rc/einfo.h |
823 |
@@ -37,19 +37,6 @@ |
824 |
#include <sys/types.h> |
825 |
#include <stdbool.h> |
826 |
|
827 |
-/* Although OpenRC requires C99, linking to us should not. */ |
828 |
-#ifdef restrict |
829 |
-# define EINFO_RESTRICT restrict |
830 |
-#else |
831 |
-# ifdef __restrict |
832 |
-# define EINFO_RESTRICT __restrict |
833 |
-# else |
834 |
-# define EINFO_RESTRICT |
835 |
-# endif |
836 |
-#endif |
837 |
- |
838 |
-__BEGIN_DECLS |
839 |
- |
840 |
/*! @brief Color types to use */ |
841 |
typedef enum |
842 |
{ |
843 |
@@ -65,14 +52,14 @@ typedef enum |
844 |
const char *ecolor(ECOLOR); |
845 |
|
846 |
/*! @brief Writes to syslog. */ |
847 |
-void elog(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); |
848 |
+void elog(int, const char *, ...) EINFO_PRINTF(2, 3); |
849 |
|
850 |
/*! |
851 |
* @brief Display informational messages. |
852 |
* |
853 |
* The einfo family of functions display messages in a consistent manner |
854 |
- * across applications. Basically they prefix the message with |
855 |
- * " * ". If the terminal can handle color then we color the * based on |
856 |
+ * Basically they prefix the message with " * ". |
857 |
+ * If the terminal can handle color then we color the * based on |
858 |
* the command used. Otherwise we are identical to the printf function. |
859 |
* |
860 |
* - einfo - green |
861 |
@@ -83,22 +70,22 @@ void elog(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); |
862 |
* The v suffix means only print if EINFO_VERBOSE is yes. |
863 |
*/ |
864 |
/*@{*/ |
865 |
-int einfon(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
866 |
-int ewarnn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
867 |
-int eerrorn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
868 |
-int einfo(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
869 |
-int ewarn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
870 |
-void ewarnx(const char * __EINFO_RESTRICT, ...) EINFO_XPRINTF(1, 2); |
871 |
-int eerror(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
872 |
-void eerrorx(const char * __EINFO_RESTRICT, ...) EINFO_XPRINTF(1, 2); |
873 |
- |
874 |
-int einfovn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
875 |
-int ewarnvn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
876 |
-int ebeginvn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
877 |
-int eendvn(int, const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); |
878 |
-int ewendvn(int, const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); |
879 |
-int einfov(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
880 |
-int ewarnv(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
881 |
+int einfon(const char *, ...) EINFO_PRINTF(1, 2); |
882 |
+int ewarnn(const char *, ...) EINFO_PRINTF(1, 2); |
883 |
+int eerrorn(const char *, ...) EINFO_PRINTF(1, 2); |
884 |
+int einfo(const char *, ...) EINFO_PRINTF(1, 2); |
885 |
+int ewarn(const char *, ...) EINFO_PRINTF(1, 2); |
886 |
+void ewarnx(const char *, ...) EINFO_XPRINTF(1, 2); |
887 |
+int eerror(const char *, ...) EINFO_PRINTF(1, 2); |
888 |
+void eerrorx(const char *, ...) EINFO_XPRINTF(1, 2); |
889 |
+ |
890 |
+int einfovn(const char *, ...) EINFO_PRINTF(1, 2); |
891 |
+int ewarnvn(const char * , ...) EINFO_PRINTF(1, 2); |
892 |
+int ebeginvn(const char *, ...) EINFO_PRINTF(1, 2); |
893 |
+int eendvn(int, const char *, ...) EINFO_PRINTF(2, 3); |
894 |
+int ewendvn(int, const char *, ...) EINFO_PRINTF(2, 3); |
895 |
+int einfov(const char *, ...) EINFO_PRINTF(1, 2); |
896 |
+int ewarnv(const char *, ...) EINFO_PRINTF(1, 2); |
897 |
/*@}*/ |
898 |
|
899 |
/*! @ingroup ebegin |
900 |
@@ -106,8 +93,8 @@ int ewarnv(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
901 |
* |
902 |
* Similar to einfo, but we add ... to the end of the message */ |
903 |
/*@{*/ |
904 |
-int ebeginv(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
905 |
-int ebegin(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
906 |
+int ebeginv(const char *, ...) EINFO_PRINTF(1, 2); |
907 |
+int ebegin(const char *, ...) EINFO_PRINTF(1, 2); |
908 |
/*@}*/ |
909 |
|
910 |
/*! @ingroup eend |
911 |
@@ -119,12 +106,12 @@ int ebegin(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2); |
912 |
* |
913 |
* ebracket allows you to specifiy the position, color and message */ |
914 |
/*@{*/ |
915 |
-int eend(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); |
916 |
-int ewend(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); |
917 |
-void ebracket(int, ECOLOR, const char * EINFO_RESTRICT); |
918 |
+int eend(int, const char *, ...) EINFO_PRINTF(2, 3); |
919 |
+int ewend(int, const char *, ...) EINFO_PRINTF(2, 3); |
920 |
+void ebracket(int, ECOLOR, const char *); |
921 |
|
922 |
-int eendv(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); |
923 |
-int ewendv(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3); |
924 |
+int eendv(int, const char *, ...) EINFO_PRINTF(2, 3); |
925 |
+int ewendv(int, const char *, ...) EINFO_PRINTF(2, 3); |
926 |
/*@}*/ |
927 |
|
928 |
/*! @ingroup eindent |
929 |
@@ -138,7 +125,6 @@ void eindentv(void); |
930 |
void eoutdentv(void); |
931 |
|
932 |
/*! @brief Prefix each einfo line with something */ |
933 |
-void eprefix(const char * EINFO_RESTRICT); |
934 |
+void eprefix(const char *); |
935 |
|
936 |
-__END_DECLS |
937 |
#endif |
938 |
|
939 |
diff --git a/src/test/einfo.data.list b/src/test/einfo.data.list |
940 |
deleted file mode 100644 |
941 |
index c638b2f..0000000 |
942 |
--- a/src/test/einfo.data.list |
943 |
+++ /dev/null |
944 |
@@ -1 +0,0 @@ |
945 |
-EINFO_1.0 |
946 |
|
947 |
diff --git a/src/test/einfo.funcs.list b/src/test/einfo.funcs.list |
948 |
deleted file mode 100644 |
949 |
index 5dbbd96..0000000 |
950 |
--- a/src/test/einfo.funcs.list |
951 |
+++ /dev/null |
952 |
@@ -1,52 +0,0 @@ |
953 |
-ebegin |
954 |
-ebegin@@EINFO_1.0 |
955 |
-ebeginv |
956 |
-ebeginv@@EINFO_1.0 |
957 |
-ebracket |
958 |
-ebracket@@EINFO_1.0 |
959 |
-ecolor |
960 |
-ecolor@@EINFO_1.0 |
961 |
-eend |
962 |
-eend@@EINFO_1.0 |
963 |
-eendv |
964 |
-eendv@@EINFO_1.0 |
965 |
-eerror |
966 |
-eerror@@EINFO_1.0 |
967 |
-eerrorn |
968 |
-eerrorn@@EINFO_1.0 |
969 |
-eerrorx |
970 |
-eerrorx@@EINFO_1.0 |
971 |
-eindent |
972 |
-eindent@@EINFO_1.0 |
973 |
-eindentv |
974 |
-eindentv@@EINFO_1.0 |
975 |
-einfo |
976 |
-einfo@@EINFO_1.0 |
977 |
-einfon |
978 |
-einfon@@EINFO_1.0 |
979 |
-einfov |
980 |
-einfov@@EINFO_1.0 |
981 |
-einfovn |
982 |
-einfovn@@EINFO_1.0 |
983 |
-elog |
984 |
-elog@@EINFO_1.0 |
985 |
-eoutdent |
986 |
-eoutdent@@EINFO_1.0 |
987 |
-eoutdentv |
988 |
-eoutdentv@@EINFO_1.0 |
989 |
-eprefix |
990 |
-eprefix@@EINFO_1.0 |
991 |
-ewarn |
992 |
-ewarn@@EINFO_1.0 |
993 |
-ewarnn |
994 |
-ewarnn@@EINFO_1.0 |
995 |
-ewarnv |
996 |
-ewarnv@@EINFO_1.0 |
997 |
-ewarnvn |
998 |
-ewarnvn@@EINFO_1.0 |
999 |
-ewarnx |
1000 |
-ewarnx@@EINFO_1.0 |
1001 |
-ewend |
1002 |
-ewend@@EINFO_1.0 |
1003 |
-ewendv |
1004 |
-ewendv@@EINFO_1.0 |
1005 |
|
1006 |
diff --git a/src/test/runtests.sh b/src/test/runtests.sh |
1007 |
index 5a87c84..b5b053f 100755 |
1008 |
--- a/src/test/runtests.sh |
1009 |
+++ b/src/test/runtests.sh |
1010 |
@@ -3,8 +3,6 @@ |
1011 |
top_srcdir=${top_srcdir:-../..} |
1012 |
. ${top_srcdir}/test/setup_env.sh |
1013 |
|
1014 |
-libeinfo_srcdir="${srcdir}/../libeinfo" |
1015 |
-libeinfo_builddir="${builddir}/../libeinfo" |
1016 |
librc_srcdir="${srcdir}/../librc" |
1017 |
librc_builddir="${builddir}/../librc" |
1018 |
rc_srcdir="${srcdir}/../rc" |
1019 |
@@ -20,22 +18,6 @@ checkit() { |
1020 |
|
1021 |
ret=0 |
1022 |
|
1023 |
-ebegin "Checking exported symbols in libeinfo.so (data)" |
1024 |
-checkit einfo.data $( |
1025 |
-readelf -Ws ${libeinfo_builddir}/libeinfo.so \ |
1026 |
- | awk '$4 == "OBJECT" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \ |
1027 |
- | LC_ALL=C sort -u |
1028 |
-) |
1029 |
- |
1030 |
-ebegin "Checking exported symbols in libeinfo.so (functions)" |
1031 |
-checkit einfo.funcs $( |
1032 |
-readelf -Ws ${libeinfo_builddir}/libeinfo.so \ |
1033 |
- | awk '$4 == "FUNC" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \ |
1034 |
- | LC_ALL=C sort -u \ |
1035 |
- | egrep -v \ |
1036 |
- -e '^_(init|fini)$' |
1037 |
-) |
1038 |
- |
1039 |
ebegin "Checking exported symbols in librc.so (data)" |
1040 |
checkit rc.data $( |
1041 |
readelf -Ws ${librc_builddir}/librc.so \ |