Результаты пересборки пакетной базы 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 функции, использование упорядоченного сравнения указателя с нулём, отсутствие определений.

Источник: opennet.ru

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