Linux Kernel Organization, Inc.
За разработчиците на Linux, работещи върху ядрото, предстоящото ядро на Linux 4.19 повишава минималната версия на GCC, необходима за изграждане на ядрото. Официалното ядро на Linux изброява GCC 3.2 като минимум версия на компилатора, необходима за изграждане на ядрото, но ядрото на Linux 4.19 повишава това до GCC 4.6.
Това е така, защото различните архитектури на по-старите GCC4 версии не успяват да компилират чисто ядрото на Linux, поради което GCC 4.6 се задава като минимум. Ядрото също ще провери изрично за GCC 4.6.0 или по-нова и ако не бъде намерена, компилаторът ще изведе грешка.
Това също е полезно за кода на ядрото, тъй като разработчиците на ядрото успяха да премахнат няколко десетки реда код за по-стари решения на GCC, които бяха насочени към грешки в компилатора и поведенчески разлики в по-старите версии на компилатора.
Тази промяна беше обединена малко по-рано днес чрез Git commit - и GCC 4.6.0 беше пусната през 2011 г., така че ще видим дали GCC има актуализации и в бъдеще.
Дневникът на промените / ангажирането за тази актуализация основно посочва, че промяната се дължи изцяло на по-старите версии на GCC компилатора, които не успяват да изградят ядрото под различни архитектури, както е отбелязано по-долу:
Различни архитектури не успяват да се изграждат правилно с по-стари версии на компилатора gcc. Пример от Guenter Roeck в нишка [1]:>> Във файл, включен от ./include/linux/mm.h:17-0,> от ./include/linux/pid_namespace.h:7,> от ./include /linux/ptrace.h:10,> от arch / openrisc / kernel / asm-offsets.c: 32:> ./include/linux/mm_types.h:497:16: грешка: гъвкав член на масив в иначе празна структура> > Това е само пример с gcc 4.5.1 за or32. Виждал съм проблема> и с gcc 4.4 (за unicore32). Така че актуализирайте минимално необходимата версия на gcc до 4.6. [1] https://lore.kernel.org/lkml/20180814170904.GA12768@roeck-us.net/ Разни: - Актуализиране на документация / процес / промени.rst - Премахване и консолидиране на тестови блокове на версиите в compiler-gcc.h за версии под 4.6
Що се отнася до усилията на LLVM Clang за изграждане на основното ядро на Linux x86_64, в момента има известен застой с усилията, особено в проекта LLVMLinux - въпреки че има известна работа по изграждането на ядрото през ARM Linux пространството с Clang.