Fedora 40正在考慮在GCC 14之前收緊對C語言的遺留支持
一份為明年的Fedora 40起草的修改建議正在考慮”將Fedora移植到現代C語言”,確保軟件包的C源代碼符合嚴格的C99編譯器。對於2024年的GCC 14編譯器,開源開發者正在考慮默認禁用對傳統C語言結構的支持。LLVM的開發者正在考慮可能比這更早地禁用遺留的C語言結構。
Fedora 40的目標是更主動地發現那些仍然依賴傳統C語言行為的開源項目,以便上游項目能夠及時適應。
新的F40修改方案被總結為:
早在1999年,C語言標準的一個新的修訂版刪除了一些向後兼容的特性。然而,GCC仍然默認接受這些過時的構造。對這些結構體的支持讓程序員感到困惑,並有可能影響GCC實現未來C標準中的功能。預計未來的GCC版本(可能是GCC 14)將默認不支持這些遺留的語言構造。這一變化的目的是為Fedora準備這一過渡。
在GCC 14中正在考慮的變化中,將在Fedora 40中進行的變化包括移除隱式函數聲明,移除隱式int,移除舊式函數聲明,新的bool/true/false關鍵字,改變函數聲明器中()的含義,以及拒絕整數和指針之間的隱式轉換作為錯誤。
對於已經關注C99+兼容性的開源項目和關注編譯器警告的開發者來說,這種用GCC 14+或Fedora Linux早期為”現代C”做準備的推動不會造成任何重大問題。但是對於很少維護的開源包和類似的素材,可能需要進行更新,以便為這些即將到來的編譯器變化做好準備,並在明年的Fedora 40上更徹底地構建。
這個修改建議仍然需要經過Fedora工程和指導委員會(FESCo)的審核。除了修改建議的Wiki頁面,在Fedora開發列表中也有關於這個Fedora 40修改建議的積極討論。