--- ./arch/um/include/time_user.h.warnfix 2003-12-27 17:07:07.000000000 +0100 +++ ./arch/um/include/time_user.h 2003-12-27 17:11:58.000000000 +0100 @@ -14,4 +14,8 @@ extern unsigned long time_lock(void); extern void time_unlock(unsigned long); +/*This comes from kernel/posix-timers.c! Check the prototype*/ +struct timespec; +extern int do_posix_clock_monotonic_gettime(struct timespec *tp); + #endif --- ./arch/um/kernel/tt/ptproxy/wait.c.warnfix 2003-12-27 17:07:07.000000000 +0100 +++ ./arch/um/kernel/tt/ptproxy/wait.c 2003-12-27 17:07:17.000000000 +0100 @@ -60,7 +60,7 @@ pid = debugger->pid; ip = ptrace(PTRACE_PEEKUSER, pid, PT_IP_OFFSET, 0); - ip = IP_RESTART_SYSCALL(ip); + IP_RESTART_SYSCALL(ip); err = ptrace(PTRACE_POKEUSER, pid, PT_IP_OFFSET, ip); if(ptrace(PTRACE_POKEUSER, pid, PT_IP_OFFSET, ip) < 0) tracer_panic("real_wait_return : Failed to restart system " --- ./arch/um/kernel/tt/tlb.c.warnfix 2003-12-27 17:07:07.000000000 +0100 +++ ./arch/um/kernel/tt/tlb.c 2003-12-27 17:07:17.000000000 +0100 @@ -10,6 +10,7 @@ #include "asm/page.h" #include "asm/pgtable.h" #include "asm/uaccess.h" +#include "asm/tlbflush.h" #include "user_util.h" #include "mem_user.h" #include "os.h" --- ./arch/um/sys-i386/fault.c.warnfix 2003-12-27 17:07:07.000000000 +0100 +++ ./arch/um/sys-i386/fault.c 2003-12-27 17:07:17.000000000 +0100 @@ -7,16 +7,25 @@ #include "sysdep/ptrace.h" #include "sysdep/sigcontext.h" -extern unsigned long search_exception_table(unsigned long addr); +/*These two are from asm-um/uaccess.h and linux/module.h, check them.*/ +struct exception_table_entry +{ + unsigned long insn; + unsigned long fixup; +}; + +const struct exception_table_entry *search_exception_tables(unsigned long add); +/*Compare this to arch/i386/mm/extable.c:fixup_exception()*/ int arch_fixup(unsigned long address, void *sc_ptr) { struct sigcontext *sc = sc_ptr; - unsigned long fixup; + const struct exception_table_entry *fixup; fixup = search_exception_tables(address); + if(fixup != 0){ - sc->eip = fixup; + sc->eip = fixup->fixup; return(1); } return(0);