Linux 4.19 kodola izveidei tagad ir nepieciešama GCC 4.6, jo vecākas arhitektūras kompilācijas nav izdevušās

Linux-Unix / Linux 4.19 kodola izveidei tagad ir nepieciešama GCC 4.6, jo vecākas arhitektūras kompilācijas nav izdevušās 1 minūte lasīta

Linux kodola organizācija, Inc.



Linux izstrādātājiem, kas strādā pie kodola, izlaižamais Linux 4.19 kodols paaugstina GCC minimālo versiju, kas nepieciešama kodola veidošanai. Oficiālajā Linux kodolā GCC 3.2 ir norādīts kā minimums kodola veidošanai nepieciešamā kompilatora versija, bet Linux kodols 4.19 to paaugstina līdz GCC 4.6.

Tas ir tāpēc, ka dažādas vecāku GCC4 laidienu arhitektūras nespēj tīri apkopot Linux kodolu, tāpēc GCC 4.6 tiek iestatīts kā minimums. Kodols arī nepārprotami pārbaudīs GCC 4.6.0 vai jaunāku versiju, un, ja tas netiks atrasts, kompilators kļūdīsies.



Tas ir izdevīgi arī kodola kodam, jo ​​kodola izstrādātāji varēja noņemt vairākus desmitus koda rindiņu vecākiem GCC risinājumiem, kuru mērķis bija kompilatora kļūdas un uzvedības atšķirības vecākajos kompilatoru laidienos.



Šīs izmaiņas tika apvienotas tikai šodien, izmantojot Git commitement - un GCC 4.6.0 tika izlaists 2011. gadā, tāpēc mēs redzēsim, vai GCC ir kādi atjauninājumi arī nākotnē.



Šī atjauninājuma changelog / saistība galvenokārt norāda, ka izmaiņas ir pilnībā saistītas ar vecāku GCC kompilatora versiju neizveidošanu kodolā dažādās arhitektūrās, kā norādīts zemāk:

 Dažādas arhitektūras neizdodas pareizi izveidot, izmantojot vecākas gcc kompilatora versijas. Guenter Roeck piemērs pavedienā [1]:>> Failā, kas iekļauts no ./include/linux/mm.h:17:0,> from ./include/linux/pid_namespace.h:7,> from ./include /linux/ptrace.h:10,> no arch / openrisc / kernel / asm-offsets.c: 32:> ./include/linux/mm_types.h:497:16: kļūda: elastīgs masīva dalībnieks citādi tukšā struktūrā> > Šis ir tikai piemērs ar gcc 4.5.1 or32. Esmu redzējis arī problēmu> ar gcc 4.4 (par unicore32). Tāpēc atjauniniet minimālo nepieciešamo gcc versiju uz 4.6. [1] https://lore.kernel.org/lkml/20180814170904.GA12768@roeck-us.net/ Dažādi: - Atjaunināt dokumentāciju / process / changes.rst - noņemt un apvienot versijas testa blokus versijā, kas ir zemāka par 4.6, kompilatorā-gcc.h.

Kas attiecas uz LLVM Clang centieniem izveidot Linux x86_64 kodola kodolu, pašlaik centieni ir nedaudz apstājušies, it īpaši LLVMLinux projektā - lai gan ir bijis zināms darbs kodola izveidē, izmantojot ARM Linux telpu ar Clang.