cf686ae3b4
function old new delta syslogd_main 1252 1910 +658 logger_main 277 393 +116 timestamp_and_log 434 542 +108 static.__compound_literal - 104 +104 parse_fac_prio_20 137 - -137 pencode 167 - -167 parse_syslogdcfg 715 - -715 ------------------------------------------------------------------------------ (add/remove: 1/3 grow/shrink: 3/0 up/down: 986/-1019) Total: -33 bytes text data bss dec hex filename 912506 563 6132 919201 e06a1 busybox_old 912364 563 6132 919059 e0613 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
|