[bproc] kernel patch for 2.2.18

Erik Arjan Hendriks erik@hendriks.cx
Tue, 15 May 2001 08:54:40 -0400


On Tue, May 15, 2001 at 01:16:07AM -0500, Simon Hill wrote:
> Hello Erik,
> 
> I've been trying to build 2.2.18 with the bproc-2.2.2 patch on an Alpha,
> but I'm getting errors. The patch goes in fine, but the make fails. I've
> attached the make error ouput. Any suggestions?

I apparently created a circular dependency in the definition of
task_struct.  They moved the definition of kernel_thread in
2.2.17->2.2.18.  The following hack has worked for other people.  A
quick hack around it, would be to move the definition back to where it
was in include/asm-alpha/unistd.h.

That's the following bit:
----------------------------------------------------------------------
#include <linux/bproc.h>

extern long __kernel_thread(unsigned long, int (*)(void *), void *);

static inline long kernel_thread(int (*fn)(void *), void * arg, unsigned long fl
ags)
{
        long result;
        bproc_hook_im(kernel_thread,());
        result = __kernel_thread(flags | CLONE_VM, fn, arg);
        return result;
}
----------------------------------------------------------------------

Then add a "#include <asm/unistd.h>" line to patch up anything that
finds it missing.

There's probably a nicer answer but that's the one I have right now.

- Erik
-- 
Erik Arjan Hendriks          Printed On 100 Percent Recycled Electrons
erik@hendriks.cx                   Contents may settle during shipment