使用 Clang 10 重建 Debian 軟體包資料庫的結果

西爾維斯特·勒德魯 опубликовал 使用 Clang 10 編譯器而不是 GCC 重建 Debian GNU/Linux 軟體包存檔的結果。 在 31014 個軟體包中,有 1400 個(4.5%)無法構建,但透過對 Debian 工具包應用額外的補丁,未構建的軟體包數量減少到 1110 個(3.6%)。 相比之下,在 Clang 8 和 9 中建置時,無法建置的套件數量仍為 4.9%。

建構實驗重點關注了 250 個因以下原因導致崩潰的問題: 錯誤 在 Qmake 和 177 期中, 有關的 隨著庫中各種符號的生成。 透過向 dpkg-gensymbols 添加一個簡單的補丁來將連結時的符號比較錯誤視為警告,並透過替換 qmake 中的 g++ 配置文件,我們能夠修復構建約 290 個包時的崩潰問題。

從其餘的 проблем,導致 Clang 中的建置失敗,最常見的錯誤是由於缺少某些頭檔、型別轉換、文字和標識符之間缺少空格、綁定問題、無法從非 void 函數傳回值,使用指標與null 的有序比較,缺乏定義。

來源: opennet.ru

添加評論