|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valeriy E. Ushakov 2:5020/400 06 Mar 2007 08:00:17 To : Alexander Sychenko Subject : Re: Установить нужный компилятор GCC -------------------------------------------------------------------------------- Alexander Sychenko <mitt@zaural.ru> wrote: > > систему собирать 4-м gcc нельзя > > Почему? В чём проявляются "грабли"? В gcc4 много новых, довольно агрессивных, оптимизаций, более строгая интерпретация стандарта C и т.п. Для начала оно будет ругаться на кучу мест, которые gcc3 воспринимал спокойно: struct foo ary[] без видимого определения struct foo (gcc3 ругался только если попытаться сделать что-то, что требует размера), aliasing, и т.д. Hо это все ловится на этапе компиляции. Потом оно начнет исподтишка двигать inline asm в самые неожиданные места, потому что constraints были недостаточно точными, и более умный оптимизатор теперь считает себя вправе. Потом, если я правильно помню, оно втихаря элиминирует проверки на wrap-around типа if (foo + BAR < 0), потому что стандарт вообще говоря это в каких-то случаях позволяет (как undefined behaviour). Потом выяснится, что нетривиальное количество пакетов вытворяют с C такое, что все вышеперечисленные проблемы в /usr/src устыженно потупившись отдыхают в сторонке. Rinse, repeat. В принципе, переехать на gcc4 не составляет *такого уж* большого труда. В NetBSD gcc4 импортировали в качестве опции (т.е. можно было собрать мир с HAVE_GCC=4 и фикисть проблемы) около года назад, в апреле, а где-то к концу июня большинство портов переехало на gcc4 в качестве дефолтного системного компилятора, ну и какие-то остаточные проблемы дофикшивались уже потом. SY, Uwe -- uwe@ptc.spbu.ru | Zu Grunde kommen http://snark.ptc.spbu.ru/~uwe/ | Ist zu Grunde gehen --- ifmail v.2.15dev5.3 * Origin: St.Petersburg University (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/65786db8c02a.html, оценка из 5, голосов 10
|