James Byrne
6937487be7
libbb: reduce the overhead of single parameter bb_error_msg() calls
...
Back in 2007, commit 0c97c9d437
("'simple' error message functions by
Loic Grenie") introduced bb_simple_perror_msg() to allow for a lower
overhead call to bb_perror_msg() when only a string was being printed
with no parameters. This saves space for some CPU architectures because
it avoids the overhead of a call to a variadic function. However there
has never been a simple version of bb_error_msg(), and since 2007 many
new calls to bb_perror_msg() have been added that only take a single
parameter and so could have been using bb_simple_perror_message().
This changeset introduces 'simple' versions of bb_info_msg(),
bb_error_msg(), bb_error_msg_and_die(), bb_herror_msg() and
bb_herror_msg_and_die(), and replaces all calls that only take a
single parameter, or use something like ("%s", arg), with calls to the
corresponding 'simple' version.
Since it is likely that single parameter calls to the variadic functions
may be accidentally reintroduced in the future a new debugging config
option WARN_SIMPLE_MSG has been introduced. This uses some macro magic
which will cause any such calls to generate a warning, but this is
turned off by default to avoid use of the unpleasant macros in normal
circumstances.
This is a large changeset due to the number of calls that have been
replaced. The only files that contain changes other than simple
substitution of function calls are libbb.h, libbb/herror_msg.c,
libbb/verror_msg.c and libbb/xfuncs_printf.c. In miscutils/devfsd.c,
networking/udhcp/common.h and util-linux/mdev.c additonal macros have
been added for logging so that single parameter and multiple parameter
logging variants exist.
The amount of space saved varies considerably by architecture, and was
found to be as follows (for 'defconfig' using GCC 7.4):
Arm: -92 bytes
MIPS: -52 bytes
PPC: -1836 bytes
x86_64: -938 bytes
Note that for the MIPS architecture only an exception had to be made
disabling the 'simple' calls for 'udhcp' (in networking/udhcp/common.h)
because it made these files larger on MIPS.
Signed-off-by: James Byrne <james.byrne@origamienergy.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-07-02 11:35:03 +02:00
Denys Vlasenko
1113961dde
dc: make 4 % 0 emit error messgaes and set result to 0
...
function old new delta
mod 105 136 +31
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-16 09:40:36 +02:00
Denys Vlasenko
89023b167f
dc: code shrink
...
function old new delta
check_under 20 21 +1
print_no_pop 32 27 -5
pop 24 18 -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 1/-11) Total: -10 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-09 15:58:46 +02:00
Denys Vlasenko
d0bc5fdfea
dc: fix "small dc" to have standard command line API
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-08 18:59:07 +01:00
Denys Vlasenko
a133137174
dc: fix testsuite
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-06 18:46:42 +01:00
Denys Vlasenko
9ca9ef2d5b
dc: re-enable "tiny dc" implementation
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-06 11:31:14 +01:00
Gavin Howard
01055ba89a
bc: new applet, throws warning
...
Signed-off-by: Gavin Howard <yzena.tech@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-05 15:40:38 +01:00
Denys Vlasenko
72089cf6b4
config: deindent all help texts
...
Those two spaces after tab have no effect, and always a nuisance when editing.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-07-21 09:50:55 +02:00
Denys Vlasenko
4eed2c6c50
Update menuconfig items with approximate applet sizes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-07-18 22:01:24 +02:00
Denys Vlasenko
f88e3bfa8d
Convert all miscutils/* applets to "new style" applet definitions
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2016-11-22 23:54:17 +01:00
Denys Vlasenko
fb4da16711
Split miscutils/Config.src items into miscutils/*.c files
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2016-11-22 23:14:24 +01:00
Denys Vlasenko
47cfbf32fd
*: add most of the required setup_common_bufsiz() calls
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2016-04-21 18:18:48 +02:00
Denys Vlasenko
e6a2f4cc5a
libbb: make bb_common_bufsiz1 1 kbyte, add capability to use bss tail for it
...
The config item is FEATURE_USE_BSS_TAIL. When it is off (default):
function old new delta
read_config 210 228 +18
doCommands 2279 2294 +15
ipneigh_list_or_flush 763 772 +9
ipaddr_list_or_flush 1256 1261 +5
display_process_list 1301 1306 +5
conspy_main 1378 1383 +5
do_lzo_compress 352 355 +3
do_lzo_decompress 565 567 +2
push 46 44 -2
inetd_main 2136 2134 -2
uevent_main 421 418 -3
addLines 97 92 -5
bb_common_bufsiz1 8193 1024 -7169
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 8/5 up/down: 62/-7181) Total: -7119 bytes
text data bss dec hex filename
829850 4086 9080 843016 cdd08 busybox_old
829901 4086 1904 835891 cc133 busybox_unstripped
FEATURE_USE_BSS_TAIL=y:
read_config 210 228 +18
doCommands 2279 2294 +15
ipneigh_list_or_flush 763 772 +9
ipaddr_list_or_flush 1256 1261 +5
display_process_list 1301 1306 +5
conspy_main 1378 1383 +5
do_lzo_compress 352 355 +3
do_lzo_decompress 565 567 +2
inetd_main 2136 2134 -2
bb_common_bufsiz1 8193 - -8193
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 8/1 up/down: 62/-8195) Total: -8133 bytes
text data bss dec hex filename
829850 4086 9080 843016 cdd08 busybox_old
829911 4086 880 834877 cbd3d busybox_unstripped
FIXME: setup_common_bufsiz() calls are missing.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2016-04-21 17:39:11 +02:00
Denys Vlasenko
c4603fb09a
dc: fix "dc p" prinitng bogus data
...
function old new delta
check_under - 20 +20
print_no_pop 27 32 +5
pop 33 24 -9
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 25/-9) Total: 16 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-05-25 13:31:25 +02:00
Denys Vlasenko
8dff01d06a
libbb: introduce and use is_prefixed_with()
...
function old new delta
is_prefixed_with - 18 +18
complete_username 78 77 -1
man_main 737 735 -2
fsck_device 429 427 -2
unpack_ar_archive 80 76 -4
strip_unsafe_prefix 105 101 -4
singlemount 1054 1050 -4
rtc_adjtime_is_utc 90 86 -4
resolve_mount_spec 88 84 -4
parse_one_line 1029 1025 -4
parse_conf 1460 1456 -4
may_wakeup 83 79 -4
loadkmap_main 219 215 -4
get_irqs_from_stat 103 99 -4
get_header_cpio 913 909 -4
findfs_main 79 75 -4
fbsplash_main 1230 1226 -4
load_crontab 776 771 -5
expand_vars_to_list 1151 1146 -5
date_main 881 876 -5
skip_dev_pfx 30 24 -6
make_device 2199 2193 -6
complete_cmd_dir_file 773 767 -6
run_applet_and_exit 715 708 -7
uudecode_main 321 313 -8
pwdx_main 197 189 -8
execute 568 560 -8
i2cdetect_main 1186 1176 -10
procps_scan 1242 1230 -12
procps_read_smaps 1017 1005 -12
process_module 746 734 -12
patch_main 1903 1891 -12
nfsmount 3572 3560 -12
stack_machine 126 112 -14
process_timer_stats 449 435 -14
match_fstype 111 97 -14
do_ipaddr 1344 1330 -14
open_list_and_close 359 343 -16
get_header_tar 1795 1779 -16
prepend_new_eth_table 340 323 -17
fsck_main 1811 1794 -17
find_iface_state 56 38 -18
dnsd_main 1321 1303 -18
base_device 179 158 -21
find_keyword 104 82 -22
handle_incoming_and_exit 2785 2762 -23
parse_and_put_prompt 774 746 -28
modinfo 347 317 -30
find_action 204 171 -33
update_passwd 1470 1436 -34
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/49 up/down: 18/-540) Total: -522 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-03-12 17:48:34 +01:00
Bernhard Reutner-Fischer
70e30e8eec
dc: tweak parsing
...
https://bugs.debian.org/538685
dc requires whitespace between language elements.
We were requiring
1 2 + p
instead of the abbreviated
1 2+p
(for example).
function old new delta
stack_machine 97 126 +29
dc_main 117 79 -38
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 29/-38) Total: -9 bytes
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-02-16 17:12:04 +01:00
Denys Vlasenko
9daf33fc52
dc: code shrink
...
function old new delta
stack_machine 103 101 -2
operators 176 168 -8
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-01-18 13:30:13 +01:00
Denys Vlasenko
f2f9bc5932
dc: fix a case where we can run off malloced space
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-07-15 08:37:36 +02:00
Denys Vlasenko
6afc6775e8
dc: do not advertise ops disabled in .config
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-05-16 00:13:18 +02:00
Denys Vlasenko
0ef64bdb40
*: make GNU licensing statement forms more regular
...
This change retains "or later" state! No licensing _changes_ here,
only form is adjusted (article, space between "GPL" and "v2" and so on).
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-08-16 20:14:46 +02:00
Denys Vlasenko
506d3a9bca
dc: tweak help text
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-07-29 04:06:07 +02:00
Denys Vlasenko
7a07b0ee6a
dc: make it use long longs for integer ops
...
function old new delta
print_base 176 238 +62
or 91 103 +12
eor 91 103 +12
and 91 103 +12
not 60 64 +4
mod 103 105 +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 6/0 up/down: 104/0) Total: 104 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-07-29 04:00:27 +02:00
Denys Vlasenko
98a4c7cf3d
*: suppress ~60% of "aliased warnings" on gcc-4.4.1
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-02-04 15:00:15 +01:00
Denys Vlasenko
bd1de181ad
dc: make "dc -1.23 ..." work
...
function old new delta
stack_machine 97 103 +6
dc_main 121 110 -11
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/2 up/down: 9/-58) Total: -49 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-12-30 18:37:08 +01:00
Denys Vlasenko
043b1e5d99
more C standard compat fixes from Dan Fandrich
...
function old new delta
docolon 207 204 -3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-06 12:47:55 +02:00
Denis Vlasenko
d8850f2d0d
dc: fix the "base 2" patch omission of base not being set
2008-12-30 10:40:05 +00:00
Denis Vlasenko
6b38e18247
dc: support for bases 2 and 8, by Nate Case (ncase AT xes-inc.com)
...
function old new delta
print_base 87 176 +89
set_output_base 81 95 +14
static.bases - 5 +5
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/0 up/down: 108/0) Total: 108 bytes
2008-10-30 23:25:50 +00:00
Denis Vlasenko
078323010b
dc: conditionalize parts which require libm
2008-10-20 08:43:10 +00:00
Denis Vlasenko
a60f84ebf0
*: rename ATTRIBUTE_XXX to just XXX.
2008-07-05 09:18:54 +00:00
Denis Vlasenko
7049ff8696
whitespace fixes. no code changes
2008-06-25 09:53:17 +00:00
Denis Vlasenko
8ee649a02e
*: more uniform naming: s/xmalloc_getline/xmalloc_fgetline/
2008-03-26 20:04:27 +00:00
Denis Vlasenko
d0a071a528
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
2008-03-17 09:33:45 +00:00
Denis Vlasenko
b44c790e41
*: fix various kinds of damage to letter 'c' in Arkadiusz Mickiewicz' surname.
...
chrt,taskset,dc,eject: shrink
crontab: call "vi" with just name, no path
watchdog: intercept all fatal signals
function old new delta
xstrtoull_range - 35 +35
static.sg_commands - 18 +18
packed_usage 23698 23712 +14
watchdog_main 148 151 +3
crontab_main 637 638 +1
base 1 - -1
static.ps 4 - -4
pointer 4 - -4
stack_machine 99 92 -7
run_command 273 260 -13
eject_main 360 343 -17
static.C 30 12 -18
ptok 61 38 -23
xstrtol_range 27 - -27
get_token 35 - -35
taskset_main 586 550 -36
chrt_main 411 372 -39
dc_main 158 117 -41
time_main 1127 1037 -90
------------------------------------------------------------------------------
(add/remove: 2/5 grow/shrink: 3/9 up/down: 71/-355) Total: -284 bytes
text data bss dec hex filename
793680 662 7420 801762 c3be2 busybox_old
793327 662 7412 801401 c3a79 busybox_unstripped
2008-03-17 09:29:43 +00:00
Denis Vlasenko
9b49a5ed85
add -fvisibility=hidden to CC flags, mark XXX_main functions
...
EXTERNALLY_VISIBLE. 5% size reduction of libbusybox.so
2007-10-11 10:05:36 +00:00
Denis Vlasenko
74324c8666
Audit bb_common_bufsiz usage, add script which looks for misuse.
...
tr: stop using globals needlessly.
code: -103 bytes
2007-06-04 10:16:52 +00:00
Denis Vlasenko
b6adbf1be2
usage.c: remove reference to busybox.h
...
*: s/include "busybox.h"/include "libbb.h"
2007-05-26 19:00:18 +00:00
Bernhard Reutner-Fischer
de17ece1db
- use skip_non_whitespace() where appropriate
2007-04-10 09:38:35 +00:00
Denis Vlasenko
5b27fbe990
dc: use common_bufsiz1 for evaluation stack
...
msh: fix "underscore bug" (a_b=1111 didn't work)
dnsd: openlog(), so that applet's name is logged
2007-03-24 14:06:51 +00:00
Denis Vlasenko
06af216528
suppress warnings about easch <applet>_main() having
...
no preceding prototype
2007-02-03 17:28:39 +00:00
Denis Vlasenko
d18a3a20db
use skip_whitespace where appropriate
2006-10-25 12:46:03 +00:00
Denis Vlasenko
2d5ca60bfb
bb_get_[chomped]line_from_file wasn't descriptive enough.
...
Renaming...
2006-10-12 22:43:20 +00:00
Denis Vlasenko
1385899416
attempt to regularize atoi mess.
2006-10-08 12:49:22 +00:00
"Robert P. J. Day"
801ab14013
Add one-line GPL boilerplate to numerous (but not all yet) source files.
2006-07-12 07:56:04 +00:00
Bernhard Reutner-Fischer
5084c78cbe
- remove superfluous call of stack_machine(0) upon exit.
2006-06-03 21:19:09 +00:00
Bernhard Reutner-Fischer
c89982dcd7
- move #include busybox.h to the very top so we pull in the config
...
and eventual platform specific includes in early.
2006-06-03 19:49:21 +00:00
Glenn L McGrath
7991ad1720
Patch by Paul Whittaker, make busybox dc compatable with GNU dc.
...
the following example was broken, echo "1 1 +" | dc
2004-07-24 06:01:52 +00:00
Eric Andersen
c7bda1ce65
Remove trailing whitespace. Update copyright to include 2004.
2004-03-15 08:29:22 +00:00
Eric Andersen
a92877403a
Goetz Bock writes:
...
Dear list,
during my quest do pack busybox into an RPM, I've fixed a small bug
(missing \n) in dc's usage. And added two additional operations: mod and
exp/power.
Feel free to drop them.
2003-10-22 11:24:39 +00:00
Glenn L McGrath
523c1675a2
"Typo and/or thinko: scanning till the end of NUL terminated string
...
should check the byte pointed at not the pointer itself." -junkio@
2003-08-28 22:12:53 +00:00
Manuel Novoa III
cad5364599
Major coreutils update.
2003-03-19 09:13:01 +00:00