fix a problem with two different applet_name's
This commit is contained in:
parent
9b49a5ed85
commit
15cb4a4272
@ -56,7 +56,7 @@ extern const unsigned short NUM_APPLETS;
|
||||
/* Length of these names has effect on size of libbusybox
|
||||
* and "individual" binaries. Keep them short.
|
||||
*/
|
||||
void lbb_prepare(char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||
void lbb_prepare(const char *applet, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||
#if ENABLE_BUILD_LIBBUSYBOX
|
||||
#if ENABLE_FEATURE_SHARED_BUSYBOX
|
||||
int lbb_main(int argc, char **argv) EXTERNALLY_VISIBLE;
|
||||
|
@ -127,11 +127,12 @@ const struct bb_applet *find_applet_by_name(const char *name)
|
||||
int *const bb_errno __attribute__ ((section (".data")));
|
||||
#endif
|
||||
|
||||
void lbb_prepare(char **argv)
|
||||
void lbb_prepare(const char *applet, char **argv)
|
||||
{
|
||||
#ifdef __GLIBC__
|
||||
(*(int **)&bb_errno) = __errno_location();
|
||||
#endif
|
||||
applet_name = applet;
|
||||
|
||||
/* Set locale for everybody except 'init' */
|
||||
if (ENABLE_LOCALE_SUPPORT && getpid() != 1)
|
||||
@ -666,7 +667,7 @@ int lbb_main(int argc, char **argv)
|
||||
int main(int argc, char **argv)
|
||||
#endif
|
||||
{
|
||||
lbb_prepare(argv);
|
||||
lbb_prepare("busybox", argv);
|
||||
|
||||
#if !BB_MMU
|
||||
/* NOMMU re-exec trick sets high-order bit in first byte of name */
|
||||
|
@ -220,14 +220,12 @@ if test "$CONFIG_FEATURE_INDIVIDUAL" = y; then
|
||||
while read name main junk; do
|
||||
|
||||
echo "\
|
||||
void lbb_prepare(char **argv);
|
||||
void lbb_prepare(const char *applet, char **argv);
|
||||
int $main(int argc, char **argv);
|
||||
|
||||
const char *applet_name = \"$name\";
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
lbb_prepare(argv);
|
||||
lbb_prepare(\"$name\", argv);
|
||||
return $main(argc, argv);
|
||||
}
|
||||
" >"$sharedlib_dir/applet.c"
|
||||
|
Loading…
Reference in New Issue
Block a user