Название: [Qt 4.5.2] Сборка с оптимизацией Отправлено: Tonal от Август 11, 2009, 11:58 Дошли руки - собрал Qt 4.5.2 на mingw32 gcc 4.4.0
Чтоб релиз работал максимально шустро ключи оптимизации выставил следующие: Код: QMAKE_CFLAGS_RELEASE = -O3 -march=pentium3 -mtune=pentium3 Код Всё собралось без ошибок, но работать оно отказалось. :( assistant.exe сразу вылетал. assistant_adp.exe при попытке перейти по любой ссылке. Вылет всегда в одном и том же месте QtCode4.dll Запуск под assistant-а под gdb показал, что грохается в функции inflate_table ((inftrees.c) вызываемой из inflate (inflate.c). Это библиотека zlib 1.2.3 из каталога qt4/src/3rdparty/zlib. В gdb место вылета дезасемблируется так: Код
После смены ключа -О3 на -О2 и перекомпиляции QtCode4.dll ассистенты таки запустились. Но вылеты продолжились в разных местах QtGui4.dll, с похожими в асме местами. Мне кажется, что лажает кодогенератор gcc, тем более, что похожие баги есть: #2834267 (http://sourceforge.net/tracker/?func=detail&atid=102435&aid=2834267&group_id=2435) Соответственно написал в рассылку и зарегистрировал багу: #2834786 (http://sourceforge.net/tracker/?func=detail&atid=102435&aid=2834786&group_id=2435). Ответили, что нужен минимальный воспроизводимый кусок кода. :-\ Пересобрал zlib с указанными опциями, набросал тестик - не падает... И вот тут я затупил... Мож кто придумает как изменить пример или свой напишет? Можно, конечно написать троллям, но у них пока официально не поддерживается mingw 4.4.0 да и опции оптимизации не стандартные - с большой вероятностью отфудболят. :( П.С. Машины ниже pentium3 пока не интересуют. :) Название: Re: [Qt 4.5.2] Сборка с оптимизацией Отправлено: SABROG от Август 12, 2009, 21:17 Пробовал я тоже включать SSE оптимизацию. Girish мне тут (http://lists.trolltech.com/qt4-preview-feedback/2007-03/thread00134-0.html)ответил в 2007 году.
Скорее всего дело даже не в версии gcc. Может быть zlib использует вставки асма? --- Вроде не использует. Значит ключи march=pentium3 -mtune=pentium3 включают MMX/SSE оптимизацию. Название: Re: [Qt 4.5.2] Сборка с оптимизацией Отправлено: Alex Shabanov от Август 20, 2009, 12:00 попробуй посмотреть здесь - http://biodisplay.tyrell.hu/implementation/software-engineering/a-cross-platfrom-c-development-environment/compiling-qt-435-with-gcc-4-on-windows/
если не поможет - пришли callstack, скорее всего кодогенератор слажал в с++ коде, т.е. в вызывающем функции zlib-а Название: Re: [Qt 4.5.2] Сборка с оптимизацией Отправлено: Tonal от Август 20, 2009, 13:58 Этот пост совсем не о том - 4.5.2 собирается последним mingw отлично. :)
А то что слажал кодогенератор - тоже вроде ясно: Приведённая инструкция вызывается для адреса варавненного на 8 байт а ожидает выравнивания на 16. Причём в этом коде не используются операции с плавающей точкой, т.е. инструкция чисто для оптимизации инициализации локальных переменных. Там в -О3 много грабель с этими инструкциями. Например вот (https://sourceforge.net/tracker/?func=detail&atid=102435&aid=2838712&group_id=2435). Название: Re: [Qt 4.5.2] Сборка с оптимизацией Отправлено: Tonal от Август 25, 2009, 06:32 Написал багрепорт.
Ответ вполне ожидаем: Цитировать Using GCC 4.4 is not supported on MinGW by Qt Software Development Frameworks : http://doc.trolltech.com/4.6-snapshot/supported-platforms.html Try * using GCC 3.4.2 * using -O2 instead of -O3 |