Wyniki przebudowy bazy danych pakietów Debiana przy użyciu Clang 10

Sylwester Ledru opublikowany wynik przebudowy archiwum pakietów Debian GNU/Linux przy użyciu kompilatora Clang 10 zamiast GCC. Z 31014 1400 pakietów 4.5 (1110%) nie udało się zbudować, ale dzięki zastosowaniu dodatkowej łatki do zestawu narzędzi Debiana liczba niezbudowanych pakietów została zmniejszona do 3.6 (8%). Dla porównania, budując w Clang 9 i 4.9, liczba pakietów, których nie udało się zbudować, pozostała na poziomie XNUMX%.

Eksperyment kompilacji skupiał się na 250 problemach spowodowanych awariami z powodu Błędy w Qmake i 177 numerach, związane z z generowaniem różnych symboli w bibliotekach. Dodając prostą łatkę do dpkg-gensymbols, która traktuje błąd porównania symboli podczas łączenia jako ostrzeżenie, i zastępując pliki konfiguracyjne g++ w qmake, byliśmy w stanie naprawić błędy w budowaniu około 290 pakietów.

Od reszty problemy, co prowadzi do niepowodzenia kompilacji w Clang, najczęstsze błędy wynikają z braku niektórych plików nagłówkowych, rzutowania typu, brakującej spacji pomiędzy literałem a identyfikatorem, problemów z powiązaniem, braku zwrotu wartości z funkcji niepustej , przy użyciu uporządkowanego porównania wskaźnika z null , brak definicji.

Źródło: opennet.ru

Dodaj komentarz