e1b1b79269
This avoids pulling in gmtime's static buffer: function old new delta svlogd_main 1401 1412 +11 send_headers 668 678 +10 gmtime 21 - -21 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 2/0 up/down: 21/-21) Total: 0 bytes text data bss dec hex filename 920221 555 5804 926580 e2374 busybox_old 920221 555 5740 926516 e2334 busybox_unstripped ^^^^ Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
64 lines
1.7 KiB
C
64 lines
1.7 KiB
C
/* vi: set sw=4 ts=4: */
|
|
/*
|
|
* prioritynames[] and facilitynames[]
|
|
*
|
|
* Copyright (C) 2008 by Denys Vlasenko <vda.linux@gmail.com>
|
|
*
|
|
* Licensed under GPLv2, see file LICENSE in this source tree.
|
|
*/
|
|
#include "libbb.h"
|
|
#include "common_bufsiz.h"
|
|
#define SYSLOG_NAMES
|
|
#define SYSLOG_NAMES_CONST
|
|
#include <syslog.h>
|
|
|
|
#if 0
|
|
/* For the record: with SYSLOG_NAMES <syslog.h> defines
|
|
* (not declares) the following:
|
|
*/
|
|
typedef struct _code {
|
|
/*const*/ char *c_name;
|
|
int c_val;
|
|
} CODE;
|
|
/*const*/ CODE prioritynames[] = {
|
|
{ "alert", LOG_ALERT },
|
|
...
|
|
{ NULL, -1 }
|
|
};
|
|
/* same for facilitynames[] */
|
|
|
|
/* This MUST occur only once per entire executable,
|
|
* therefore we can't just do it in syslogd.c and logger.c -
|
|
* there will be two copies of it.
|
|
*
|
|
* We cannot even do it in separate file and then just reference
|
|
* prioritynames[] from syslogd.c and logger.c - bare <syslog.h>
|
|
* will not emit extern decls for prioritynames[]! Attempts to
|
|
* emit "matching" struct _code declaration defeat the whole purpose
|
|
* of <syslog.h>.
|
|
*
|
|
* For now, syslogd.c and logger.c are simply compiled into
|
|
* one object file.
|
|
*/
|
|
#endif
|
|
|
|
/* musl decided to be funny and it implements these as giant defines
|
|
* of the form: ((CODE *)(const CODE []){ ... })
|
|
* Which works, but causes _every_ function using them
|
|
* to have a copy on stack (at least with gcc-6.3.0).
|
|
* If we reference them just once, this saves 150 bytes.
|
|
* The pointers themselves are optimized out
|
|
* (no size change on uclibc).
|
|
*/
|
|
static const CODE *const bb_prioritynames = prioritynames;
|
|
static const CODE *const bb_facilitynames = facilitynames;
|
|
|
|
|
|
#if ENABLE_SYSLOGD
|
|
#include "syslogd.c"
|
|
#endif
|
|
|
|
#if ENABLE_LOGGER
|
|
#include "logger.c"
|
|
#endif
|