Minimum toolchain requirements?

From: Rob Landley
Date: Fri Dec 14 2012 - 18:27:48 EST


Although the README and Documentation/Changes both say the kernel builds with gcc 3.2, this is no loner the case. In reality the new 3.7 kernel no longer builds under unpatched gcc 4.2.1 (the last GPLv2 release).

Building for i686 breaks with "arch/x86/kernel/cpu/perf_event_p6.c:22: error: p6_hw_cache_event_ids causes a section type conflict" (trivial workaround: patch kernel so CONFIG_BROKEN_RODATA defaults to y). Building for mips breaks with "arch/mips/lib/delay.c:24:5: warning: "__SIZEOF_LONG__" is not defined". (Introduced January 2007, gcc git commit 6a60f216c210e. Easy enough to add an equivalent to my toolchain.)

Over in my Aboriginal Linux project I've been patching both the kernel and my GPLv2 toolchain for a while to work around these random breakages (such as when sh4 decided it would only build with binutils 2.20, which had only been out for 3 months at the time). But since I'm supposed to be catching Documentation stuff that falls through the cracks, if the docs are clearly out of date I should probably update them.

I'm still regression testing each new kernel release against gcc 4.2.1, binutils 2.17, and make 3.81 (I.E. the last GPLv2 release of each tool). My personal preference would be to upgrade Documentation/Changes to say "gcc 4.2.1 and binutils 2.17 are the oldest supported versions", and then try to push patches upstream that prevent the kernel from building on those. Unfortunately, when I try to push patches to make older toolchains work, the reception isn't exactly warm.

So I ask the question: what are the current minimum requirements to build the kernel?

Rob
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/