Linux Kernel Organization, Inc.
A rendszermaggal foglalkozó Linux fejlesztők számára a kiadásra váró Linux 4.19 rendszermag megemeli a rendszermag építéséhez szükséges minimális GCC verziót. A hivatalos Linux kernel a GCC 3.2-t sorolta fel minimális A fordítónak a rendszermag építéséhez szükséges verziója szükséges, de a Linux 4.19-es rendszermag ezt a GCC 4.6-ra emeli.
Ennek oka, hogy a régebbi GCC4 kiadások különböző architektúrái nem tudták tisztán lefordítani a Linux kernelt, ezért állítják a GCC 4.6 minimumot. A kernel kifejezetten ellenőrzi a GCC 4.6.0 vagy újabb verziót is, és ha nem található, akkor a fordító hibát okoz.
Ez a kernelkód szempontjából is előnyös, mivel a kernel fejlesztői több tucatnyi kódot tudtak kiszedni a régebbi GCC-megoldásokról, amelyek fordítói hibákat és viselkedési különbségeket céloztak meg a régebbi fordítói kiadásokban.
Ezt a változást a mai napon egyesítették a Git kötelezettségvállaláson keresztül - és a GCC 4.6.0 2011-ben jelent meg, így meglátjuk, hogy a GCC a jövőben is rendelkezik-e frissítéssel.
Ennek a frissítésnek a changelog / sitout alapvetően meghatározza, hogy a változás nagyrészt teljes egészében annak köszönhető, hogy a GCC fordító régebbi verziói nem építették fel a rendszermagot különböző architektúrák alatt, amint az alábbiakban megjegyezzük:
Különböző architektúrák nem épülnek fel megfelelően a gcc fordító régebbi verzióival. Példa Guenter Roeck szálból [1]:>> A ./include/linux/mm.h:17:0,> ./include/linux/pid_namespace.h:7,> from ./include fájlban /linux/ptrace.h:10,> from arch / openrisc / kernel / asm-offsets.c: 32:> ./include/linux/mm_types.h:497:16: hiba: rugalmas tömb tag egyébként üres struktúrában> > Ez csak egy példa a gcc 4.5.1 or32 esetén. Láttam a gcc 4.4 problémáját is (az unicore32 esetében). Tehát frissítse a gcc minimálisan szükséges verzióját 4.6-ra. [1] https://lore.kernel.org/lkml/20180814170904.GA12768@roeck-us.net/ Vegyes: - Documentation / process / changes.rst frissítése - Távolítsa el és konszolidálja a verzió teszttömbjeit a compiler-gcc.h fájlban a 4.6-nál alacsonyabb verzióknál
Ami az LLVM Clang erőfeszítéseit illeti a Linux x86_64 mainline kernel felépítéséért, jelenleg némi megtorpanás tapasztalható, főleg az LLVMLinux projektben - bár volt némi munka a kern felépítésével az ARM Linux téren a Clang segítségével.