28.09.2020

Результаты пересборки пакетной базы Debian при помощи Clang 10


Сильвестр Ледрю (Sylvestre Ledru) опубликовал результат пересборки архива пакетов Debian GNU/Linux с использованием компилятора Clang 10 вместо GCC. Из 31014 пакетов не удалось собрать 1400 (4.5%), но применив к инструментарию Debian дополнительный патч число несобранных пакетов удалось уменьшить до 1110 (3.6%). Для сравнения при сборке в Clang 8 и 9 число пакетов, которые не удалось собрать, держалось на уровне 4.9%.

При проведении эксперимента со сборкой внимание было сосредоточено на 250 проблемах, вызванных сбоем из-за ошибки в Qmake, и 177 проблемах, связанных с генерацией различных символов в библиотеках. Добавив простой патч к dpkg-gensymbols, обрабатывающий ошибку сравнения символов при связывании как предупреждение, и заменив в qmake конфигурационные файлы g++ удалось устранить сбои при сборке примерно 290 пакетов.

Из остальных проблемам, приводящих к сбою при сборке в Clang, наиболее часто встречаются ошибки из-за отсутствия некоторых заголовочных файлов, приведения типов, отсутствия пробела между литералом и идентификатором, проблемы со связыванием, возврат не-void функцией какого-то значения, использование сравнения указателя с нулём, отсутствие определений.

Источник: https://www.opennet.ru/opennews/art.shtml?num=53081

Добавить комментарий