[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

2.4.20 compile problem - solved properly?

I'm running Debian 3.0 on an Ultra 5. I had been using the 2.4.18 kernel and wanted to upgrade to 2.4.20. I downloaded the source package and attempted to compile it. It kept exiting with an error, something like:
sparc64_ksyms.c:63:conflicting types for 'kernel_thread'
usr/src/kernel-source-2.4.20/include/linux/sched.h:809:previous declaration of 'kernel_thread'

That's not the exact message - I didn't save the output, just copied it down in my notes. A search of google and the debian-sparc archives didn't turn up much about this issue. I found a mention from what looked like kernel developer traffic for 2.4.21. David S. Miller mentions "kill bogus kernel_thread decl" for the sparc64 kernel: http://commercial.linuxtoday.com/developer/2003032701326NWKNDV.

So, I decided to take matters into my own hands and started looking at the source for sparc64_ksyms.c and sched.h. I found the line numbers mentioned, and in sparc64_ksyms.c 'kernel_thread' is declared as 'pid_t', while in sched.h it is 'long'. It appears that the compilation process hits sched.h first, so once it hits line 63 in sparc64_ksyms.c it hangs. I then looked in the source for both of these files in 2.4.18. In that kernel, sched.h does not contain the offending 'long' declaration. I commented out line 809 in the 2.4.20 version, and it compiled just fine.

My question is - was this okay? I am not a programmer, just a tinkerer. The kernel compiled and booted just fine. Did I resolve this issue correctly, or could this bite me later?

Justin M.

Add photos to your e-mail with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail

Reply to: