aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWilliam Hubbs <w.d.hubbs@gmail.com>2013-10-16 12:55:37 -0500
committerWilliam Hubbs <w.d.hubbs@gmail.com>2013-10-21 13:49:41 -0500
commit48981be8a872c7a0191d2519793205276fdc423a (patch)
tree52176c1b31b3c9429c57fdc279c06b93c1d72ca2 /src
parentd2988dc7ddd832ffc94f6b76c54898217812b7cc (diff)
Revert "Make einfo routines private"
This reverts commit de88aff0a839844526ae262f8961ec4372fed238. I was advised that splashutils links to libeinfo, so we do have a consumer for this library.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile2
-rw-r--r--src/libeinfo/.gitignore1
-rw-r--r--src/libeinfo/Makefile12
-rw-r--r--src/libeinfo/einfo.h (renamed from src/rc/einfo.h)68
-rw-r--r--src/libeinfo/einfo.map35
-rw-r--r--src/libeinfo/libeinfo.c (renamed from src/rc/einfo.c)110
-rw-r--r--src/rc/Makefile27
-rw-r--r--src/test/einfo.data.list1
-rw-r--r--src/test/einfo.funcs.list52
-rwxr-xr-xsrc/test/runtests.sh18
10 files changed, 250 insertions, 76 deletions
diff --git a/src/Makefile b/src/Makefile
index f4cd512f..ffbf8d6e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,7 +1,7 @@
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
-SUBDIR= test librc rc
+SUBDIR= test libeinfo librc rc
ifeq (${MKTOOLS},yes)
SUBDIR+= tools
diff --git a/src/libeinfo/.gitignore b/src/libeinfo/.gitignore
new file mode 100644
index 00000000..373284db
--- /dev/null
+++ b/src/libeinfo/.gitignore
@@ -0,0 +1 @@
+libeinfo.so.1
diff --git a/src/libeinfo/Makefile b/src/libeinfo/Makefile
new file mode 100644
index 00000000..ec756b47
--- /dev/null
+++ b/src/libeinfo/Makefile
@@ -0,0 +1,12 @@
+LIB= einfo
+SHLIB_MAJOR= 1
+SRCS= libeinfo.c
+INCS= einfo.h
+VERSION_MAP= einfo.map
+
+CPPFLAGS+= -I../includes
+
+MK= ../../mk
+include ${MK}/lib.mk
+include ${MK}/cc.mk
+include ${MK}/termcap.mk
diff --git a/src/rc/einfo.h b/src/libeinfo/einfo.h
index 57645695..31a891f8 100644
--- a/src/rc/einfo.h
+++ b/src/libeinfo/einfo.h
@@ -37,6 +37,19 @@
#include <sys/types.h>
#include <stdbool.h>
+/* Although OpenRC requires C99, linking to us should not. */
+#ifdef restrict
+# define EINFO_RESTRICT restrict
+#else
+# ifdef __restrict
+# define EINFO_RESTRICT __restrict
+# else
+# define EINFO_RESTRICT
+# endif
+#endif
+
+__BEGIN_DECLS
+
/*! @brief Color types to use */
typedef enum
{
@@ -52,14 +65,14 @@ typedef enum
const char *ecolor(ECOLOR);
/*! @brief Writes to syslog. */
-void elog(int, const char *, ...) EINFO_PRINTF(2, 3);
+void elog(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
/*!
* @brief Display informational messages.
*
* The einfo family of functions display messages in a consistent manner
- * Basically they prefix the message with " * ".
- * If the terminal can handle color then we color the * based on
+ * across applications. Basically they prefix the message with
+ * " * ". If the terminal can handle color then we color the * based on
* the command used. Otherwise we are identical to the printf function.
*
* - einfo - green
@@ -70,22 +83,22 @@ void elog(int, const char *, ...) EINFO_PRINTF(2, 3);
* The v suffix means only print if EINFO_VERBOSE is yes.
*/
/*@{*/
-int einfon(const char *, ...) EINFO_PRINTF(1, 2);
-int ewarnn(const char *, ...) EINFO_PRINTF(1, 2);
-int eerrorn(const char *, ...) EINFO_PRINTF(1, 2);
-int einfo(const char *, ...) EINFO_PRINTF(1, 2);
-int ewarn(const char *, ...) EINFO_PRINTF(1, 2);
-void ewarnx(const char *, ...) EINFO_XPRINTF(1, 2);
-int eerror(const char *, ...) EINFO_PRINTF(1, 2);
-void eerrorx(const char *, ...) EINFO_XPRINTF(1, 2);
-
-int einfovn(const char *, ...) EINFO_PRINTF(1, 2);
-int ewarnvn(const char * , ...) EINFO_PRINTF(1, 2);
-int ebeginvn(const char *, ...) EINFO_PRINTF(1, 2);
-int eendvn(int, const char *, ...) EINFO_PRINTF(2, 3);
-int ewendvn(int, const char *, ...) EINFO_PRINTF(2, 3);
-int einfov(const char *, ...) EINFO_PRINTF(1, 2);
-int ewarnv(const char *, ...) EINFO_PRINTF(1, 2);
+int einfon(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
+int ewarnn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
+int eerrorn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
+int einfo(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
+int ewarn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
+void ewarnx(const char * __EINFO_RESTRICT, ...) EINFO_XPRINTF(1, 2);
+int eerror(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
+void eerrorx(const char * __EINFO_RESTRICT, ...) EINFO_XPRINTF(1, 2);
+
+int einfovn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
+int ewarnvn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
+int ebeginvn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
+int eendvn(int, const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
+int ewendvn(int, const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
+int einfov(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
+int ewarnv(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
/*@}*/
/*! @ingroup ebegin
@@ -93,8 +106,8 @@ int ewarnv(const char *, ...) EINFO_PRINTF(1, 2);
*
* Similar to einfo, but we add ... to the end of the message */
/*@{*/
-int ebeginv(const char *, ...) EINFO_PRINTF(1, 2);
-int ebegin(const char *, ...) EINFO_PRINTF(1, 2);
+int ebeginv(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
+int ebegin(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
/*@}*/
/*! @ingroup eend
@@ -106,12 +119,12 @@ int ebegin(const char *, ...) EINFO_PRINTF(1, 2);
*
* ebracket allows you to specifiy the position, color and message */
/*@{*/
-int eend(int, const char *, ...) EINFO_PRINTF(2, 3);
-int ewend(int, const char *, ...) EINFO_PRINTF(2, 3);
-void ebracket(int, ECOLOR, const char *);
+int eend(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
+int ewend(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
+void ebracket(int, ECOLOR, const char * EINFO_RESTRICT);
-int eendv(int, const char *, ...) EINFO_PRINTF(2, 3);
-int ewendv(int, const char *, ...) EINFO_PRINTF(2, 3);
+int eendv(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
+int ewendv(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
/*@}*/
/*! @ingroup eindent
@@ -125,6 +138,7 @@ void eindentv(void);
void eoutdentv(void);
/*! @brief Prefix each einfo line with something */
-void eprefix(const char *);
+void eprefix(const char * EINFO_RESTRICT);
+__END_DECLS
#endif
diff --git a/src/libeinfo/einfo.map b/src/libeinfo/einfo.map
new file mode 100644
index 00000000..428a8954
--- /dev/null
+++ b/src/libeinfo/einfo.map
@@ -0,0 +1,35 @@
+EINFO_1.0 {
+global:
+ ecolor;
+ elog;
+ einfon;
+ ewarnn;
+ eerrorn;
+ einfo;
+ ewarn;
+ ewarnx;
+ eerror;
+ eerrorx;
+ einfovn;
+ ewarnvn;
+ ebeginvn;
+ eendvn;
+ ewendvn;
+ einfov;
+ ewarnv;
+ ebeginv;
+ ebegin;
+ eend;
+ ewend;
+ ebracket;
+ eendv;
+ ewendv;
+ eindent;
+ eoutdent;
+ eindentv;
+ eoutdentv;
+ eprefix;
+
+local:
+ *;
+};
diff --git a/src/rc/einfo.c b/src/libeinfo/libeinfo.c
index 306e7885..9791051f 100644
--- a/src/rc/einfo.c
+++ b/src/libeinfo/libeinfo.c
@@ -52,6 +52,34 @@ const char libeinfo_copyright[] = "Copyright (c) 2007-2008 Roy Marples";
#include "einfo.h"
#include "helpers.h"
+#include "hidden-visibility.h"
+
+hidden_proto(ecolor)
+hidden_proto(ebegin)
+hidden_proto(ebeginv)
+hidden_proto(ebracket)
+hidden_proto(eend)
+hidden_proto(eendv)
+hidden_proto(eerror)
+hidden_proto(eerrorn)
+hidden_proto(eerrorx)
+hidden_proto(eindent)
+hidden_proto(eindentv)
+hidden_proto(einfo)
+hidden_proto(einfon)
+hidden_proto(einfov)
+hidden_proto(einfovn)
+hidden_proto(elog)
+hidden_proto(eoutdent)
+hidden_proto(eoutdentv)
+hidden_proto(eprefix)
+hidden_proto(ewarn)
+hidden_proto(ewarnn)
+hidden_proto(ewarnv)
+hidden_proto(ewarnvn)
+hidden_proto(ewarnx)
+hidden_proto(ewend)
+hidden_proto(ewendv)
/* Incase we cannot work out how many columns from ioctl, supply a default */
#define DEFAULT_COLS 80
@@ -324,7 +352,7 @@ tgoto(const char *cap, int col, int line)
#endif
static bool
-colour_terminal(FILE *f)
+colour_terminal(FILE * EINFO_RESTRICT f)
{
static int in_colour = -1;
char *e, *ee, *end, *d, *p;
@@ -471,7 +499,7 @@ colour_terminal(FILE *f)
}
static int
-get_term_columns(FILE *stream)
+get_term_columns(FILE * EINFO_RESTRICT stream)
{
struct winsize ws;
char *env = getenv("COLUMNS");
@@ -491,13 +519,14 @@ get_term_columns(FILE *stream)
}
void
-eprefix(const char *prefix)
+eprefix(const char *EINFO_RESTRICT prefix)
{
_eprefix = prefix;
}
+hidden_def(eprefix)
static void EINFO_PRINTF(2, 0)
-elogv(int level, const char *fmt, va_list ap)
+elogv(int level, const char *EINFO_RESTRICT fmt, va_list ap)
{
char *e = getenv("EINFO_LOG");
va_list apc;
@@ -513,7 +542,7 @@ elogv(int level, const char *fmt, va_list ap)
}
void
-elog(int level, const char *fmt, ...)
+elog(int level, const char *EINFO_RESTRICT fmt, ...)
{
va_list ap;
@@ -521,9 +550,10 @@ elog(int level, const char *fmt, ...)
elogv(level, fmt, ap);
va_end(ap);
}
+hidden_def(elog)
static int
-_eindent(FILE *stream)
+_eindent(FILE * EINFO_RESTRICT stream)
{
char *env = getenv("EINFO_INDENT");
int amount = 0;
@@ -547,7 +577,7 @@ _eindent(FILE *stream)
}
static const char *
-_ecolor(FILE *f, ECOLOR color)
+_ecolor(FILE * EINFO_RESTRICT f, ECOLOR color)
{
unsigned int i;
@@ -559,6 +589,7 @@ _ecolor(FILE *f, ECOLOR color)
return ecolors_str[i];
return "";
}
+hidden_def(ecolor)
const char *
ecolor(ECOLOR color)
@@ -584,7 +615,7 @@ ecolor(ECOLOR color)
}
static int EINFO_PRINTF(3, 0)
- _einfo(FILE *f, ECOLOR color, const char *fmt, va_list va)
+ _einfo(FILE *f, ECOLOR color, const char *EINFO_RESTRICT fmt, va_list va)
{
int retval = 0;
char *last = getenv("EINFO_LASTCMD");
@@ -612,7 +643,7 @@ static int EINFO_PRINTF(3, 0)
#define _eerrorvn(fmt, ap) _einfo(stderr, ECOLOR_BAD, fmt, ap)
int
-einfon(const char *fmt, ...)
+einfon(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -625,9 +656,10 @@ einfon(const char *fmt, ...)
LASTCMD("einfon");
return retval;
}
+hidden_def(einfon)
int
-ewarnn(const char *fmt, ...)
+ewarnn(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -640,9 +672,10 @@ ewarnn(const char *fmt, ...)
LASTCMD("ewarnn");
return retval;
}
+hidden_def(ewarnn)
int
-eerrorn(const char *fmt, ...)
+eerrorn(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -655,9 +688,10 @@ eerrorn(const char *fmt, ...)
LASTCMD("errorn");
return retval;
}
+hidden_def(eerrorn)
int
-einfo(const char *fmt, ...)
+einfo(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -671,9 +705,10 @@ einfo(const char *fmt, ...)
LASTCMD("einfo");
return retval;
}
+hidden_def(einfo)
int
-ewarn(const char *fmt, ...)
+ewarn(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -688,9 +723,10 @@ ewarn(const char *fmt, ...)
LASTCMD("ewarn");
return retval;
}
+hidden_def(ewarn)
void
-ewarnx(const char *fmt, ...)
+ewarnx(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -704,9 +740,10 @@ ewarnx(const char *fmt, ...)
}
exit(EXIT_FAILURE);
}
+hidden_def(ewarnx)
int
-eerror(const char *fmt, ...)
+eerror(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -721,9 +758,10 @@ eerror(const char *fmt, ...)
LASTCMD("eerror");
return retval;
}
+hidden_def(eerror)
void
-eerrorx(const char *fmt, ...)
+eerrorx(const char *EINFO_RESTRICT fmt, ...)
{
va_list ap;
@@ -736,9 +774,10 @@ eerrorx(const char *fmt, ...)
}
exit(EXIT_FAILURE);
}
+hidden_def(eerrorx)
int
-ebegin(const char *fmt, ...)
+ebegin(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -754,9 +793,10 @@ ebegin(const char *fmt, ...)
LASTCMD("ebegin");
return retval;
}
+hidden_def(ebegin)
static void
-_eend(FILE *fp, int col, ECOLOR color, const char *msg)
+_eend(FILE * EINFO_RESTRICT fp, int col, ECOLOR color, const char *msg)
{
int i;
int cols;
@@ -792,7 +832,7 @@ _eend(FILE *fp, int col, ECOLOR color, const char *msg)
static int EINFO_PRINTF(3, 0)
_do_eend(const char *cmd, int retval,
- const char *fmt, va_list ap)
+ const char *EINFO_RESTRICT fmt, va_list ap)
{
int col = 0;
FILE *fp = stdout;
@@ -815,7 +855,7 @@ _do_eend(const char *cmd, int retval,
}
int
-eend(int retval, const char *fmt, ...)
+eend(int retval, const char *EINFO_RESTRICT fmt, ...)
{
va_list ap;
@@ -827,9 +867,10 @@ eend(int retval, const char *fmt, ...)
LASTCMD("eend");
return retval;
}
+hidden_def(eend)
int
-ewend(int retval, const char *fmt, ...)
+ewend(int retval, const char *EINFO_RESTRICT fmt, ...)
{
va_list ap;
@@ -841,12 +882,14 @@ ewend(int retval, const char *fmt, ...)
LASTCMD("ewend");
return retval;
}
+hidden_def(ewend)
void
ebracket(int col, ECOLOR color, const char *msg)
{
_eend(stdout, col, color, msg);
}
+hidden_def(ebracket)
void
eindent(void)
@@ -867,6 +910,7 @@ eindent(void)
snprintf(num, 10, "%08d", amount);
setenv("EINFO_INDENT", num, 1);
}
+hidden_def(eindent)
void eoutdent(void)
{
@@ -891,9 +935,10 @@ void eoutdent(void)
}
errno = serrno;
}
+hidden_def(eoutdent)
int
-einfovn(const char *fmt, ...)
+einfovn(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -906,9 +951,10 @@ einfovn(const char *fmt, ...)
LASTCMD("einfovn");
return retval;
}
+hidden_def(einfovn)
int
-ewarnvn(const char *fmt, ...)
+ewarnvn(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -921,9 +967,10 @@ ewarnvn(const char *fmt, ...)
LASTCMD("ewarnvn");
return retval;
}
+hidden_def(ewarnvn)
int
-einfov(const char *fmt, ...)
+einfov(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -937,9 +984,10 @@ einfov(const char *fmt, ...)
LASTCMD("einfov");
return retval;
}
+hidden_def(einfov)
int
-ewarnv(const char *fmt, ...)
+ewarnv(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -953,9 +1001,10 @@ ewarnv(const char *fmt, ...)
LASTCMD("ewarnv");
return retval;
}
+hidden_def(ewarnv)
int
-ebeginv(const char *fmt, ...)
+ebeginv(const char *EINFO_RESTRICT fmt, ...)
{
int retval;
va_list ap;
@@ -972,9 +1021,10 @@ ebeginv(const char *fmt, ...)
LASTCMD("ebeginv");
return retval;
}
+hidden_def(ebeginv)
int
-eendv(int retval, const char *fmt, ...)
+eendv(int retval, const char *EINFO_RESTRICT fmt, ...)
{
va_list ap;
@@ -986,9 +1036,10 @@ eendv(int retval, const char *fmt, ...)
LASTCMD("eendv");
return retval;
}
+hidden_def(eendv)
int
-ewendv(int retval, const char *fmt, ...)
+ewendv(int retval, const char *EINFO_RESTRICT fmt, ...)
{
va_list ap;
@@ -1000,6 +1051,7 @@ ewendv(int retval, const char *fmt, ...)
LASTCMD("ewendv");
return retval;
}
+hidden_def(ewendv)
void
eindentv(void)
@@ -1007,6 +1059,7 @@ eindentv(void)
if (is_verbose())
eindent();
}
+hidden_def(eindentv)
void
eoutdentv(void)
@@ -1014,3 +1067,4 @@ eoutdentv(void)
if (is_verbose())
eoutdent();
}
+hidden_def(eoutdentv)
diff --git a/src/rc/Makefile b/src/rc/Makefile
index 6490826e..a2e638e8 100644
--- a/src/rc/Makefile
+++ b/src/rc/Makefile
@@ -1,21 +1,8 @@
PROG= rc
-SRCS= \
- checkpath.c \
- einfo.c \
- fstabinfo.c \
- mountinfo.c \
- rc-applets.c \
- rc-depend.c \
- rc-logger.c \
- rc-misc.c \
- rc-plugin.c \
- rc-service.c \
- rc-status.c \
- rc-update.c \
- rc.c \
- runscript.c \
- start-stop-daemon.c \
- swclock.c
+SRCS= checkpath.c fstabinfo.c mountinfo.c start-stop-daemon.c \
+ rc-applets.c rc-depend.c rc-logger.c \
+ rc-misc.c rc-plugin.c rc-service.c rc-status.c rc-update.c \
+ runscript.c rc.c swclock.c
CLEANFILES= version.h
@@ -43,9 +30,9 @@ RC_SBINLINKS= mark_service_starting mark_service_started \
ALL_LINKS= ${BINLINKS} ${SBINLINKS} ${RC_BINLINKS} ${RC_SBINLINKS}
CLEANFILES+= ${ALL_LINKS}
-CPPFLAGS+= -I../includes -I../librc
-LDFLAGS+= -L../librc
-LDADD+= -lutil -lrc
+CPPFLAGS+= -I../includes -I../librc -I../libeinfo
+LDFLAGS+= -L../librc -L../libeinfo
+LDADD+= -lutil -lrc -leinfo
include ../../Makefile.inc
MK= ../../mk
diff --git a/src/test/einfo.data.list b/src/test/einfo.data.list
new file mode 100644
index 00000000..c638b2f1
--- /dev/null
+++ b/src/test/einfo.data.list
@@ -0,0 +1 @@
+EINFO_1.0
diff --git a/src/test/einfo.funcs.list b/src/test/einfo.funcs.list
new file mode 100644
index 00000000..5dbbd96f
--- /dev/null
+++ b/src/test/einfo.funcs.list
@@ -0,0 +1,52 @@
+ebegin
+ebegin@@EINFO_1.0
+ebeginv
+ebeginv@@EINFO_1.0
+ebracket
+ebracket@@EINFO_1.0
+ecolor
+ecolor@@EINFO_1.0
+eend
+eend@@EINFO_1.0
+eendv
+eendv@@EINFO_1.0
+eerror
+eerror@@EINFO_1.0
+eerrorn
+eerrorn@@EINFO_1.0
+eerrorx
+eerrorx@@EINFO_1.0
+eindent
+eindent@@EINFO_1.0
+eindentv
+eindentv@@EINFO_1.0
+einfo
+einfo@@EINFO_1.0
+einfon
+einfon@@EINFO_1.0
+einfov
+einfov@@EINFO_1.0
+einfovn
+einfovn@@EINFO_1.0
+elog
+elog@@EINFO_1.0
+eoutdent
+eoutdent@@EINFO_1.0
+eoutdentv
+eoutdentv@@EINFO_1.0
+eprefix
+eprefix@@EINFO_1.0
+ewarn
+ewarn@@EINFO_1.0
+ewarnn
+ewarnn@@EINFO_1.0
+ewarnv
+ewarnv@@EINFO_1.0
+ewarnvn
+ewarnvn@@EINFO_1.0
+ewarnx
+ewarnx@@EINFO_1.0
+ewend
+ewend@@EINFO_1.0
+ewendv
+ewendv@@EINFO_1.0
diff --git a/src/test/runtests.sh b/src/test/runtests.sh
index b5b053fa..5a87c847 100755
--- a/src/test/runtests.sh
+++ b/src/test/runtests.sh
@@ -3,6 +3,8 @@
top_srcdir=${top_srcdir:-../..}
. ${top_srcdir}/test/setup_env.sh
+libeinfo_srcdir="${srcdir}/../libeinfo"
+libeinfo_builddir="${builddir}/../libeinfo"
librc_srcdir="${srcdir}/../librc"
librc_builddir="${builddir}/../librc"
rc_srcdir="${srcdir}/../rc"
@@ -18,6 +20,22 @@ checkit() {
ret=0
+ebegin "Checking exported symbols in libeinfo.so (data)"
+checkit einfo.data $(
+readelf -Ws ${libeinfo_builddir}/libeinfo.so \
+ | awk '$4 == "OBJECT" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \
+ | LC_ALL=C sort -u
+)
+
+ebegin "Checking exported symbols in libeinfo.so (functions)"
+checkit einfo.funcs $(
+readelf -Ws ${libeinfo_builddir}/libeinfo.so \
+ | awk '$4 == "FUNC" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \
+ | LC_ALL=C sort -u \
+ | egrep -v \
+ -e '^_(init|fini)$'
+)
+
ebegin "Checking exported symbols in librc.so (data)"
checkit rc.data $(
readelf -Ws ${librc_builddir}/librc.so \