Logo hr.nowadaytechnol.com

Kernel Linux 4.19 Sada Zahtijeva Izradu GCC 4.6 Zbog Kompajliranja Kvarova Na Starijoj Arhitekturi

Kernel Linux 4.19 Sada Zahtijeva Izradu GCC 4.6 Zbog Kompajliranja Kvarova Na Starijoj Arhitekturi
Kernel Linux 4.19 Sada Zahtijeva Izradu GCC 4.6 Zbog Kompajliranja Kvarova Na Starijoj Arhitekturi

Video: Kernel Linux 4.19 Sada Zahtijeva Izradu GCC 4.6 Zbog Kompajliranja Kvarova Na Starijoj Arhitekturi

Video: Kernel Linux 4.19 Sada Zahtijeva Izradu GCC 4.6 Zbog Kompajliranja Kvarova Na Starijoj Arhitekturi
Video: Install GCC In Linux Mint 20 - Check Version 2024, Ožujak
Anonim
Image
Image

Za programere Linuxa koji rade na jezgri, izdana jezgra Linuxa 4.19 podiže GCC minimalnu verziju potrebnu za izgradnju jezgre. Službeni Linux kernel je naveo GCC 3.2 kao minimalnu verziju kompajlera potrebnu za izgradnju kernela, ali Linux kernel 4.19 podiže je na GCC 4.6.

To je zato što razne arhitekture na starijim izdanjima GCC4 nisu uspjele čisto sastaviti Linux jezgru, stoga se GCC 4.6 postavlja kao minimum. Kernel će također izričito provjeriti postoji li GCC 4.6.0 ili noviji, a ako nije pronađen, kompajler će pogrešiti.

To je također korisno za kôd jezgre, jer su programeri jezgre uspjeli ukloniti nekoliko desetaka redaka koda za starija zaobilaženja GCC-a koja su bila usmjerena na bugove kompajlera i razlike u ponašanju u starijim izdanjima kompajlera.

Ova je promjena spojena malo prije danas, viGit commit - a GCC 4.6.0 je objavljen 2011. godine, pa ćemo vidjeti ima li GCC i kakvih ažuriranja u budućnosti.

Dnevnik promjena / predaja za ovo ažuriranje u osnovi određuje da je promjena uglavnom u potpunosti posljedica toga što starije verzije GCC kompajlera nisu uspjele izgraditi kernel pod raznim arhitekturama, kao što je navedeno u nastavku:

Razne se arhitekture ne uspijevaju pravilno izgraditi sa starijim verzijama kompajlera gcc. Primjer Guenter Roecka u niti [1]:>> U datoteci koja je uključena u./include/linux/mm.h:17-0,> iz./include/linux/pid_namespace.h:7,> iz./include /linux/ptrace.h:10,> iz arch / openrisc / kernel / asm-offsets.c: 32:>./include/linux/mm_types.h:497:16: pogreška: fleksibilni član niza u inače praznoj strukturi> > Ovo je samo primjer s gcc 4.5.1 za or32. Vidio sam problem> i sa gcc 4.4 (za unicore32). Stoga ažurirajte minimalno potrebnu verziju gcc-a na 4.6. [1] https://lore.kernel.org/lkml/20180814170904. [email protected]/ Miscelanea: - Ažuriranje dokumentacije / procesa / promjene.rst - Uklonite i konsolidirajte blokove za testiranje verzija u compiler-gcc.h za verzije niže od 4, Što se tiče napora LLVM Clang za izgradnju glavne jezgre Linux x86_64, trenutno postoji zastoj u naporima, posebno u projektu LLVMLinux - iako je bilo određenog posla u izgradnji jezgre kroz ARM Linux prostor s Clangom.

Preporučeni: