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/logger.c | |
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/logger.c')
-rw-r--r-- | sysklogd/logger.c | 42 |
1 files changed, 23 insertions, 19 deletions
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 |