Иксовые приложения, собранные GCC 4.4 [SOLVED]
Последнее время наблюдаю странные проблемы. Установил чистую систему, и все бы ничего, да только начали нарисовываться проблемы там, где их никогда не было. Этот факт, а также куча нарицаний в форумах, конференциях и на стенах подъездов, склоняют меня к мысли, что проблема в GCC 4.4 и/или флагах оптимизации.
Экспериментальным путем выяснил, что проблема проявляется когда программа выдает какой-то выхлоп в stdout/stderr. Ситуация: чистый, только что созданный homedir. Из xfce пытаюсь запустить Terminal. Давлю в меню Terminal, на меня ругаются мол "blah-blah... Input/output error". Ну с этим разбираться неохота, выясняется что это мне exo-open --launch TerminalEmulator
ругается. Опять же в меню нахожу нормальный честный XFCE Terminal. Запуск - тишина.
Пытаюсь решить дальше. Запускаю из консоли, раз уж терминал в исках не пускается. Его же DISPLAY=:0.0 Terminal
. И получаю всяческие варнинги в консоль, мол не могу загрузить настройки. Но вроде не вываливался и не сегфолтился. Переключаюсь в иксы (Alt+F7), и, о чудо!, вижу терминал. После изменения настроек (любых, главное создать конфиг) и их сохранения - терминал начинает запускаться без выхлопов в консоль. И даже запускается стандартным для XFCE способом.
Точно такие же проблемы со всеми остальными программами. Нормально запускаются из терминала (теперь уже иксового, их-ха!), но до тех пор пока есть ругань - из меню не запускаются (равно как и с хоткеев).
Подытожу. Такой вот 2х-недельный инвестигейшн показал, что почему-то система стала очинно строгой, один варнинг - и программа не жилец. Сейчас практически уверен что проблемы с переходом на GCC4.4, но как их решить - не знаю. Мож какие флаги отключить? У кого какие есть соображения по данному поводу?
ЗЫ.
1. Да, будучи дерзким экспериментатором, я компилирую систему с -O3, и не имел прежде проблем.
2. Господа, утверждающие что у вас все работает с GCC4.4, я вам верю, у самого работало. Не сочтите за труд, попробуйте вопроизвести ситуацию с варнигами (например, удалите/переименуйте конфиг Терминала), и отпишитесь о результатах.
- Для комментирования войдите или зарегистрируйтесь
Аналогично было у меня.
Аналогично было у меня. http://www.gentoo.ru/node/16289#comment-116211 Терминал правда работал сразу,но некоторые программы -только из терминала.Варнингов не было.
Для себя я решил проблему очень просто-откатом на 4.3.Фтопку такой чудо-компилятор(помимо этого ещё пара багов была из-за него-с Файерфоксом и darcs).
вы бы лучше emerge --info
вы бы лучше emerge --info выставили и вас бы поправили и сказали в чем проблема, а так вы просите людей, у которых нет варнингов сделать себе варнинги и проверить ваши косвенные догадки...
xfce не использую, но после пересборки мира с CFLAGS="-march=native -mtune=native -O3 -pipe" у меня иксы вообще не запускались и некоторые важные сервисы типа dbus и hald валились с ошибками... полагаю, что надо посмотреть, что теперь включает в себя -О3... наверняка что-нить новое туда впихали и оно глючит...
про ggc:4.4 тут есть тема, в которой народ пишет, что отвалилось... думаю вам стоит туда отписаться ;-)
Вчера начитался форумов и
Вчера начитался форумов и решил скомпилировать glib c
-O2
. Все еще не пощупал, только добрался до дому, но то что не работало, чудесным образом стало работать. Будем считать, что решено. Может кому поможет....
Можно ли сказать, что ваши слова таковы: "при -O2 c gcc-4.4 всё нормально"?
А то ведь многие не дочитают, и подумают "фу, gcc-4.4 сломан, не буду переходить"
Это подпись, которую невозможно истолковать неправильно
Думаю да. Второй день полет
Думаю да. Второй день полет нормальный. Чего и всем желаю.
ЗЫ
Насколько я понял, проблемы возникают у людей при включении флага оптимизации
-ftree-vectorize
, включенного в-O3
. Остальные вроде как не ломают ничего.Много времени уже прошло с
Много времени уже прошло с тех пор, несколько месяцев. :)
Уже вышла версия gcc-4.4.2. Что-нибудь изменилось? Быть может, уже безопасно собирать с -O3?
И вот ещё что, с -Os собирается нормально? Для меня критично сие на нетбуке. :)
меня всегда удивляла тяга
меня всегда удивляла тяга некоторых к O3? ну к чему оно вам на случайном коде? если так хочется поиграться то посотмрите чем -O2 отличается от -O3 на конкретной версии GCC и добавться в CFLAGS интересные флаги.
hint: gcc -c -Q -O3 --help=optimizer