Commit Graph

12935 Commits

Author SHA1 Message Date
Peter Korsgaard
cd776cf967 syslogd: add option to log to Linux kernel printk buffer
Why invent our own shared memory circular buffer when the kernel has a
perfectly fine one already?

This can be used as a smaller/simpler alternative to the syslogd IPC support
(as IPC shmem/klogd/logread aren't needed), while also allowing centralised
logging of everything (kernel messages, userspace bootup and syslog)
when used together with ttyprintk.

Notice that kernel 3.5+ is needed to store syslog facility in printk buffer,
otherwise only the priority is stored.

bloat-o-meter compared to IPC+klogd+logread:
function                                             old     new   delta
get_linux_version_code                                 -      84     +84
lbb_prepare                                           25      90     +65
applet_nameofs                                         6       -      -6
static.stdout@@GLIBC_2                                 8       -      -8
applet_names                                          23       9     -14
bb_msg_standard_output                                16       -     -16
init_sem                                              18       -     -18
xatoull_range                                         19       -     -19
overlapping_strcpy                                    21       -     -21
init_data                                             56      32     -24
applet_main                                           24       -     -24
main                                                 124      99     -25
full_write2_str                                       26       -     -26
error_exit                                            26       -     -26
bb_basename                                           30       -     -30
sem_up                                                32       -     -32
interrupted                                           35       -     -35
fflush_stdout_and_exit                                38       -     -38
bb_banner                                             46       -     -46
find_applet_by_name                                   59       -     -59
bb_signals_recursive_norestart                        90       -     -90
run_applet_no_and_exit                               104       -    -104
timestamp_and_log                                    651     523    -128
syslogd_main                                         798     581    -217
xstrtoull_range_sfx                                  267       -    -267
run_applet_and_exit                                  432       -    -432
klogd_main                                           490       -    -490
logread_main                                         508       -    -508
.rodata                                             1870     937    -933
bb_common_bufsiz1                                   8193       -   -8193
------------------------------------------------------------------------------
(add/remove: 2/26 grow/shrink: 1/6 up/down: 149/-11829)    Total: -11680 bytes

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-01-06 13:30:50 -05:00
Peter Korsgaard
d189b598b4 klogd: handle multi-char log levels
Since Linux 3.5 (7ff9554bb5: printk: convert byte-buffer to variable-length
record buffer), klog buffer can now contain log lines with multi-char
loglevel indicators (<[0-9]+>) - So use strtoul to parse it.

function                                             old     new   delta
klogd_main                                           490     525     +35
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 35/0)               Total: 35 bytes

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-01-05 21:03:19 -05:00
Peter Korsgaard
3917fa32dc dmesg: handle multi-char log levels
Since Linux 3.5 (7ff9554bb5: printk: convert byte-buffer to variable-length
record buffer), klog buffer can now contain log lines with multi-char
loglevel indicators (<[0-9]+>) - So we can no longer just skip 3 bytes.

Instead skip past the terminating '>' like util-linux does.

function                                             old     new   delta
dmesg_main                                           266     280     +13
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 13/0)               Total: 13 bytes

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-01-05 21:02:14 -05:00
Lauri Hintsala
fb499c5752 powertop: fix error message
Application tries to use timer_stats module instead of cpufreq_stats.
Error message is printed if opening of the file /proc/timer_stats fails.

Signed-off-by: Lauri Hintsala <lauri.hintsala@bluegiga.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-01-04 17:45:44 -05:00
Mike Frysinger
a38f9faa9f ifenslave: fix missing close paren
Reported-by: David J Cozatt <ygdrasil@comcast.net>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-12-26 17:12:26 -05:00
Anthony G. Basile
12677acf0a CONFIG_PID_FILE_PATH: new configuration option for pidfile paths
We set a default path for the directory where pidfiles are create
when FEATURE_PIDFILE is selected.  The default has no effect on
applets which must specify a pidfile path on the command line to
run, and it can be overridden by applets which optionally allow
the user to specify the pidfile path.

We also add pidfile write/remove support for klogd, ntpd and watchdog.
For syslogd, we add a missing remove_pidfile() for better cleanup
on daemon exit.

Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-12-19 15:53:33 -05:00
Denys Vlasenko
393c395ca5 du: document incompatibility with standard tool
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-12-14 17:14:11 +01:00
Denys Vlasenko
4d5955e9ec decompress_uncompress: comment out a bigger chunk of debug code
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-12-05 11:08:30 +01:00
Denys Vlasenko
a8461173ba decompress_uncompress: comment out debug printout on corrupted data
99% plus of all people who'll get corrupted archive wouldn't bother
debugging it. The rest can uncomment the code.

function                                             old     new   delta
unpack_Z_stream                                     1304    1234     -70

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-12-05 01:06:05 +01:00
Denys Vlasenko
c71547ccfc decompress_uncompress: move 'code' variable into loop - sole user
Apparently, gcc does this optimization itself, since generated code is the same.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-12-05 01:04:54 +01:00
Jon Tollefson
4ba6c5d3ba ash: fix a memory leak
The script which triggers the leak:

while true
  do
    while true
      do
        break;
    done</dev/null
done

Signed-off-by: Jon Tollefson <kniht@linux.vnet.ibm.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-11-13 19:26:53 +01:00
S-G Bergh
e4b9451413 volume_id: add exFAT detection
function                                             old     new   delta
volume_id_probe_exfat                                  -     294    +294

Signed-off-by: S-G Bergh <sgb@systemasis.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-11-13 14:40:37 +01:00
Denys Vlasenko
3f21044f20 ifupdown: code shrink
function                                             old     new   delta
execute                                              571     548     -23

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-11-09 17:16:40 +01:00
Denys Vlasenko
a803bfa0f0 ifupdown: remove unused errno assignments
function                                             old     new   delta
execute                                              607     571     -36

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-11-05 14:18:36 +01:00
Denys Vlasenko
11181335f9 ifupdown: simple code shrink
function                                             old     new   delta
execute                                              631     607     -24

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-11-05 13:22:56 +01:00
S-G Bergh
d2d5049c1d blkid: show filesystem when both label and UUID are missing, but type is known
Signed-off-by: S-G Bergh <sgb@systemasis.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-11-05 13:16:07 +01:00
Mike Frysinger
5694afd72a build system: use pkg-config to look up selinux libs
Newer versions of libselinux has started linking against more libs.
Rather than continuing hardcoding things, switch to using pkg-config
to query for its dependencies.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-10-20 15:01:26 -04:00
Timo Teräs
67dc7b21ca fbsplash: fix regression from e4fa7b7
commit e4fa7b7 (limit progress bar flicker) made the progress bar
counter unsigned causing i < 0 to never come true.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-10-17 19:39:34 +02:00
Baruch Siach
3aeb870b22 nanddump: invert the meaning of the -o parameter to match upstream
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-10-15 14:32:23 +02:00
Baruch Siach
98f6b2d399 nanddump: skip bad blocks when instructed to do so
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-10-15 14:25:26 +02:00
Baruch Siach
da0200a1e5 nanddump: use the right operator of logic AND
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-10-15 14:21:45 +02:00
Ron Yorston
eab343e7e1 mktemp: fix mktemp -u temp.XXXXXX returning garbage when TMPDIR is set
Use mktemp instead of tempnam for compatibility with real mktemp.
Don't let mktemp fail silently, print some simple error messages.
Don't ignore -q.

Signed-off-by: Tito Ragusa <farmatito@tiscali.it>
Signed-off-by: Ron Yorston <rmy@tigress.co.uk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-10-08 11:47:22 +02:00
Tito Ragusa
8dc6d1a813 adduser: make it accept "adduser USER GROUP" form
Signed-off-by: Tito Ragusa <farmatito@tiscali.it>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-10-08 11:18:08 +02:00
Denys Vlasenko
fd77ea505e mark get_shell_name FAST_FUNC
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-10-03 09:42:21 +02:00
Denys Vlasenko
32711c4141 top/ps: argv0:"gdm-session-worker [pam/gdm-password]" == comm:"gdm-session-wor"
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-10-02 11:31:37 +02:00
Denys Vlasenko
d527588882 ash: implement export -n
function                                             old     new   delta
exportcmd                                            129     175     +46

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-10-01 13:41:17 +02:00
Nicolas Thill
f47ce07b26 brctl: fix description and usage
brctl uncorrectly displays the "showmacs" command as being supported while
it is not, remove it from the usage and Config.src file.

Signed-off-by: Nicolas Thill <nico@openwrt.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-29 16:43:33 +02:00
Felix Fietkau
1c7a58dfb8 udhcpc[6]: allow discover_retries == 0 (infinite)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-27 16:22:24 +02:00
Manuel Zerpies
d109798882 flashcp: remove unused variable opts
Signed-off-by: Manuel Zerpies <manuel.f.zerpies@ww.stud.uni-erlangen.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-27 16:06:34 +02:00
Denys Vlasenko
b2320370be lineedit: in !EDITING config, return -1 on fgets error
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-27 16:03:49 +02:00
Denys Vlasenko
9371043698 fix unsafe bb_perror_msg(filename) calls
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-27 15:35:10 +02:00
Denys Vlasenko
225cc1327a scripts/kconfig/mconf: work on systems w/o SIGWINCH
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-27 15:26:40 +02:00
Denys Vlasenko
c4f2d997a4 libbb: correctness/size tweaks in signal-related helpers
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-27 13:20:34 +02:00
Denys Vlasenko
73a1990897 top: do not touch stdin if -b
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-26 16:58:25 +02:00
Denys Vlasenko
06a98e32ae modprobe_small: make rmmod to NOT remove dependencies. Closes 5162
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-25 20:37:38 +02:00
Denys Vlasenko
0b4980c252 ash: trivial fixes for compile failures
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-25 12:49:29 +02:00
Denys Vlasenko
ffe03f04cb top: fix build failure in !USE_TERMIOS case
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-25 12:48:46 +02:00
Denys Vlasenko
42be921d48 ps: fix build failure in !DESKTOP case
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-25 12:48:10 +02:00
Denys Vlasenko
2fb8d0dee9 top: implement scrolling up/down (_very_ useful)
function                                             old     new   delta
handle_input                                         494     564     +70
top_main                                             928     947     +19
display_topmem_process_list                          363     381     +18
display_process_list                                1442    1453     +11
clearmems                                             38      28     -10
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/1 up/down: 118/-10)           Total: 108 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-21 13:04:37 +02:00
Alexey Froloff
3c62bbae94 ushcpc: gracefully handle packets with CHECKSUM_PARTIAL
function                                             old     new   delta
udhcp_recv_raw_packet                                415     579    +164
change_listen_mode                                   317     370     +53
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 217/0)             Total: 217 bytes

Signed-off-by: Alexey Froloff <raorn@raorn.name>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-17 16:02:44 +02:00
Denys Vlasenko
0ffd63ca9a telnet: convert Enter -> CR LF in line mode too
function                                             old     new   delta
handle_net_output                                     87      98     +11

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-17 11:54:35 +02:00
Denys Vlasenko
57f07bfcb2 telnet: shrink literal string size
text	   data	    bss	    dec	    hex	filename
 888483	    497	   7584	 896564	  dae34	busybox_old
 888450	    497	   7584	 896531	  dae13	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-17 11:53:09 +02:00
Denys Vlasenko
aca464ddac telnet: convert CR -> CR LF, not CR -> CR NUL when sending data to server
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-13 13:00:49 +02:00
Linus Walleij
6d463de46b fbsplash: support non-RGB565 pixels in 16-bit mode
function                                             old     new   delta
fbsplash_main                                        953     989     +36
fb_pixel_value                                        80     110     +30

Signed-off-by: Linus Walleij <triad@df.lth.se>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-06 16:52:31 +02:00
Denys Vlasenko
2dc1a97272 find: make -mindepth N -xdev correctly stop on mountpoints
function                                             old     new   delta
fileAction                                           153     193     +40

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-06 15:24:11 +02:00
Denys Vlasenko
9e71e3cea5 ash: fix "read -s" + ^C. Closes 5504
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-06 13:28:10 +02:00
Denys Vlasenko
50157f3dec top: fix "last CPU" parsing
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-06 12:43:22 +02:00
Joshua Kahlenberg
c439851438 sysctl: implement -q
function                                             old     new   delta
packed_usage                                       29208   29223     +15
sysctl_act_recursive                                 605     598      -7
sysctl_main                                          233     222     -11

Signed-off-by: Joshua Kahlenberg <jbkberg@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-05 18:15:12 +02:00
walter harms
d1d794fd48 refactor correct_password.c to avoid one if
Signed-off-by: walter harms <wharms@bfs.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-04 12:26:20 +02:00
Denys Vlasenko
9b80b903c7 build system: stop .eh_frame generation
From Rich Felker:

By default, modern GCC generates DWARF2 debug/unwind tables in the
.eh_frame section of the object files/binaries. This adds significant
bloat (as much as 15%) to the size of the busybox binary, including
the portion mapped/loaded into memory at runtime (possibly a big issue
for NOMMU targets), and the section is not strippable with the strip
command due to being part of the loaded program text.

I've since done some further checking - both testing and asking the
GCC developers about it - and it seems the solution is to add to the
CFLAGS -fno-unwind-tables and -fno-asynchronous-unwind-tables. If
debugging is disabled, this will prevent GCC from outputting DWARF2
tables entirely. But since busybox builds with -g by default, the
interesting case is what happens then. I originally thought these
options would break debugging, but they don't; instead, they tell GCC
to output the DWARF2 tables in the .debug_frame section instead of
the newish .eh_frame section (used for exception handling). With these
options added, busybox_unstripped is still fully debuggable, and the
final busybox binary loses the 15% bloat factor from the DWARF2
tables.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-09-04 11:46:44 +02:00