diff options
author | Bernhard Reutner-Fischer | 2008-01-27 12:50:12 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer | 2008-01-27 12:50:12 +0000 |
commit | f470196a4144dd586f8b80efeef4aca39cf11514 (patch) | |
tree | 82fb31007e47f4eb2a31e8bb7bb9e6229a40dc36 /sysklogd | |
parent | 61160dd0a155364d30b7009b69e2a15afa651a2c (diff) | |
download | busybox-f470196a4144dd586f8b80efeef4aca39cf11514.zip busybox-f470196a4144dd586f8b80efeef4aca39cf11514.tar.gz |
- fix conflicting decls of syslog related facilitynames and prioritynames tables
Diffstat (limited to 'sysklogd')
-rw-r--r-- | sysklogd/klogd.c | 2 | ||||
-rw-r--r-- | sysklogd/logger.c | 42 | ||||
-rw-r--r-- | sysklogd/syslogd.c | 10 |
3 files changed, 28 insertions, 26 deletions
diff --git a/sysklogd/klogd.c b/sysklogd/klogd.c index 72f3b55..d65b6f9 100644 --- a/sysklogd/klogd.c +++ b/sysklogd/klogd.c @@ -18,7 +18,7 @@ */ #include "libbb.h" -#include <sys/syslog.h> +#include <syslog.h> #include <sys/klog.h> static void klogd_signal(int sig ATTRIBUTE_UNUSED) diff --git a/sysklogd/logger.c b/sysklogd/logger.c index 970b05d..0907501 100644 --- a/sysklogd/logger.c +++ b/sysklogd/logger.c @@ -8,28 +8,32 @@ */ #include "libbb.h" - -#if !defined CONFIG_SYSLOGD - -/* SYSLOG_NAMES defined to pull prioritynames[] and facilitynames[] - * from syslog.h. Grrrr - glibc puts those in _rwdata_! :( */ +#ifndef CONFIG_SYSLOGD #define SYSLOG_NAMES -#define SYSLOG_NAMES_CONST /* uclibc is saner :) */ -#include <sys/syslog.h> - +#define SYSLOG_NAMES_CONST +#include <syslog.h> #else -#include <sys/syslog.h> -# ifndef __dietlibc__ - /* We have to do this since the header file defines static - * structures. Argh.... bad libc, bad, bad... - */ - typedef struct _code { - char *c_name; - int c_val; - } CODE; - extern CODE prioritynames[]; - extern CODE facilitynames[]; +/* brokenness alert. Everybody except dietlibc get's this wrong by neither + * providing a typedef nor an extern for facilitynames and prioritynames + * in syslog.h. + */ +# include <syslog.h> +# ifndef __dietlibc__ +/* We have to do this since the header file does neither provide a sane type + * for this structure nor extern definitions. Argh.... bad libc, bad, bad... + */ +typedef struct _code { + char *c_name; /* FIXME: this should be const char *const c_name ! */ + int c_val; +} CODE; +# ifdef __UCLIBC__ +extern const CODE prioritynames[]; +extern const CODE facilitynames[]; +# else +extern CODE prioritynames[]; +extern CODE facilitynames[]; # endif +# endif #endif /* Decode a symbolic name to a numeric value diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index 345bf0e..de8aa04 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c @@ -14,14 +14,12 @@ */ #include "libbb.h" +#define SYSLOG_NAMES +#define SYSLOG_NAMES_CONST +#include <syslog.h> + #include <paths.h> #include <sys/un.h> - -/* SYSLOG_NAMES defined to pull prioritynames[] and facilitynames[] - * from syslog.h. Grrrr - glibc puts those in _rwdata_! :( */ -#define SYSLOG_NAMES -#define SYSLOG_NAMES_CONST /* uclibc is saner :) */ -#include <sys/syslog.h> #include <sys/uio.h> #if ENABLE_FEATURE_REMOTE_LOG |