A Linux Kernelbe küldött új patchek engedélyezni fogják a Microsoft C kiterjesztéseket

Két patch került be a Linux kernel build rendszerének fejlesztési ágba a kbuild-next-be, amelyek lehetővé teszik az -fms-extensions fordító argumentum használatát a Linux kernel fordításakor a GCC és az LLVM/Clang esetében. Mivel ezek a patchek a kbuild-next-ben vannak, valószínűleg bekerülnek a Linux 6.19-es kernel egyesítési időablakában a következő hónapban, feltéve, hogyha nem érkezik utolsó pillanatban kifogás a változás ellen. Az -fms-extensions fordító opció, amelyet mind a GNU Compiler Collection, mind az LLVM/Clang támogat, engedélyezi bizonyos nem szabványos C/C++ konstrukciók használatát, amelyek a Microsoft fejlécekben fordulnak elő, és amelyeket a Microsoft Visual C/C++ compiler is kezel.

A Linux Kernelbe küldött új patchek engedélyezni fogják a Microsoft C kiterjesztéseket

A változás háttere és indoklása

Évek óta érkeznek javaslatok a Linux kernel feltétel nélküli -fms-extensions támogatására, ám ezek mindeddig megrekedtek a kernel levelezőlistáján. Most viszont ezek a friss patchek arra utalnak, hogy a funkció mégis megvalósulhat a 6.19-es verzió egyesítési időablakában, amennyiben nem vetnek fel ellenvetéseket kulcsfontosságú fejlesztők vagy maga Linus Torvalds. Rasmus Villemoes a Kbuild: enable -fms-extensions című javításában arra mutat rá, hogy ez elegánsabb kódot eredményezhet, míg mások korábban hangsúlyozták, hogy akár stack-méretet is csökkenthet, és összességében javíthatja a kernel programozási hatékonyságát.

Az opció bekapcsolása vonzóbb megoldásokat tenne elérhetővé, de eddig mindig elfogadhatónak tartották az alternatívákat, így nem tűnt indokoltnak egy újabb fordítókapcsoló hozzáadása. Ez valójában egy ördögi kör, hiszen ha egyszer bevezetik, akkor bármely jövőbeli alkalmazásban használhatóvá válik, anélkül hogy minden alkalommal külön bizonyítani kellene létjogosultságát.

Két patch formájában kerül bevezetésre az új opció

Az első javítás globálisan aktiválja a -fms-extensions opciót, míg a második, a kbuild: Add ‘-fms-extensions’ to areas with dedicated CFLAGS elnevezésű, biztosítja, hogy ez a kapcsoló eljusson azokhoz a CPU-architektúrákhoz is, amelyek saját CFLAGS paramétereket alkalmaznak a központi KBUILD_CFLAGS helyett. Linus Torvalds a korábbi levelezőlistás diskurzusok során eddig még nem fejezte ki ellenérzéseit az -fms-extensions bevezetésével kapcsolatosan, ami biztató előjel a módosítás befogadására, azonban óvatosságra intett. Az opció használatba vétele ugyan valóban lehetővé teszi elegánsabb C-kód létrehozását, egyesek ezt problémásnak tarthatják, hiszen Microsoft féle C-stílusú elemeket hoz be a főágbeli Linux kernel fejlesztésébe, ami ütközhet a kernel hagyományos, szabványokat szigorúan követő filozófiájával.

Gábor a Pingvinbázis alapítója és főszerkesztője, több mint 20 éves tapasztalattal rendelkezik a Linux rendszerek és az Open Source szoftverek területén. Jártas a Python, és a PHP nyelvben, valamint a BASH scriptelésben is.