Linux 4.19 Kernel Kräver nu att GCC 4.6 ska byggas på grund av kompileringsfel på äldre arkitektur

Linux-Unix / Linux 4.19 Kernel Kräver nu att GCC 4.6 ska byggas på grund av kompileringsfel på äldre arkitektur 1 minut läst

Linux Kernel Organization, Inc.



För Linux-utvecklare som arbetar på kärnan höjer Linux 4.19-kärnan som ska släppas den GCC-minsta version som krävs för kärnbyggnad. Den officiella Linux-kärnan har listat GCC 3.2 som minimum version av kompilatorn som krävs för kärnbyggnad, men Linux-kärna 4.19 höjer den till GCC 4.6.

Detta beror på att olika arkitekturer på äldre GCC4-utgåvor inte har sammanställt Linux-kärnan rent, varför GCC 4.6 ställs in som ett minimum. Kärnan kommer också uttryckligen att söka efter GCC 4.6.0 eller nyare och om den inte hittas kommer kompilatorn att fel.



Detta är också fördelaktigt för kärnkoden, eftersom kärndevsarna kunde ta bort flera dussin rader med kod för äldre GCC-lösningar som var inriktade på kompileringsfel och beteendemässiga skillnader i de äldre kompilatorutgåvorna.



Denna ändring slogs samman just tidigare idag via Git commit - och GCC 4.6.0 släpptes 2011, så vi får se om GCC också har några uppdateringar i framtiden.



Changelog / commit för den här uppdateringen anger i princip att ändringen är ganska mycket på grund av att äldre versioner av GCC-kompilatorn inte bygger kärnan under olika arkitekturer, som anges nedan:

 Olika arkitekturer går inte att bygga ordentligt med äldre versioner av gcc-kompilatorn. Ett exempel från Guenter Roeck i tråd [1]:>> I filen ingår från ./include/linux/mm.h:17:0,> från ./include/linux/pid_namespace.h:7,> från ./include /linux/ptrace.h:10,> från arch / openrisc / kernel / asm-offsets.c: 32:> ./include/linux/mm_types.h:497:16: fel: flexibel matrismedlem i annars tom struktur> > Detta är bara ett exempel med gcc 4.5.1 för or32. Jag har sett problemet> med gcc 4.4 (för unicore32) också. Så uppdatera minsta möjliga version av gcc till 4.6. [1] https://lore.kernel.org/lkml/20180814170904.GA12768@roeck-us.net/ Diverse: - Uppdatera dokumentation / process / ändringar.rst - Ta bort och konsolidera versionstestblock i compiler-gcc.h för versioner lägre än 4,6

När det gäller LLVM Clang-ansträngningar för att bygga huvudlinjen Linux x86_64-kärnan, finns det för närvarande en del stall med ansträngningarna, särskilt i LLVMLinux-projektet - även om det har gjorts en del arbete med att bygga kärnan genom ARM Linux-utrymmet med Clang.