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-doc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html