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
This commit is contained in:
Denis Vlasenko
2007-06-08 15:02:55 +00:00
parent c14d39e83a
commit bdbbb7ec49
8 changed files with 15 additions and 21 deletions

View File

@@ -577,21 +577,13 @@ static int busybox_main(char **argv)
}
if (ENABLE_FEATURE_INSTALLER && strcmp(argv[1], "--install") == 0) {
int use_symbolic_links = 0;
char *busybox;
/* to use symlinks, or not to use symlinks... */
if (argv[2])
if (strcmp(argv[2], "-s") == 0)
use_symbolic_links = 1;
/* link */
busybox = xmalloc_readlink_or_warn("/proc/self/exe");
const char *busybox;
busybox = xmalloc_readlink_or_warn(bb_busybox_exec_path);
if (!busybox)
return 1;
install_links(busybox, use_symbolic_links);
if (ENABLE_FEATURE_CLEAN_UP)
free(busybox);
busybox = bb_busybox_exec_path;
/* -s makes symlinks */
install_links(busybox,
argv[2] && strcmp(argv[2], "-s") == 0);
return 0;
}