svn commit: trunk/busybox: networking sysklogd
vda at busybox.net
vda at busybox.net
Fri Nov 23 03:39:46 UTC 2007
Author: vda
Date: 2007-11-22 19:39:45 -0800 (Thu, 22 Nov 2007)
New Revision: 20484
Log:
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
Modified:
trunk/busybox/networking/ifupdown.c
trunk/busybox/sysklogd/logger.c
trunk/busybox/sysklogd/logread.c
Changeset:
Modified: trunk/busybox/networking/ifupdown.c
===================================================================
--- trunk/busybox/networking/ifupdown.c 2007-11-23 00:08:54 UTC (rev 20483)
+++ trunk/busybox/networking/ifupdown.c 2007-11-23 03:39:45 UTC (rev 20484)
@@ -134,13 +134,15 @@
int i;
if (strncmpz(id, "iface", idlen) == 0) {
- char *result;
- static char label_buf[20];
- safe_strncpy(label_buf, ifd->iface, sizeof(label_buf));
- result = strchr(label_buf, ':');
- if (result) {
- *result = '\0';
- }
+ static char *label_buf;
+ //char *result;
+
+ free(label_buf);
+ label_buf = xstrdup(ifd->iface);
+ // Remove virtual iface suffix - why?
+ // ubuntu's ifup doesn't do this
+ //result = strchrnul(label_buf, ':');
+ //*result = '\0';
return label_buf;
}
if (strncmpz(id, "label", idlen) == 0) {
Modified: trunk/busybox/sysklogd/logger.c
===================================================================
--- trunk/busybox/sysklogd/logger.c 2007-11-23 00:08:54 UTC (rev 20483)
+++ trunk/busybox/sysklogd/logger.c 2007-11-23 03:39:45 UTC (rev 20484)
@@ -11,7 +11,10 @@
#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_CONST /* uclibc is saner :) */
#include <sys/syslog.h>
#else
Modified: trunk/busybox/sysklogd/logread.c
===================================================================
--- trunk/busybox/sysklogd/logread.c 2007-11-23 00:08:54 UTC (rev 20483)
+++ trunk/busybox/sysklogd/logread.c 2007-11-23 03:39:45 UTC (rev 20484)
@@ -18,16 +18,30 @@
enum { KEY_ID = 0x414e4547 }; /* "GENA" */
-static struct shbuf_ds {
+struct shbuf_ds {
int32_t size; // size of data - 1
int32_t tail; // end of message list
char data[1]; // messages
-} *shbuf;
+};
-// Semaphore operation structures
-static struct sembuf SMrup[1] = {{0, -1, IPC_NOWAIT | SEM_UNDO}}; // set SMrup
-static struct sembuf SMrdn[2] = {{1, 0}, {0, +1, SEM_UNDO}}; // set SMrdn
+static const struct sembuf init_sem[3] = {
+ {0, -1, IPC_NOWAIT | SEM_UNDO},
+ {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)
More information about the busybox-cvs
mailing list