Logo no.nowadaytechnol.com
Linux 2023

Linux 4.19 Kernel Krever Nå At GCC 4.6 Bygges På Grunn Av Kompilering Av Feil På Eldre Arkitektur

Linux 4.19 Kernel Krever Nå At GCC 4.6 Bygges På Grunn Av Kompilering Av Feil På Eldre Arkitektur
Linux 4.19 Kernel Krever Nå At GCC 4.6 Bygges På Grunn Av Kompilering Av Feil På Eldre Arkitektur

Video: Linux 4.19 Kernel Krever Nå At GCC 4.6 Bygges På Grunn Av Kompilering Av Feil På Eldre Arkitektur

Video: Linux 4.19 Kernel Krever Nå At GCC 4.6 Bygges På Grunn Av Kompilering Av Feil På Eldre Arkitektur
Video: Как скомпилировать и запустить программу C с помощью GCC в Ubuntu 18.04 LTS (Linux) / Ubuntu 20.04 LTS 2023, Juni
Anonim
Image
Image

For Linux-utviklere som jobber med kjernen, øker Linux 4.19-kjernen som skal frigjøres GCC-minimumsversjonen som kreves for kjernebygging. Den offisielle Linux-kjernen har oppført GCC 3.2 som den minste versjonen av kompilatoren som kreves for kjernebygging, men Linux-kjernen 4.19 øker den til GCC 4.6.

Dette er fordi ulike arkitekturer på eldre GCC4-utgivelser ikke har klart å kompilere Linux-kjernen, og derfor blir GCC 4.6 satt som et minimum. Kjernen vil også eksplisitt se etter GCC 4.6.0 eller nyere, og hvis den ikke blir funnet, vil kompilatoren feile.

Dette er også gunstig for kjernekoden, ettersom kjernedevsene var i stand til å fjerne flere dusin kodelinjer for eldre GCC-løsninger som var rettet mot kompileringsfeil og atferdsforskjeller i de eldre kompilatorutgivelsene.

Denne endringen ble slått sammen tidligere i dag viGit commit - og GCC 4.6.0 ble utgitt i 2011, så vi får se om GCC også har noen oppdateringer i fremtiden.

Changelog / commit for denne oppdateringen spesifiserer i utgangspunktet at endringen stort sett skyldes at eldre versjoner av GCC-kompilatoren ikke klarer å bygge kjernen under forskjellige arkitekturer, som nevnt nedenfor:

Ulike arkitekturer klarer ikke å bygge riktig med eldre versjoner av gcc-kompilatoren. Et eksempel fra Guenter Roeck i tråd [1]:>> I filen inkludert fra./include/linux/mm.h:17:0,> fra./include/linux/pid_namespace.h:7,> fra./include /linux/ptrace.h:10,> fra arch / openrisc / kernel / asm-offsets.c: 32:>./include/linux/mm_types.h:497:16: feil: fleksibelt array-medlem i ellers tom struktur> > Dette er bare et eksempel med gcc 4.5.1 for or32. Jeg har sett problemet> med gcc 4.4 (for unicore32) også. Så oppdater den minste påkrevde versjonen av gcc til 4.6. [1] https://lore.kernel.org/lkml/20180814170904. [email protected]/ Miscellanea: - Oppdater dokumentasjon / prosess / endringer.rst - Fjern og konsolider versjonstestblokker i compiler-gcc.h for versjoner lavere enn 4.

Så langt som LLVM Clang-anstrengelser for å bygge hovedlinjen Linux x86_64-kjernen, er det for tiden noe stall med innsatsen, spesielt i LLVMLinux-prosjektet - selv om det har vært noe arbeid med å bygge kjernen gjennom ARM Linux-rommet med Clang.

Populær etter emne