Результати перескладання пакетної бази 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

Додати коментар або відгук