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
82d38dab91
get rid of global "struct bb_applet *current_applet"
2007-10-10 14:38:47 +00:00
Denis Vlasenko
d65ea39ffc
hush: fix glob() abuse. Code was making unfounded assumptions how
...
glob() works, and it broke horribly on specific uclibc config.
2007-10-01 10:02:25 +00:00
Denis Vlasenko
ff0976248a
hush: int->smallint for flag vars; make some names more "greppable"
2007-10-01 10:00:45 +00:00
Denis Vlasenko
8412d7959a
hush: feeble attempt at making it more NOMMU-friendly
2007-10-01 09:59:47 +00:00
Denis Vlasenko
a0898170d8
hush: stop doing manual acounting of open fd's, kernel can do it for us
2007-10-01 09:59:01 +00:00
Denis Vlasenko
96e1b38586
introduce and use close_on_exec_on(fd). -50 bytes.
2007-09-30 23:50:48 +00:00
Denis Vlasenko
4daad9004d
introduce bb_putchar(). saves ~1800 on uclibc (less on glibc).
2007-09-27 10:20:47 +00:00
Denis Vlasenko
6ca409e0e4
trylink: produce even more info about final link stage
...
trylink: explain how to modify link and drastically decrease amount
of padding (unfortunately, needs hand editing ATM).
*: add ALIGN1 / ALIGN2 to global strings and arrays of bytes and shorts
size saving: 0.5k
2007-08-12 20:58:27 +00:00
Denis Vlasenko
80b8b39899
Consolidate ARRAY_SIZE macro; remove one unneeded global var (walter harms <wharms@bfs.de>)
2007-06-25 10:55:35 +00:00
Denis Vlasenko
ca525b4f24
*: BB_BANNER -> bb_banner (it is not a const or #define)!
...
correct_password: explain in detail why it is ok to use bb_banner
fsck_minix: make it print bb version, not it's own (outdated/irrelevant) one
Marginal size difference:
text data bss dec hex filename
679119 2700 15632 697451 aa46b busybox_old
679091 2700 15632 697423 aa44f busybox_unstripped
2007-06-13 12:27:17 +00:00
Denis Vlasenko
d67cef2425
hush: fix read builtin to not read ahead past eol and to not use
...
insane amounts of stack. Testsuite updated.
2007-06-13 06:47:47 +00:00
Denis Vlasenko
bdbbb7ec49
make busybox --install work even if /proc/self/exe doesn't exist
...
# size busybox_old busybox_unstripped
text data bss dec hex filename
680095 2704 15648 698447 aa84f busybox_old
680099 2704 15648 698451 aa853 busybox_unstripped
2007-06-08 15:02:55 +00:00
Denis Vlasenko
27f79ff03d
hush: trivial buglet found by randomconfig testing
2007-05-30 00:55:52 +00:00
Denis Vlasenko
4b924f3a5c
whitespace fixes
2007-05-30 00:29:55 +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
Denis Vlasenko
5a6aeddfa7
xpipe: introduce (saves ~170 bytes)
...
udhcp/signalpipe.c: use pipe instead of socketpair.
2007-05-26 16:44:20 +00:00
Denis Vlasenko
ba7cf260fd
hush: fix 'echo abcsleep 5
def' + Ctrl-Z and Ctrl-C bugs. +50 bytes of code.
2007-05-25 14:34:30 +00:00
Denis Vlasenko
0a83fc3984
hush: avoid duplicating HUSH_VERSION
2007-05-25 11:12:32 +00:00
Denis Vlasenko
201c72a8d6
hush: micro-optimization in new variable code
2007-05-25 10:00:36 +00:00
Denis Vlasenko
28c0f0f4fe
hush: we can't do without variable->value member, saving 25 bytes of code
...
and some runtime memory. Rename few variables.
2007-05-25 02:46:01 +00:00
Denis Vlasenko
d76c049cc4
hush: rework variable storage and environment handling.
...
More that -100 bytes of code + memory leak plugged.
Added a testcase for it.
2007-05-25 02:16:25 +00:00
Denis Vlasenko
5a1437d835
hush: fix segfaulting syntax error in interactive hush
2007-05-24 13:22:47 +00:00
Denis Vlasenko
b055001b6a
hush: fix handling of unmatched ${name (without closing '}') -
...
was eating all remaining input, potentially megabytes.
nofork: save/restore die_jmp too
nofork: use -2222 instead of -111 as "special" return valur for zero
(-111 is used by some applets. -2222 won't fit in exitcode and thus safer)
2007-05-24 12:18:16 +00:00
Denis Vlasenko
90e485ce79
hush: make syntax error messages a bit more useful
2007-05-23 15:22:50 +00:00
Denis Vlasenko
170435c575
hush: fix job control with eval /bin/external_prog
...
hush: fix parsing of unterminated "str with no EOL
hush: improved make_string() (smaller, faster, needs less RAM)
hush: renamed several functions
2007-05-23 13:01:10 +00:00
Denis Vlasenko
1a7358612f
hush: fix a bit different instance of "No EOL" bug,
...
add testsuite for that. Expand another testsuite.
2007-05-23 00:32:25 +00:00
Denis Vlasenko
0681033918
hush: add 3 CONFIG_xxx, allowing for smaller and less capable hush.
...
Minimal hush is ~9k now (lash is ~7k).
2007-05-21 23:30:54 +00:00
Denis Vlasenko
219e88d050
hush: using smallints where we can. save ~20 bytes in code and
...
some data storage at runtime.
2007-05-21 10:18:23 +00:00
Denis Vlasenko
004baba2d6
hush: fix shift + $0 bug; add testcase
2007-05-20 22:22:18 +00:00
Denis Vlasenko
262d765351
hush: trivial size optimization
2007-05-20 21:52:49 +00:00
Denis Vlasenko
14b5dd9943
hush: make process substitution configurable; add a testcase
2007-05-20 21:51:38 +00:00
Denis Vlasenko
c8be5ee325
hush: do "struct globals" trick. hush.o data+bss = 0 bytes now.
...
+60 bytes to image, but -8000 bytes in bss.
2007-05-17 15:38:46 +00:00
Denis Vlasenko
b6a741ffa7
hush: consolidated variable expansion for assignments and "normal" one.
...
-435 bytes. Tested against testsuite.
2007-05-17 14:38:17 +00:00
Denis Vlasenko
96f67dc69d
more compile fixes from randomconfig run
2007-05-17 13:02:41 +00:00
Denis Vlasenko
c666f71e3b
hush: take care of several easy FIXMEs. -228 bytes.
2007-05-16 22:18:54 +00:00
Denis Vlasenko
831dcc439c
hush: another microscopic typo fix
2007-05-16 15:05:36 +00:00
Denis Vlasenko
c29903221d
hush: fix English in comment
2007-05-16 12:57:12 +00:00
Denis Vlasenko
3e7b0e6120
hush: simplify read builtin; fix set_local_var (misplaced 'goto skip;')
2007-05-16 12:52:15 +00:00
Denis Vlasenko
1f4cf517f5
hush: fix expansion of quoted $VAR, $* and $@
2007-05-16 10:39:24 +00:00
Denis Vlasenko
8f6bdb42df
hush: fix incorrect processing of echo "'$var'".
...
hush: rename map[] and MAP_xxx, making them easier to understand.
hush: move testcase (which now passes) from hush-bugs to hush-parsing
2007-05-16 09:36:55 +00:00
Denis Vlasenko
764d59d488
hush: more fixes to variable expansion, more testcases
2007-05-14 16:23:23 +00:00
Denis Vlasenko
03eb8bf6ce
hush: move towards more correct variable expansion
...
hush: fix a few cases in FOR v IN ... construct
unfortunately, code growth is big - ~600 bytes
2007-05-14 16:19:34 +00:00
Denis Vlasenko
602d13cba5
hush: fix '{ false; echo $?; }' bug.
...
hush: expand testsuite. variable expansion is still very broken
2007-05-13 18:34:53 +00:00
Denis Vlasenko
3e9aaae5dc
hush: fix bug in interactive shell introduced yesterday
...
hush: fix `process subst` (2 bugs)
NB: will delete and re-add hush_test in order to change file modes
2007-05-11 12:56:43 +00:00
Denis Vlasenko
e0a336747c
hush: fix "unterminated last line loops forever" bug
...
hush: add testsuite infrastructure
2007-05-10 23:06:55 +00:00
Denis Vlasenko
53079d494e
hush: fix recent breakage (VAR=VAL stopped working)
2007-05-10 23:05:28 +00:00
Denis Vlasenko
21f0d4c55e
hush: fix double-free in "echo TEST &"
2007-05-06 14:15:42 +00:00
Denis Vlasenko
dd4cb2b31e
hush: stop generating extra empty pipes in parse stage.
2007-05-05 15:11:40 +00:00
Denis Vlasenko
a6c467f6d1
hush: preparatory patch for removing extra empty pipes generation
...
in parse stage. No real code change here.
2007-05-05 15:10:52 +00:00