Hi Christoph, On Thu, Jun 06, 2013 at 09:07:30AM +0200, Christoph Biedl wrote: > Willy Tarreau wrote... > > > Responses should be made within 72 hours. Anything received after that time > > might be too late. > > Building any 2.6.32.y kernel on i386 (CONFIG_M686=y) failed: > > CC arch/x86/kernel/ptrace.o > arch/x86/kernel/ptrace.c:1472:17: error: conflicting types for 'syscall_trace_enter' > In file included from /«PKGBUILDDIR»/arch/x86/include/asm/vm86.h:130:0, > from /«PKGBUILDDIR»/arch/x86/include/asm/processor.h:10, > from /«PKGBUILDDIR»/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: > /«PKGBUILDDIR»/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 /«PKGBUILDDIR»/arch/x86/include/asm/vm86.h:130:0, > from /«PKGBUILDDIR»/arch/x86/include/asm/processor.h:10, > from /«PKGBUILDDIR»/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: > /«PKGBUILDDIR»/arch/x86/include/asm/ptrace.h:146:13: note: previous declaration of 'syscall_trace_leave' was here > make[4]: *** [arch/x86/kernel/ptrace.o] Error 1 > make[3]: *** [arch/x86/kernel] Error 2 > make[3]: *** Waiting for unfinished jobs.... > > > The reason was a change in my build environment, from gcc-4.4 (Debian > squeeze) to gcc-4.7 (Debian wheezy). Reverse git bisect led to > v2.6.39-5195-g1b4ac2a: Thanks for your report. And as we checked off-list, this code was not changed since 2.6.28-rc1, so all these versions should break with gcc-4.7, including probably 2.6.34.x as well. > | 1b4ac2a935aaf194241a2f4165d6407ba9650e1a is the first bad commit > | commit 1b4ac2a935aaf194241a2f4165d6407ba9650e1a > | Author: Richard Weinberger <richard@xxxxxx> > | Date: Tue May 24 00:18:05 2011 +0200 > | > | x86: Get rid of asmregparm > | > | As UML does no longer need asmregparm we can remove it. > > Backporting that commit (include/linux/linkage.h needed an adjustment) > made the kernel build again, see below. I didn't have the time to > start these yet, will do tonight. I'm not sure we can get rid of this because there were some previous patches for UML (at least 3a3679078aed2c451ebc32836bbd3b8219a65e01 which disabled support for regparm). > Also find the .config attached I used for build-testing. Thank you. > Willy, I'll leave it up to you whether to include that one or better > wait for .62 to do that. Could you please instead test the following patch which passes asmregparm in ptrace.h ? diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h index 0f0d908..8143842 100644 --- a/arch/x86/include/asm/ptrace.h +++ b/arch/x86/include/asm/ptrace.h @@ -142,8 +142,8 @@ extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, 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) { Thanks, Willy -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html