Архив метки: gcc

Chromium и GCC 4.6.1

Решил от нечего делать установить Хромого. Начал ставить версию 13.0.782.32 - не собирается, насколько понял, из-за того, что не поддерживается GCC 4.6.х для сборки. Вроде как патч уже есть, поэтому начал тянуть с SVN. Было свободно в корне 2,5 гига (да, у меня отделен только /home и /boot), так эта сволочь все захапала под свои сорцы, пришлось все удалять из distfiles, все равно df -h показывает, что свободно 0%. Но все равно, Хромиум собирается, глядишь, соберется.

UPD: Собрался, сучечка. И даже работает. Сейчас перекидываю /usr/portage на другой диск, на котором места побольше. Надо было давно это  сделать, ибо проблема со свободным местом появилась месяца 2 назад. Лень, чо тут скажешь.

Стырено с Gentoo.

Обратно GCC и OpenOffice

Почему-то удалили из опенофиса патч для сборки компилятором версии выше, чем 4.4. Зачем выкинули, так и не понял. Пришлось патч закидывать вручную. Сейчас офис собирается gcc 4.5.2, после удачной сборки пересоберу его с помощью 4.6.0, пробовал собрать Файрфокс новым компилятором - RC_1 или RC_2, точно не помню, нормально собрался, а вот финальная версия запротивилась.

Опять OpenOffice 3.2.1 и GCC 4.5

Таки дошли руки наложить патч на Опенофис. Сначала не мог понять, как его присовокуплять, потом почитал коментсы, и выяснил, что кидать нужно в

"${S}/patches/hotfixes"

где S такой путь - /var/tmp/portage/app-office/openoffice-3.2.1/work/ooo/

Причем просто закинуть его, diff-файлы автоматом подхватываются и патчится все, что нужно. Оставлю свой
калькулятор на вечер и ночь пересобирать Офис и заодно система обновится. Как раз вышло новое Zen-ядро, 2.6.34 которое.
Плюс еще Gimp, xorg-drivers вместе с Файрфоксом.

GCC 4.5.1 и оптимизация

Решил попробовать в деле GCC 4.5.1, с оверлея toolchain, как говорят - производительность повышается, да и программы работают нормально. Сейчас он скомпилится, ну а далее - emerge -e world на всю ночь, а то и следующий день.
UPD:
GCC нормально собрался, осталось переключить профиль на использование нового компилятора, добавить флаги оптимизации, включить Graphite через USE-флаг "graphite" и дать GCC пересобрать самого себя. Соберется  - можно оставлять на ночь emerge -e world 🙂

Теперь такое в CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer -floop-parallelize-all -floop-interchange -floop-block -floop-strip-mine  -mfpmath=387,sse -msse2 --param l2-cache-size=2048". И да, в флаге "-mfpmath=387,sse" именно 387, это не опечатка.
Можно использовать вместо этого флага другой - "-ftree-vectorize", но с ним в сегфолт будет выпадать лиса из-за zlib, так же будут проблемы с glib. По ссылке ниже все достаточно подробно описано.

Описание опций и прочие оптимизации sites.google.com/site/linuxoptimization/home/GCC, а также ссылки на ЛОР и Опеннет - 1, 2, 3, 4, 5.
UPD2:
Ага, разбежался выставлять флаги в make.conf. Нужно было сначала GCC собрать с поддержкой Graphite, а потом уже выставлять флаги, иначе сборка будет валится с жалобами на то, что компилятор не может создать выполняемый файл. Все исправил, пересобрал GCC с графитом, добавил флаги, сейчас опять пересборка GCC и можно будет пересобирать всю систему.
Выкинул эти флаги, с остальными нормально собиралось все " -floop-parallelize-all -floop-interchange -floop-block -floop-strip-mine  -mfpmath=387,sse --param l2-cache-size=2048".