brctl: eliminate stray data object

brctl: use constant fd to reduce parameter passing
runsvdir: do not use data/bss
od: reuse bb_argv_dash
last: do not go into endless loop on read error
mount: make it not fail scripts/find_bad_common_bufsiz check
dc: add INIT_G() (no-op for dc, but we want uniform usage of "G trick")

function                                             old     new   delta
runsvdir_main                                       1646    1672     +26
set_pgrp                                               1       -      -1
exitsoon                                               1       -      -1
check                                                679     678      -1
svnum                                                  4       -      -4
svdir                                                  4       -      -4
sv                                                     4       -      -4
stamplog                                               4       -      -4
rploglen                                               4       -      -4
rplog                                                  4       -      -4
mount_main                                           995     988      -7
static.default_file_list                               8       -      -8
pfd                                                    8       -      -8
logpipe                                                8       -      -8
static.info                                           20       -     -20
brctl_main                                           767     739     -28
------------------------------------------------------------------------------
(add/remove: 0/12 grow/shrink: 1/3 up/down: 26/-106)          Total: -80 bytes
   text    data     bss     dec     hex filename
 793327     662    7412  801401   c3a79 busybox_old
 793329     641    7372  801342   c3a3e busybox_unstripped
This commit is contained in:
Denis Vlasenko
2008-03-17 09:33:45 +00:00
parent b44c790e41
commit d0a071a528
6 changed files with 85 additions and 58 deletions

View File

@@ -42,17 +42,34 @@ struct service {
smallint isgone;
};
static struct service *sv;
static char *svdir;
static int svnum;
static char *rplog;
static int rploglen;
static struct fd_pair logpipe;
static struct pollfd pfd[1];
static unsigned stamplog;
static smallint check = 1;
static smallint exitsoon;
static smallint set_pgrp;
struct globals {
struct service *sv;
char *svdir;
char *rplog;
int svnum;
int rploglen;
struct fd_pair logpipe;
struct pollfd pfd[1];
unsigned stamplog;
smallint check; /* = 1; */
smallint exitsoon;
smallint set_pgrp;
};
#define G (*(struct globals*)&bb_common_bufsiz1)
#define sv (G.sv )
#define svdir (G.svdir )
#define rplog (G.rplog )
#define svnum (G.svnum )
#define rploglen (G.rploglen )
#define logpipe (G.logpipe )
#define pfd (G.pfd )
#define stamplog (G.stamplog )
#define check (G.check )
#define exitsoon (G.exitsoon )
#define set_pgrp (G.set_pgrp )
#define INIT_G() do { \
check = 1; \
} while (0)
static void fatal2_cannot(const char *m1, const char *m2)
{
@@ -222,6 +239,8 @@ int runsvdir_main(int argc ATTRIBUTE_UNUSED, char **argv)
char ch;
int i;
INIT_G();
argv++;
if (!*argv)
bb_show_usage();