Re: Huh?? [PATCH]

Eduardo Pereira Habkost
2004-07-20T15:18:25Z

[-- Attachment #1: Type: text/plain, Size: 1553 bytes --]

On Mon, Jul 19, 2004 at 06:58:04PM -0700, Tommy McCabe wrote:
> --- Tommy McCabe <rocketjet314@yahoo.com> wrote:
> > What the heck is if ((num = sys_execve("/bin/init",
> > args, 18))) supposed to mean? num is an
> > uninitialized
> > variable which could equal anything.
> >
>
> I found out what it means- it's supposed to set num
> equal to sys_execve and then evaluate if that
> statement is equal to 0. This, for some reason, is
> compiled wrong and causes ELKS to hang at "Loading
> init" at boot. The patch not only makes the intent
> clearer but fixes the error.

Have you tested and checked if the patch really fixes the hang? The
"hang" at "Loading init" seems to be because init is running on the
second pseudo-terminal (Alt+F2), and not because the code is compiled wrong.

Anyway, *in my opinion* (people can disagree), the original code is
shorter and clearer. And possibly generates smaller code when compiled
by bcc (I am not sure, maybe bcc does some optmization, and the generated
code is the same).

Content-Description: init.diff
> --- ./elkscomp/elks/init/main.c 2004-05-31 09:49:25.000000000 -0400
> +++ ./elkscurr/elks/init/main.c 2004-07-19 21:44:20.000000000 -0400
> @@ -98,8 +98,11 @@
> mount_root();
>
> printk("Loading init\n");
> -
> - if ((num = sys_execve("/bin/init", args, 18))) {
> +
> + num = sys_execve("/bin/init", args, 18);
> +
> + if (num != 0)
> + {
>
> printk("sys_execve(\"/bin/init\",args,18) => %d.\n",num);
>

--
Eduardo

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]