Hush cant replace lash for my situation

Denys Vlasenko vda.linux at googlemail.com
Mon Jan 7 10:55:12 PST 2008


On Sunday 06 January 2008 22:03, Martinb_ARM_NOMMU_KISSDVD wrote:
> I did build the toolchain but i used a script, i will try to learn to build
> my own uclibc but if i look at the buildscript and all the patches the
> developers have used then i think i will never be able to do this (but i
> will try, and will bug you on a new thread if im stuck)
> 
> 
> I did remove the -DBB_NOMMU (dont remember why i ever put it ther in the
> first place)
> Did Comment out define debug_printf_exec and recompile
> run it and type "ls". For me, it shows this:
> 
> ===============================================
> /hdd/shell # ls
> parse_stream_outer: run_list
> run_list entered
> : run_list_real with 1 members
> run_list_real start lvl 1
> : rword=0 if_code=0 next_if_code=0 skip_more=12
> : run_pipe_real with 1 members
> run_pipe_real start: single_fg=1
> : pipe member 'ls' '(null)'...
> run_pipe_real return -1
> : checkjobs returned 0
> : setting last_return_code=0
> : rword=0 if_code=0 next_if_code=0 skip_more=12
> run_list_real lvl 1 return 0
> run_list return 0
> ================================================

It seems it never goes into if (!child->pid) {...} part below:
Can you add debug_printf_exec() as shown wit '+' and test again?

                if (child->argv)
                        debug_printf_exec(": pipe member '%s' '%s'...\n", child->argv[0], child->argv[1]);
                else
                        debug_printf_exec(": pipe member with no argv\n");

                /* pipes are inserted between pairs of commands */
                if ((i + 1) < pi->num_progs) {
                        pipe(pipefds);
                        nextout = pipefds[1];
                } else {
                        nextout = 1;
                        pipefds[0] = -1;
                }

                /* XXX test for failed fork()? */
#if BB_MMU
                child->pid = fork();
+               debug_printf_exec(": vfork returned %d\n", child->pid);
#else
                child->pid = vfork();
+               debug_printf_exec(": fork returned %d\n", child->pid);
#endif
                if (!child->pid) { /* child */

--
vda


More information about the busybox mailing list