Denis Vlasenko [Sat, 21 Apr 2007 10:00:01 +0000 (10:00 -0000)]
hush: do not print message if killed by signal;
move some functions up before main()
Denis Vlasenko [Sat, 21 Apr 2007 00:03:36 +0000 (00:03 -0000)]
hush: begin fixing non-functional job control
Denis Vlasenko [Fri, 20 Apr 2007 08:35:45 +0000 (08:35 -0000)]
hush: small code shrink; style fixes
Denis Vlasenko [Thu, 19 Apr 2007 20:16:14 +0000 (20:16 -0000)]
dd: NOEXEC fix
dd: correct wrongly capitalized constant
Denis Vlasenko [Thu, 19 Apr 2007 20:08:19 +0000 (20:08 -0000)]
dd: fix skip= parse error (spotted by Dirk Clemens <develop@cle-mens.de>)
Denis Vlasenko [Thu, 19 Apr 2007 19:55:54 +0000 (19:55 -0000)]
stty: fix option parsing bug (spotted by Sascha Hauer <s.hauer@pengutronix.de>)
Denis Vlasenko [Thu, 19 Apr 2007 17:26:34 +0000 (17:26 -0000)]
doc: add README on shell job control
Denis Vlasenko [Thu, 19 Apr 2007 14:47:11 +0000 (14:47 -0000)]
procps: remove all global variables
text data bss dec hex filename
1462 14 24 1500 5dc busybox.t2/procps/ps.o
1484 0 0 1484 5cc busybox.t3/procps/ps.o
3122 0 252 3374 d2e busybox.t1/procps/top.o
3117 0 0 3117 c2d busybox.t3/procps/top.o
Denis Vlasenko [Thu, 19 Apr 2007 14:46:14 +0000 (14:46 -0000)]
ps: add -o tty and -o rss support
1373 14 24 1411 583 busybox.t1/procps/ps.o
1462 14 24 1500 5dc busybox.t2/procps/ps.o
Denis Vlasenko [Thu, 19 Apr 2007 00:09:34 +0000 (00:09 -0000)]
loop device code: readability improvement
Denis Vlasenko [Wed, 18 Apr 2007 21:40:30 +0000 (21:40 -0000)]
switch_root: error_msg -> perror_msg, reduce by 22 bytes while at it.
Denis Vlasenko [Wed, 18 Apr 2007 21:14:46 +0000 (21:14 -0000)]
"Unify base64 handling" is done, remove TODO
Denis Vlasenko [Wed, 18 Apr 2007 21:00:21 +0000 (21:00 -0000)]
make "busybox" w/o args work again, and save 10 bytes in the process.
Denis Vlasenko [Wed, 18 Apr 2007 17:21:28 +0000 (17:21 -0000)]
hush: remove stray semicolon (should change nothing)
Denis Vlasenko [Mon, 16 Apr 2007 23:23:33 +0000 (23:23 -0000)]
ether-wake: save a few more bytes of code
Denis Vlasenko [Mon, 16 Apr 2007 23:16:37 +0000 (23:16 -0000)]
ether-wake: close bug 1317. Reorder fuctions to avoid
forward refs while at it
Denis Vlasenko [Mon, 16 Apr 2007 22:34:39 +0000 (22:34 -0000)]
shells: remove few statics and duplicated code
(much more of the same remains, alas)
function old new delta
doset 330 332 +2
warn 53 51 -2
onecommand 463 461 -2
ioecho 40 38 -2
forkexec 1412 1410 -2
err 81 79 -2
setdash 59 56 -3
flag 4 - -4
msh_main 1389 1384 -5
eval 388 381 -7
subgetc 759 747 -12
static.local 14 - -14
b_adduint 70 52 -18
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 1/10 up/down: 2/-73) Total: -71 bytes
Denis Vlasenko [Mon, 16 Apr 2007 22:32:04 +0000 (22:32 -0000)]
style fixes, no code changes
Denis Vlasenko [Mon, 16 Apr 2007 20:55:27 +0000 (20:55 -0000)]
applet.c: ruid is needed only if FEATURE_SUID=y
Bernhard Reutner-Fischer [Mon, 16 Apr 2007 18:25:46 +0000 (18:25 -0000)]
- we unconditionally need ruid. Fixes build error in line 334
Bernhard Reutner-Fischer [Mon, 16 Apr 2007 14:56:01 +0000 (14:56 -0000)]
- fix compilation when ENABLE_FEATURE_IP_RULE was off
Bernhard Reutner-Fischer [Mon, 16 Apr 2007 12:21:05 +0000 (12:21 -0000)]
- fix compilation if ENABLE_FEATURE_DD_IBS_OBS is off
Denis Vlasenko [Sun, 15 Apr 2007 13:21:01 +0000 (13:21 -0000)]
lineedit: state->hist_file doesn't exist if !FEATURE_EDITING_SAVEHISTORY,
#ifdef it out
Denis Vlasenko [Sun, 15 Apr 2007 11:50:41 +0000 (11:50 -0000)]
doc: fix code example which may provoke warning
Denis Vlasenko [Sun, 15 Apr 2007 11:48:27 +0000 (11:48 -0000)]
e2fsprogs: stop using statics in chattr. Minor code shrinkage (-130 bytes)
Denis Vlasenko [Sun, 15 Apr 2007 08:43:23 +0000 (08:43 -0000)]
deluser: add optional support for removing users from groups
(by Tito <farmatito@tiscali.it>)
Denis Vlasenko [Sun, 15 Apr 2007 08:39:39 +0000 (08:39 -0000)]
update style-guide.txt
Denis Vlasenko [Sun, 15 Apr 2007 08:38:50 +0000 (08:38 -0000)]
xargs: simplify word list management
Denis Vlasenko [Sat, 14 Apr 2007 15:08:41 +0000 (15:08 -0000)]
msh: style fixes
shell/README - a place to record things about busybox shells
Denis Vlasenko [Sat, 14 Apr 2007 13:22:09 +0000 (13:22 -0000)]
lineedit: nuke two unused variables and code which sets them
applets: do not even try to read config if run by real root
msh: use named constants (O_RDONLY etc) in open() instead of magic numbers,
other minor code size reduction.
Denis Vlasenko [Sat, 14 Apr 2007 11:16:29 +0000 (11:16 -0000)]
lash: recognize and use NOFORK applets
lash,hush: fix kill buglet (didn't properly recognize ESRCH)
Denis Vlasenko [Sat, 14 Apr 2007 10:10:40 +0000 (10:10 -0000)]
lineedit: do not try to open NULL history file
Denis Vlasenko [Sat, 14 Apr 2007 10:09:57 +0000 (10:09 -0000)]
hush: use NOFORK applets as appropriate. Net reduction of code size.
Denis Vlasenko [Fri, 13 Apr 2007 23:59:52 +0000 (23:59 -0000)]
teach find_root_device to deal with /dev/ subdirs
(by "Kirill K. Smirnov" <lich@math.spbu.ru>)
Denis Vlasenko [Fri, 13 Apr 2007 23:22:58 +0000 (23:22 -0000)]
dpkg: use nitfields which are a bit closer to typical ushort.
Code size -800.
Denis Vlasenko [Fri, 13 Apr 2007 23:22:00 +0000 (23:22 -0000)]
style fixes
Denis Vlasenko [Fri, 13 Apr 2007 22:07:21 +0000 (22:07 -0000)]
sourse_route_list -> source_route_list
Denis Vlasenko [Fri, 13 Apr 2007 21:26:20 +0000 (21:26 -0000)]
make xsocket die with address family printed (if VERBOSE_RESOLUTION_ERRORS=y)
Denis Vlasenko [Fri, 13 Apr 2007 19:56:56 +0000 (19:56 -0000)]
hush: more style fixes.
Denis Vlasenko [Fri, 13 Apr 2007 19:55:50 +0000 (19:55 -0000)]
hush: comment out and replace bug in set_local_var:
- if (value == 0 && ++value == 0) {
+ /*if (value == 0 && ++value == 0) ??? -vda */
+ if (value == NULL || value[1] == '\0') {
Style fixes.
Denis Vlasenko [Fri, 13 Apr 2007 19:44:22 +0000 (19:44 -0000)]
shell/: add SUSv3 doc for fast & easy reference
Denis Vlasenko [Fri, 13 Apr 2007 16:32:26 +0000 (16:32 -0000)]
fix typo in comment
Denis Vlasenko [Fri, 13 Apr 2007 10:00:12 +0000 (10:00 -0000)]
find: add support for -delete, -path (by Natanael Copa)
Denis Vlasenko [Thu, 12 Apr 2007 21:20:25 +0000 (21:20 -0000)]
sed: fix escaped newlines in -f; fix multiple -f and -e
(broke when getopt32 was fixed to not reverse the list)
Denis Vlasenko [Thu, 12 Apr 2007 20:33:01 +0000 (20:33 -0000)]
login: fixing my brainfart: xspawn(t_argv) <- was using argv!
Mike Frysinger [Thu, 12 Apr 2007 18:29:27 +0000 (18:29 -0000)]
make sure we free the grep data as well
Denis Vlasenko [Thu, 12 Apr 2007 17:10:45 +0000 (17:10 -0000)]
lash: "forking" applets are actually can be treated the same way as "non-forked".
Also save a bit of space on trailing NULL array elements.
Denis Vlasenko [Thu, 12 Apr 2007 17:08:53 +0000 (17:08 -0000)]
fix realloc-of-non-malloced pointer, and reduce size while at it
Denis Vlasenko [Thu, 12 Apr 2007 12:31:02 +0000 (12:31 -0000)]
login: remove setpgrp call (makes it work from shell prompt again).
login: sanitize stdio descriptors (we are suid, need to be careful!)
shrink login and set_environment by ~100 bytes.
Denis Vlasenko [Thu, 12 Apr 2007 12:27:32 +0000 (12:27 -0000)]
pass a copy of argv[i] to NOFORK applets (they may permute it etc).
set/save/restore more shared global variables whan call one applet from another
Bernhard Reutner-Fischer [Thu, 12 Apr 2007 11:36:56 +0000 (11:36 -0000)]
- shrink iproute a bit (-200 bytes). Untested
Bernhard Reutner-Fischer [Thu, 12 Apr 2007 11:34:39 +0000 (11:34 -0000)]
- add xsendto and use where appropriate; shrink iplink; sanitize libiproute a bit.
-916 byte
Denis Vlasenko [Thu, 12 Apr 2007 00:32:05 +0000 (00:32 -0000)]
style fixes. No code changes
Denis Vlasenko [Wed, 11 Apr 2007 23:20:53 +0000 (23:20 -0000)]
bb_full_fd_action: remove potential xmalloc from NOFORK path
cat: stop using stdio.h opens
libbb: introduce & use open[3]_or_warn
function old new delta
open3_or_warn - 54 +54
bb_cat 115 144 +29
open_or_warn - 25 +25
unlzma 2404 2412 +8
chattr_main 334 339 +5
xstrtoul_range_sfx 251 255 +4
telnet_main 1514 1510 -4
static.opt 4 - -4
qgravechar 122 118 -4
fuser_add_pid 61 54 -7
fuser_add_inode 154 147 -7
writeFileToTarball 1542 1534 -8
refresh 1156 1148 -8
do_show 856 846 -10
read_leases 212 200 -12
setup_redirects 236 222 -14
iproute_list_or_flush 1582 1568 -14
read_config 427 411 -16
write_leases 284 264 -20
hash_file 338 318 -20
copy_file 1760 1740 -20
do_iproute 2610 2588 -22
bb_full_fd_action 320 269 -51
open_to_or_warn 103 49 -54
fuser_main 1660 1596 -64
.rodata 131160 131096 -64
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 4/19 up/down: 125/-423) Total: -298 bytes
Denis Vlasenko [Wed, 11 Apr 2007 20:43:31 +0000 (20:43 -0000)]
ash: fix kill -l (by Mats Erik Andersson <mats.andersson64@comhem.se>)
Denis Vlasenko [Wed, 11 Apr 2007 19:27:22 +0000 (19:27 -0000)]
fix typo in doc
Denis Vlasenko [Wed, 11 Apr 2007 17:04:29 +0000 (17:04 -0000)]
style fixes, no code changes.
Denis Vlasenko [Wed, 11 Apr 2007 17:03:19 +0000 (17:03 -0000)]
rename: run_applet_by_name -> run_applet_and_exit
Bernhard Reutner-Fischer [Wed, 11 Apr 2007 16:23:57 +0000 (16:23 -0000)]
- set the scope properly. Thanks to Jean Wolter, who wrote:
busybox ip and the original ip utility behave differently when setting
the following route (verified with ip route show using the original ip
utility):
ip route add 10.0.0.138 dev eth0
Result for busybox ip:
# ip route add 10.0.0.138 dev eth0
# /usr/local/bin/ip route show
10.0.0.138 dev eth0
Result for ip:
# /usr/local/bin/ip route add 10.0.0.138 dev eth0
# /usr/local/bin/ip route show
10.0.0.138 dev eth0 scope link
A following "ip route add default via 10.0.0.138" fails for busybox
ip, since the kernel can not find a route to 10.0.0.138 (it replies
with Network is unreachable).
The reasons seems to be that the original ip utility explicitly sets
the scope after parsing all parameters. This is missing in busybox,
the attached patch fixes this. I took this from the original iproute
sources and removed some variables, which are not needed for busybox.
Denis Vlasenko [Wed, 11 Apr 2007 16:16:41 +0000 (16:16 -0000)]
Add NOFORK/NOEXEC documentation.
Denis Vlasenko [Wed, 11 Apr 2007 07:36:31 +0000 (07:36 -0000)]
fix typo in comment
Denis Vlasenko [Wed, 11 Apr 2007 07:26:56 +0000 (07:26 -0000)]
fix misplaced #if
Denis Vlasenko [Wed, 11 Apr 2007 07:04:23 +0000 (07:04 -0000)]
add more convenient defines for [NO]MMU:
"#ifndef BB_NOMMU" is a double negative
Denis Vlasenko [Tue, 10 Apr 2007 23:32:37 +0000 (23:32 -0000)]
random NOMMU fixes. compressed --help really does work for NOMMU! /me happy
Denis Vlasenko [Tue, 10 Apr 2007 23:03:30 +0000 (23:03 -0000)]
Rename two config options:
FEATURE_SH_STANDALONE_SHELL => FEATURE_SH_STANDALONE
FEATURE_EXEC_PREFER_APPLETS => FEATURE_PREFER_APPLETS
Make SH_STANDALONE depend on PREFER_APPLETS.
getopt.c: more randomconfig-induced fixes
Denis Vlasenko [Tue, 10 Apr 2007 21:41:16 +0000 (21:41 -0000)]
xargs: fix my brain fart (resulted in memory leak)
Denis Vlasenko [Tue, 10 Apr 2007 21:40:19 +0000 (21:40 -0000)]
make compressed help code NOMMU- and NOFORK-friendly -
no forking anymore, bunzip2 unpack routine now does all it in memory.
Denis Vlasenko [Tue, 10 Apr 2007 21:38:30 +0000 (21:38 -0000)]
make a few struct bb_applet members conditional
rename sllep_and_die -> xfunc_die
make fflush_stdout_and_exit NOFORK-safe
fix some buglets found by randomconfig
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 20:11:12 +0000 (20:11 -0000)]
- mv ip*_main into ip.c; use a dispatcher to save on needless duplication.
Saves a minor 12b.
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 19:30:50 +0000 (19:30 -0000)]
- use enum for the OPs as suggested by vda. No obj-code changes.
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 19:00:08 +0000 (19:00 -0000)]
- forgot this hunk that corrects the usage text of ip
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 18:43:27 +0000 (18:43 -0000)]
- rewrite the ip applet to be less bloaty
- mark libiproute's matches() as deprecated. Convert to index_in_(sub)str_array()!
text data bss dec hex filename
314 0 0 314 13a ip.o.orig
200 0 0 200 c8 ip.o
Using a smallint for the key would save another byte.
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 18:40:05 +0000 (18:40 -0000)]
- add ATTRIBUTE_DEPRECATED for functions that should be removed in the future.
This is ment to provide means to point at cruft marked for cleanup.
Denis Vlasenko [Tue, 10 Apr 2007 17:18:12 +0000 (17:18 -0000)]
one-liner: fix indentation
Denis Vlasenko [Tue, 10 Apr 2007 17:16:33 +0000 (17:16 -0000)]
bunzip2: big style cleanup. No code changes apart from one s/write/safe_write/
(verified with objdump).
Denis Vlasenko [Tue, 10 Apr 2007 16:34:00 +0000 (16:34 -0000)]
echo: fix regression ("echo" with no arguments didn't print newline.
echo: use fputs if no options are given. Code growth ~15 bytes.
Old:
# time ./busybox find $bigdir -exec echo {} \; >/dev/null
real 0m2.038s
user 0m0.761s
sys 0m0.953s
New:
# time ./busybox find $bigdir -exec echo {} \; >/dev/null
real 0m1.781s
user 0m0.781s
sys 0m0.939s
For comparison: without NOFORK:
# time find $bigdir -exec echo {} \; >/dev/null
real 1m51.129s
user 0m38.442s
sys 1m3.350s
Denis Vlasenko [Tue, 10 Apr 2007 15:43:37 +0000 (15:43 -0000)]
audit small applets and mark some of them as NOFORK.
Put big scary warnings in relevant places.
Denis Vlasenko [Tue, 10 Apr 2007 15:42:06 +0000 (15:42 -0000)]
style fixes. No code changes.
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 14:16:19 +0000 (14:16 -0000)]
- very minor shrinkage (-3b)
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 09:38:35 +0000 (09:38 -0000)]
- use skip_non_whitespace() where appropriate
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 09:38:07 +0000 (09:38 -0000)]
- add prototype for str_tolower()
Bernhard Reutner-Fischer [Tue, 10 Apr 2007 09:37:29 +0000 (09:37 -0000)]
- add libbb function str_tolower to convert a string to lowercase.
- shrink wget a bit
Denis Vlasenko [Mon, 9 Apr 2007 21:35:07 +0000 (21:35 -0000)]
make xfunctions optionally longjump instead of exit.
use it for making NOFORK more practical.
touch: make it a NOFORK applet
Denis Vlasenko [Mon, 9 Apr 2007 21:32:30 +0000 (21:32 -0000)]
factor out NOFORK/NOEXEC code from find. Use it for xargs too.
Denis Vlasenko [Mon, 9 Apr 2007 21:30:53 +0000 (21:30 -0000)]
xargs: shrink code, ~80 bytes
applets.h: +#undef APPLET_NOEXEC
Denis Vlasenko [Mon, 9 Apr 2007 13:21:33 +0000 (13:21 -0000)]
wait4pid: if passed with pid < 0, do not set errno - it is already set by exec!
Denis Vlasenko [Mon, 9 Apr 2007 13:04:50 +0000 (13:04 -0000)]
Implement first instance of NOFORK applet - echo
find: use NOFORK/NOEXEC; small -exec buglet also eliminated
vfork_daemon_rexec: honor PREFER_APPLETS
echo: small size improvements
find -exec echo {} \; with PREFER_APPLETS=y runs 4 times faster
Denis Vlasenko [Mon, 9 Apr 2007 03:29:43 +0000 (03:29 -0000)]
busybox: fix "<applet>: applet not found" message
Denis Vlasenko [Mon, 9 Apr 2007 03:11:58 +0000 (03:11 -0000)]
Improve STANDALONE_SHELL. "safe" applets are renamed NOEXEC applets
and now this fact is recorded in applets.h, not ash.c.
Several fixes to "--help + STANDALONE_SHELL" scenarios.
function old new delta
run_current_applet_and_exit - 355 +355
arith 2064 2073 +9
refresh 1148 1156 +8
getopt32 1068 1073 +5
telnet_main 1510 1514 +4
md5_sha1_sum_main 565 566 +1
xstrtoul_range_sfx 255 251 -4
packed_usage 22523 22514 -9
tryexec 255 203 -52
static.safe_applets 152 - -152
.rodata 131320 131128 -192
run_applet_by_name 869 506 -363
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 5/5 up/down: 382/-772) Total: -390 bytes
./busybox ash -c 'i=20000; while test $i != 0; do touch z; i=$((i-1)); done'
runs more than twice as fast with STANDALONE_SHELL versus without.
Denis Vlasenko [Mon, 9 Apr 2007 03:06:34 +0000 (03:06 -0000)]
msh: smallish code shrinkage; cosmetics
Denis Vlasenko [Mon, 9 Apr 2007 03:05:48 +0000 (03:05 -0000)]
merge busybox.c into applets.c
Denis Vlasenko [Sun, 8 Apr 2007 17:30:10 +0000 (17:30 -0000)]
applets.h: de-obfuscate
Denis Vlasenko [Sun, 8 Apr 2007 16:07:02 +0000 (16:07 -0000)]
add some missed statics on constant objects.
fix few #ifndef ENABLE_xxx
# size busybox_old busybox_unstripped
text data bss dec hex filename
677152 2920 18208 698280 aa7a8 busybox_old
676420 2920 18208 697548 aa4cc busybox_unstripped
Denis Vlasenko [Sun, 8 Apr 2007 15:12:21 +0000 (15:12 -0000)]
adding small script, mostly for documentational purposes
Denis Vlasenko [Sun, 8 Apr 2007 15:08:42 +0000 (15:08 -0000)]
getopt32: fix llist_t options ordering. llist_rev is not unused.
function old new delta
tar_main 705 695 -10
sort_main 928 918 -10
decode_format_string 886 876 -10
run_parts_main 197 185 -12
ps_main 513 500 -13
wget_main 2764 2750 -14
awk_main 1014 1000 -14
od_main 2886 2866 -20
llist_rev 25 - -25
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/8 up/down: 0/-128) Total: -128 bytes
Denis Vlasenko [Sun, 8 Apr 2007 11:10:43 +0000 (11:10 -0000)]
find: fix -prune more. Add big comment about it.
Denis Vlasenko [Sun, 8 Apr 2007 10:52:28 +0000 (10:52 -0000)]
find: fix handling of -prune
recursive_actions: uppercase flag constants
Denis Vlasenko [Sat, 7 Apr 2007 10:49:02 +0000 (10:49 -0000)]
busybox.net: micro fix
Denis Vlasenko [Sat, 7 Apr 2007 10:46:33 +0000 (10:46 -0000)]
busybox.net: update "screenshot"
Denis Vlasenko [Sat, 7 Apr 2007 10:25:04 +0000 (10:25 -0000)]
getopt: use getopt32 for option parsing - inspired by patch by
Mats Erik Andersson <mats.andersson64@comhem.se>
function old new delta
getopt_main 809 810 +1
static.BUFFER 4 - -4
shell 8 4 -4
quote 4 - -4
quiet_output 4 - -4
quiet_errors 4 - -4
long_options_nr 4 - -4
long_options_length 4 - -4
long_options 388 384 -4
alternative 4 - -4
shortopts 15 - -15
normalize 243 220 -23
.rodata 131832 131800 -32
add_longopt 200 - -200
------------------------------------------------------------------------------
(add/remove: 0/9 grow/shrink: 1/4 up/down: 1/-306) Total: -305 bytes