logread: eliminate usage of data/bss
ifup: don't remove virtual iface prefixes (eth0:0) function old new delta shbuf 4 - -4 SMrup 6 - -6 SMrdn 12 - -12 static.label_buf 20 4 -16 get_var 158 140 -18 ------------------------------------------------------------------------------ (add/remove: 0/3 grow/shrink: 0/2 up/down: 0/-56) Total: -56 bytes text data bss dec hex filename 783501 962 9260 793723 c1c7b busybox_old 783483 942 9244 793669 c1c45 busybox_unstripped
This commit is contained in:
parent
6884f665bd
commit
ff2b6d2185
@ -134,13 +134,15 @@ static char *get_var(const char *id, size_t idlen, struct interface_defn_t *ifd)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (strncmpz(id, "iface", idlen) == 0) {
|
if (strncmpz(id, "iface", idlen) == 0) {
|
||||||
char *result;
|
static char *label_buf;
|
||||||
static char label_buf[20];
|
//char *result;
|
||||||
safe_strncpy(label_buf, ifd->iface, sizeof(label_buf));
|
|
||||||
result = strchr(label_buf, ':');
|
free(label_buf);
|
||||||
if (result) {
|
label_buf = xstrdup(ifd->iface);
|
||||||
*result = '\0';
|
// Remove virtual iface suffix - why?
|
||||||
}
|
// ubuntu's ifup doesn't do this
|
||||||
|
//result = strchrnul(label_buf, ':');
|
||||||
|
//*result = '\0';
|
||||||
return label_buf;
|
return label_buf;
|
||||||
}
|
}
|
||||||
if (strncmpz(id, "label", idlen) == 0) {
|
if (strncmpz(id, "label", idlen) == 0) {
|
||||||
|
@ -11,7 +11,10 @@
|
|||||||
|
|
||||||
#if !defined CONFIG_SYSLOGD
|
#if !defined CONFIG_SYSLOGD
|
||||||
|
|
||||||
|
/* SYSLOG_NAMES defined to pull prioritynames[] and facilitynames[]
|
||||||
|
* from syslog.h. Grrrr - glibc puts those in _rwdata_! :( */
|
||||||
#define SYSLOG_NAMES
|
#define SYSLOG_NAMES
|
||||||
|
#define SYSLOG_NAMES_CONST /* uclibc is saner :) */
|
||||||
#include <sys/syslog.h>
|
#include <sys/syslog.h>
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
@ -18,16 +18,30 @@
|
|||||||
|
|
||||||
enum { KEY_ID = 0x414e4547 }; /* "GENA" */
|
enum { KEY_ID = 0x414e4547 }; /* "GENA" */
|
||||||
|
|
||||||
static struct shbuf_ds {
|
struct shbuf_ds {
|
||||||
int32_t size; // size of data - 1
|
int32_t size; // size of data - 1
|
||||||
int32_t tail; // end of message list
|
int32_t tail; // end of message list
|
||||||
char data[1]; // messages
|
char data[1]; // messages
|
||||||
} *shbuf;
|
};
|
||||||
|
|
||||||
// Semaphore operation structures
|
static const struct sembuf init_sem[3] = {
|
||||||
static struct sembuf SMrup[1] = {{0, -1, IPC_NOWAIT | SEM_UNDO}}; // set SMrup
|
{0, -1, IPC_NOWAIT | SEM_UNDO},
|
||||||
static struct sembuf SMrdn[2] = {{1, 0}, {0, +1, SEM_UNDO}}; // set SMrdn
|
{1, 0}, {0, +1, SEM_UNDO}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct globals {
|
||||||
|
struct sembuf SMrup[1]; // {0, -1, IPC_NOWAIT | SEM_UNDO},
|
||||||
|
struct sembuf SMrdn[2]; // {1, 0}, {0, +1, SEM_UNDO}
|
||||||
|
struct shbuf_ds *shbuf;
|
||||||
|
};
|
||||||
|
#define G (*(struct globals*)&bb_common_bufsiz1)
|
||||||
|
#define SMrup (G.SMrup)
|
||||||
|
#define SMrdn (G.SMrdn)
|
||||||
|
#define shbuf (G.shbuf)
|
||||||
|
#define INIT_G() \
|
||||||
|
do { \
|
||||||
|
memcpy(SMrup, init_sem, sizeof(init_sem)); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
static void error_exit(const char *str) ATTRIBUTE_NORETURN;
|
static void error_exit(const char *str) ATTRIBUTE_NORETURN;
|
||||||
static void error_exit(const char *str)
|
static void error_exit(const char *str)
|
||||||
|
Loading…
Reference in New Issue
Block a user