aboutsummaryrefslogtreecommitdiff
path: root/applets/applet_tables.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'busybox' into mergeRon Yorston2021-05-141-1/+1
|\
| * fix "warning array subscript has type 'char'"Denys Vlasenko2021-04-141-1/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | applet_tables: simulate force-renaming on WindowsJohannes Schindelin2021-02-211-0/+9
|/ | | | | | | | | | On Windows, you cannot `rename(source, target)` if `target` exists or if a file handle to `source` is still open. This patch is similar in spirit to 02958a6ee (kbuild: simulate force-renaming on Windows, 2017-02-01). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Fixes for Hurd buildDenys Vlasenko2020-12-171-0/+4
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: prevent duplicate applet namesRon Yorston2018-11-271-1/+9
| | | | | | | | | | | | The embedded script feature makes it easier to create applets with duplicate names. Currently in such cases the build succeeds but the resulting executable doesn't work as the developer intended. Catch duplicate names when the applet tables are being generated and make the build fail. Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: fix parallel building issueMichael Olbrich2018-04-141-2/+14
| | | | | | | | | | | | | | | | The files generated by the include/config/MARKER target are in the dependency list for applets/applet_tables. If applets/applet_tables is created first during applets_dir then it will be created again later as part of $(busybox-dirs). As a result include/applet_tables.h is created again. This time while other build commands may need it. Let applets_dir depend on include/config/MARKER to avoid this particular race condition and create the header files atomically to ensure that the compiler never sees incomplete files. Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: always rewrite NUM_APPLETS.hDenys Vlasenko2016-08-231-10/+11
| | | | | | | Conditional rewrite can keep NUM_APPLETS.h mtime old, this causes make to try to regenerate it at every invocation. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* config: disentangle PREFER_APPLETS from SH_STANDALONE and SH_NOFORKDenys Vlasenko2016-07-221-1/+3
| | | | | | | | On user request. I thought enabling/disabling them all together is more consistent. Evidently, some people do want them to be separately selectable. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: finer-grained selection of search speedup table.Denys Vlasenko2016-04-021-32/+33
| | | | | | | | | | | KNOWN_APPNAME_OFFSETS=8 versus KNOWN_APPNAME_OFFSETS=0: function old new delta find_applet_by_name 55 136 +81 applet_nameofs - 14 +14 run_applet_and_exit 757 758 +1 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* applet_tables: save space by removing applet name offsetsRon Yorston2016-03-301-18/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The array applet_nameofs consumes two bytes per applet. It encodes nofork/noexec flags suid flags the offset of the applet name in the applet_name string Change the applet_table build tool to store the flags in two separate arrays (applet_flags and applet_suid). Replace applet_nameofs[] with a smaller version that only stores a limited number of offsets. This requires changes to the macros APPLET_IS_NOFORK, APPLET_IS_NOEXEC and APPLET_SUID. According to Valgrind the original find_applet_by_name required 353 cycles per call, averaged over all names. Adjusting the number of known offsets allows space to be traded off against execution time: KNOWN_OFFSETS cycles bytes (wrt KNOWN_OFFSETS = 0) 0 9057 - 2 4604 32 4 2407 75 8 1342 98 16 908 130 32 884 194 This patch uses KNOWN_OFFSETS = 8. v2: Remove some dead code from the applet_table tool; Treat the applet in the middle of the table as a special case. v3: Use the middle applet to adjust the start of the linear search as well as the last applet found. v4: Use an augmented linear search in find_applet_by_name. Drop the special treatment of the middle name from get_applet_name: most of the advantage now derives from the last stored value. v5: Don't store index in applet_nameofs, it can be calculated. v6: Tweaks by Denys function old new delta find_applet_by_name 25 125 +100 applet_suid - 92 +92 run_applet_no_and_exit 452 460 +8 run_applet_and_exit 695 697 +2 applet_name_compare 31 - -31 applet_nameofs 734 14 -720 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 3/1 up/down: 202/-751) Total: -549 bytes text data bss dec hex filename 925464 906 17160 943530 e65aa busybox_old 924915 906 17160 942981 e6385 busybox_unstripped Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* false: make "false --help" exit with 1Denys Vlasenko2014-09-181-0/+17
| | | | | | | function old new delta run_applet_no_and_exit 447 445 -2 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: do not generate MAX_APPLET_NAME_LEN (unused)Denys Vlasenko2013-11-261-5/+5
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Fix one-applet build for tcpsvdDenys Vlasenko2012-03-191-8/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* applet_tables: fix single applet build failure. Closes 4009Denys Vlasenko2011-09-161-1/+8
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* applet_tables: do not include libbb.h, that header ir for target buildsDenys Vlasenko2011-03-281-2/+8
| | | | | | ...and applets/applet_tables.c is built on *host*. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* *: make GNU licensing statement forms more regularDenys Vlasenko2010-08-161-1/+1
| | | | | | | 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>
* *: fix "see file License ..." - the file is named LICENSE (in uppercase)Denys Vlasenko2010-08-161-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: do not rebuild ash and hush on any change to any .c fileDenys Vlasenko2010-06-261-2/+22
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash,hush: make it possible to build them individuallyDenys Vlasenko2010-03-231-2/+4
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Update documentation generator so that it sucks lessDenys Vlasenko2009-10-021-9/+12
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Avoid linking in printf/bsearch if possible. -20k for static bbox withDenis Vlasenko2008-04-081-4/+10
| | | | | | | | | | | "basename", "true" and "false" only. function old new delta full_write2_str - 25 +25 bb_show_usage 183 202 +19 main 883 898 +15 run_applet_and_exit 501 507 +6
* shells: do not frocibly enable test, echo and kill _applets_,Denis Vlasenko2008-04-011-2/+7
| | | | | | | | | | | | | | | | | | | just build relevant source and use xxx_main functions. build system: add a special case when we have exactly one applet enabled (makes "true", "false", "basename" REALLY tiny). getopt32: do not use stdio. function old new delta getopt32 1385 1412 +27 make_device 1187 1200 +13 basename_main 120 127 +7 tcpudpsvd_main 1922 1926 +4 testcmd 5 - -5 echocmd 5 - -5 fuser_main 1243 1231 -12 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 4/1 up/down: 51/-22) Total: 29 bytes
* small code readability and typo fixesDenis Vlasenko2008-02-221-2/+2
|
* ps: add conditional support for -o [e]timeDenis Vlasenko2008-01-051-1/+1
|
* Makefile.help: removing allbareconfig target from helpDenis Vlasenko2008-01-041-1/+1
| | | | | applet_tables: fix allnoconfig
* nameif: extended matching (Nico Erfurth <masta@perlgolf.de>)Denis Vlasenko2007-12-241-1/+1
| | | | | | | | | | | | *: whitespace fixes function old new delta prepend_new_eth_table - 304 +304 nameif_main 620 684 +64 cc_macaddr 51 - -51 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 1/0 up/down: 368/-51) Total: 317 bytes
* Further optimize applet tables; prettify build outputDenis Vlasenko2007-11-291-17/+38
| | | | | | | text data bss dec hex filename 775923 929 9100 785952 bfe20 busybox_old 775565 929 9100 785594 bfcba busybox_unstripped
* forgotten part of previous commitDenis Vlasenko2007-11-281-0/+94