x86: fix ptrace.o compile error
Subsystems (2)
PATCH 1/1 x86: fix ptrace.o compile error
x86: fix ptrace.o compile error
Fix compiling Linux 2.6.32.59 with gcc 4.7.1 (Debian 7 testing). Mainline has instead removed the "asmregparm" in ptrace.c (in fact, everywhere), but this alternative seemed too invasive.
CC arch/x86/kernel/ptrace.oarch/x86/kernel/ptrace.c:1472:17: error: conflicting types for 'syscall_trace_enter' In file included from /usr/src/linux-2.6.32/arch/x86/include/asm/vm86.h:130:0,
from /usr/src/linux-2.6.32/arch/x86/include/asm/processor.h:10,
from /usr/src/linux-2.6.32/arch/x86/include/asm/thread_info.h:22,
from include/linux/thread_info.h:56,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/timex.h:56,
from include/linux/sched.h:56,
from arch/x86/kernel/ptrace.c:11:
/usr/src/linux-2.6.32/arch/x86/include/asm/ptrace.h:145:13: note: previous declaration of 'syscall_trace_enter' was here
arch/x86/kernel/ptrace.c:1517:17: error: conflicting types for 'syscall_trace_leave'
In file included from /usr/src/linux-2.6.32/arch/x86/include/asm/vm86.h:130:0,
from /usr/src/linux-2.6.32/arch/x86/include/asm/processor.h:10,
from /usr/src/linux-2.6.32/arch/x86/include/asm/thread_info.h:22,
from include/linux/thread_info.h:56,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/timex.h:56,
from include/linux/sched.h:56,
from arch/x86/kernel/ptrace.c:11:/usr/src/linux-2.6.32/arch/x86/include/asm/ptrace.h:146:13: note: previous declaration of 'syscall_trace_leave' was here make[2]: *** [arch/x86/kernel/ptrace.o] Error 1
make[1]: *** [arch/x86/kernel] Error 2
make: *** [arch/x86] Error 2
Signed-off-by Jens Rottmann <[email protected]>
---
arch/x86/include/asm/ptrace.h +3 -2
@@ -130,6 +130,7 @@#ifdef __KERNEL__#include <linux/init.h> +#include <linux/linkage.h> struct cpuinfo_x86 ;struct task_struct ;
@@ -142,8 +143,8 @@ int error_code, int si_code);void signal_fault (struct pt_regs *regs,void __user *frame,char *where); -extern long syscall_trace_enter (struct pt_regs *); -extern void syscall_trace_leave (struct pt_regs *); +extern asmregparm long syscall_trace_enter (struct pt_regs *); +extern asmregparm void syscall_trace_leave(struct pt_regs *);static inline unsigned long regs_return_value (struct pt_regs *regs) {
_