Jamie Guinan writes:
It looks like latest uClibc defines ARCH_HAS_MMU, but a few busybox files test UCLIBC_HAS_MMU, resulting in vfork() getting called instead of fork(), etc. Patch below. Only tested for lash. Cheers, -Jamie
This commit is contained in:
parent
a08345598d
commit
e3efc9230c
@ -53,7 +53,7 @@
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_MMU__)
|
||||
#if defined(__UCLIBC__) && !defined(__ARCH_HAS_MMU__)
|
||||
#define fork vfork
|
||||
#endif
|
||||
|
||||
@ -913,7 +913,7 @@ static void check_memory(void)
|
||||
if (check_free_memory() > 1000)
|
||||
return;
|
||||
|
||||
#if !defined(__UCLIBC__) || defined(__UCLIBC_HAS_MMU__)
|
||||
#if !defined(__UCLIBC__) || defined(__ARCH_HAS_MMU__)
|
||||
if (stat("/etc/fstab", &statBuf) == 0) {
|
||||
/* swapon -a requires /proc typically */
|
||||
new_init_action(SYSINIT, "/bin/mount -t proc proc /proc", "");
|
||||
@ -957,7 +957,7 @@ static void parse_inittab(void)
|
||||
new_init_action(CTRLALTDEL, "/sbin/reboot", "");
|
||||
/* Umount all filesystems on halt/reboot */
|
||||
new_init_action(SHUTDOWN, "/bin/umount -a -r", "");
|
||||
#if !defined(__UCLIBC__) || defined(__UCLIBC_HAS_MMU__)
|
||||
#if !defined(__UCLIBC__) || defined(__ARCH_HAS_MMU__)
|
||||
/* Swapoff on halt/reboot */
|
||||
new_init_action(SHUTDOWN, "/sbin/swapoff -a", "");
|
||||
#endif
|
||||
|
@ -1439,7 +1439,7 @@ static int run_pipe_real(struct pipe *pi)
|
||||
}
|
||||
|
||||
/* XXX test for failed fork()? */
|
||||
#if !defined(__UCLIBC__) || defined(__UCLIBC_HAS_MMU__)
|
||||
#if !defined(__UCLIBC__) || defined(__ARCH_HAS_MMU__)
|
||||
if (!(child->pid = fork()))
|
||||
#else
|
||||
if (!(child->pid = vfork()))
|
||||
@ -2258,7 +2258,7 @@ FILE *generate_stream_from_list(struct pipe *head)
|
||||
#if 1
|
||||
int pid, channel[2];
|
||||
if (pipe(channel)<0) bb_perror_msg_and_die("pipe");
|
||||
#if !defined(__UCLIBC__) || defined(__UCLIBC_HAS_MMU__)
|
||||
#if !defined(__UCLIBC__) || defined(__ARCH_HAS_MMU__)
|
||||
pid=fork();
|
||||
#else
|
||||
pid=vfork();
|
||||
|
@ -1380,7 +1380,7 @@ static int run_command(struct job *newjob, int inbg, int outpipe[2])
|
||||
}
|
||||
}
|
||||
|
||||
#if !defined(__UCLIBC__) || defined(__UCLIBC_HAS_MMU__)
|
||||
#if !defined(__UCLIBC__) || defined(__ARCH_HAS_MMU__)
|
||||
if (!(child->pid = fork()))
|
||||
#else
|
||||
if (!(child->pid = vfork()))
|
||||
|
Loading…
Reference in New Issue
Block a user