diff --git a/target/linux/uml-2.6/patches/02-missing_definitions.patch b/target/linux/uml-2.6/patches/02-missing_definitions.patch new file mode 100644 index 000000000..7facbfff3 --- /dev/null +++ b/target/linux/uml-2.6/patches/02-missing_definitions.patch @@ -0,0 +1,37 @@ +# Newer libcs don't define the JB_* jmp_buf access macros. If this is +# the case, we provide values ourselves. +Index: linux-2.6.15/arch/um/os-Linux/sys-i386/registers.c +=================================================================== +--- linux-2.6.15.orig/arch/um/os-Linux/sys-i386/registers.c 2006-02-13 13:00:06.000000000 -0500 ++++ linux-2.6.15/arch/um/os-Linux/sys-i386/registers.c 2006-02-13 13:04:07.000000000 -0500 +@@ -130,6 +130,12 @@ void get_safe_registers(unsigned long *r + HOST_FP_SIZE * sizeof(unsigned long)); + } + ++#ifndef JB_PC ++#define JB_PC 5 ++#define JB_SP 4 ++#define JB_BP 3 ++#endif ++ + void get_thread_regs(union uml_pt_regs *uml_regs, void *buffer) + { + struct __jmp_buf_tag *jmpbuf = buffer; +Index: linux-2.6.15/arch/um/os-Linux/sys-x86_64/registers.c +=================================================================== +--- linux-2.6.15.orig/arch/um/os-Linux/sys-x86_64/registers.c 2006-02-13 13:00:06.000000000 -0500 ++++ linux-2.6.15/arch/um/os-Linux/sys-x86_64/registers.c 2006-02-13 13:04:07.000000000 -0500 +@@ -78,6 +78,12 @@ void get_safe_registers(unsigned long *r + HOST_FP_SIZE * sizeof(unsigned long)); + } + ++#ifndef JB_PC ++#define JB_PC 7 ++#define JB_RSP 6 ++#define JB_RBP 1 ++#endif ++ + void get_thread_regs(union uml_pt_regs *uml_regs, void *buffer) + { + struct __jmp_buf_tag *jmpbuf = buffer; +