Tweak outdated documentation and comments
No binary (build failed)
—
(log yok)
| @@ -147,17 +147,17 @@ Placement / Directory | |
| Find the appropriate directory for your new applet. | |
| - | Add the kbuild snippet to the .c file: |
| - | |
| - | //kbuild:lib-$(CONFIG_MU) += mu.o |
| - | |
| Add the config snippet to the .c file: | |
| //config:config MU | |
| //config: bool "MU" | |
| //config: default y | |
| //config: help | |
| - | //config: Returns an indeterminate value. |
| + | //config: Returns an indeterminate value. |
| + | |
| + | Add the kbuild snippet to the .c file: |
| + | |
| + | //kbuild:lib-$(CONFIG_MU) += mu.o |
| Usage String(s) | |
| @@ -168,8 +168,9 @@ This should look like the following: | |
| //usage:#define mu_trivial_usage | |
| //usage: "[-abcde] FILE..." | |
| - | //usage:#define mu_full_usage |
| - | //usage: "Returns an indeterminate value\n" |
| + | //usage:#define mu_full_usage "\n\n" |
| + | //usage: "Returns an indeterminate value" |
| + | //usage: "\n" |
| //usage: "\n -a First function" | |
| //usage: "\n -b Second function" | |
| //usage: ... | |
| @@ -10,13 +10,8 @@ of reimplemented Unix commands, and we can do the same trick | |
| for speeding up busybox shells, and more. NOEXEC and NOFORK applets | |
| are exactly those applets which are eligible for these tricks. | |
| - | Applet will be subject to NOFORK/NOEXEC tricks if it is marked as such |
| - | in applets.h. FEATURE_PREFER_APPLETS is a config option which |
| - | globally enables usage of NOFORK/NOEXEC tricks. |
| - | If it is enabled, FEATURE_SH_STANDALONE can be enabled too, |
| - | and then shells will use NOFORK/NOEXEC tricks for ordinary commands. |
| - | NB: shell builtins use these tricks regardless of FEATURE_SH_STANDALONE |
| - | or FEATURE_PREFER_APPLETS. |
| + | Applet will be subject to NOFORK/NOEXEC tricks only if it is marked |
| + | as such in applets.src.h or in their inline "//applet:" directives. |
| In C, if you want to call a program and wait for it, use | |
| spawn_and_wait(argv), BB_EXECVP(prog,argv) or BB_EXECLP(prog,argv0,...). | |
| @@ -24,6 +19,31 @@ They check whether program name is an applet name and optionally | |
| do NOFORK/NOEXEC thing depending on configuration. | |
| + | Relevant CONFIG options |
| + | |
| + | FEATURE_PREFER_APPLETS |
| + | Globally enables NOFORK/NOEXEC tricks for such programs as xargs |
| + | and find: |
| + | BB_EXECVP(cmd, argv) will try to exec /proc/self/exe |
| + | if command's name matches some applet name; |
| + | spawn_and_wait(argv) will do NOFORK/NOEXEC tricks |
| + | |
| + | //TODO: the above two things probably should have separate options? |
| + | |
| + | FEATURE_SH_STANDALONE |
| + | shells will try to exec /proc/self/exe if command's name matches |
| + | some applet name; shells will do NOEXEC trick on NOEXEC applets |
| + | |
| + | //TODO: split (same as for PREFER_APPLETS) |
| + | |
| + | FEATURE_SH_NOFORK |
| + | shells will do NOFORK trick on NOFORK applets |
| + | |
| + | NB: shell builtins use these tricks regardless of FEATURE_SH_STANDALONE, |
| + | FEATURE_PREFER_APPLETS or FEATURE_SH_NOFORK. In effect, builtins |
| + | are "always NOFORK". |
| + | |
| + | |
| NOEXEC | |
| NOEXEC applet should work correctly if another applet forks and then | |
| @@ -121,22 +141,3 @@ option_mask32 getting trashed. | |
| It's the same trusty spawn_and_wait(argv). If FEATURE_PREFER_APPLETS=y, | |
| it does NOEXEC trick. It resets xfunc_error_retval = 1 and | |
| logmode = LOGMODE_STDIO in the child. | |
| - | |
| - | |
| - | Relevant CONFIG options |
| - | |
| - | FEATURE_PREFER_APPLETS |
| - | BB_EXECVP(cmd, argv) will try to exec /proc/self/exe |
| - | if command's name matches some applet name; |
| - | spawn_and_wait(argv) will do NOFORK/NOEXEC tricks |
| - | |
| - | //TODO: the above two things probably should have separate options? |
| - | |
| - | FEATURE_SH_STANDALONE |
| - | shells will try to exec /proc/self/exe if command's name matches |
| - | some applet name; shells will do NOEXEC trick on NOEXEC applets |
| - | |
| - | //TODO: split (same as for PREFER_APPLETS) |
| - | |
| - | FEATURE_SH_NOFORK |
| - | shells will do NOFORK trick on NOFORK applets |
| @@ -295,8 +295,8 @@ int arping_main(int argc UNUSED_PARAM, char **argv) | |
| sock_fd = xsocket(AF_PACKET, SOCK_DGRAM, 0); | |
| - | // Drop suid root privileges |
| - | // Need to remove SUID_NEVER from applets.h for this to work |
| + | // If you ever change BB_SUID_DROP to BB_SUID_REQUIRE, |
| + | // drop suid root privileges here: |
| //xsetuid(getuid()); | |
| { | |