Re: Emulating i486 on i386 (was: TSCs are a no-no on i386)

From: Jamie Lokier (jamie@shareable.org)
Date: Thu Jul 31 2003 - 10:12:26 EST


Alan Cox wrote:
> On Iau, 2003-07-31 at 12:38, Jan-Benedict Glaw wrote:
> > Thanks for that. In the meantime, I've started to give a try to the
> > userspace version (using a LD_PRELOAD lib). My current Problem:
> >
> > amtus:~/sigill_catcher# LD_PRELOAD=./libsigill.so ls
> > sigill.c:_init():69: sigill started, sigaction() = 0
> > build.sh intercept.h libsigill.so run.sh sigill.c sigill.o
> > amtus:~/sigill_catcher# LD_PRELOAD=./libsigill.so apt-get update
> > Illegal instruction
> >
> > See? It's loaded at the "ls" call, but it seems to be not loaded for
> > apt-get.
>
> Remember you need to overload signal setting functions like sigaction.
> My guess is apt decided to disable your signal and you didnt stop it

An application might install its own SIGILL handler to emulate or trap
_other_ instructions. To do it properly, you have to chain the handlers.

Not sure how to do this, when you get to the stage of two LD_PRELOAD
libraries each wanting to overload sigaction.

-- Jamie

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Jul 31 2003 - 22:00:50 EST