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
|
/* Length of these names has effect on size of libbusybox
|
||||||
* and "individual" binaries. Keep them short.
|
* 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_BUILD_LIBBUSYBOX
|
||||||
#if ENABLE_FEATURE_SHARED_BUSYBOX
|
#if ENABLE_FEATURE_SHARED_BUSYBOX
|
||||||
int lbb_main(int argc, char **argv) EXTERNALLY_VISIBLE;
|
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")));
|
int *const bb_errno __attribute__ ((section (".data")));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void lbb_prepare(char **argv)
|
void lbb_prepare(const char *applet, char **argv)
|
||||||
{
|
{
|
||||||
#ifdef __GLIBC__
|
#ifdef __GLIBC__
|
||||||
(*(int **)&bb_errno) = __errno_location();
|
(*(int **)&bb_errno) = __errno_location();
|
||||||
#endif
|
#endif
|
||||||
|
applet_name = applet;
|
||||||
|
|
||||||
/* Set locale for everybody except 'init' */
|
/* Set locale for everybody except 'init' */
|
||||||
if (ENABLE_LOCALE_SUPPORT && getpid() != 1)
|
if (ENABLE_LOCALE_SUPPORT && getpid() != 1)
|
||||||
@ -666,7 +667,7 @@ int lbb_main(int argc, char **argv)
|
|||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
lbb_prepare(argv);
|
lbb_prepare("busybox", argv);
|
||||||
|
|
||||||
#if !BB_MMU
|
#if !BB_MMU
|
||||||
/* NOMMU re-exec trick sets high-order bit in first byte of name */
|
/* 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
|
while read name main junk; do
|
||||||
|
|
||||||
echo "\
|
echo "\
|
||||||
void lbb_prepare(char **argv);
|
void lbb_prepare(const char *applet, char **argv);
|
||||||
int $main(int argc, char **argv);
|
int $main(int argc, char **argv);
|
||||||
|
|
||||||
const char *applet_name = \"$name\";
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
lbb_prepare(argv);
|
lbb_prepare(\"$name\", argv);
|
||||||
return $main(argc, argv);
|
return $main(argc, argv);
|
||||||
}
|
}
|
||||||
" >"$sharedlib_dir/applet.c"
|
" >"$sharedlib_dir/applet.c"
|
||||||
|
Loading…
Reference in New Issue
Block a user