Zack's Kernel News
Zack's Kernel News

Chronicler Zack Brown reports on: Supporting Older Tools; and Kernel Bug or Compiler Bug?
Supporting Older Tools
One fascinating aspect of Linux involves balancing the need to support all users everywhere with the need to keep the source code as clean and maintainable as possible. For example, someone may have an extremely old computer with an old compiler and old versions of the other tools needed to build the kernel. While it's possible for Linus Torvalds and the rest of the developers to continue supporting those old tools forever, should they do it?
Linus believes they should not. As the build tools continue to improve over time, the kernel source tree no longer needs to compensate for the lack of this or that feature in those older tools. This allows the kernel developers to clean out code that is no longer needed because a build tool handles a given situation better than it did in the past. However, to support all users everywhere, the kernel would need to maintain support for those old tools that didn't do things as well as they do now. So that old kernel code that's no longer needed would still have to be kept in order to handle all the old build tool versions.
In practice, what happens is that Linus chooses an old version of each tool and decides that the kernel will support all versions after that one (sometimes with exceptions for particularly broken versions). Periodically, the benefit of ripping out a massive ton of decrepit code outweighs the desire to continue supporting a particular version of a particular build tool. At that point, Linus may update the minimum version number for that tool and let the feeding frenzy begin for developers to tear out all that newly unneeded support code.
[...]
Buy this article as PDF
(incl. VAT)