[mingw32 4.4.0] Помогите локализовать багу
От: Tonal- Россия www.promsoft.ru
Дата: 02.09.09 05:43
Оценка:
Собрал Qt 4.5.2 на мингве 4.4.0 с опциями оптимизации
QMAKE_CFLAGS_RELEASE = -O3 -march=pentium3 -mtune=pentium3

Собралось без проблем, но при запуске ассистента и примеров вылетает на инструкциях такого вида:
movaps %xmm0,-0x38(%ebp)

Вылет происходит из за обращения с памяти не выровненной нужным образом.
Причём в коде функций, куда попадают эти инструкции работы с плавоющей точкой нет.

Подобный эффект наблюдается и для dybase собранного с такими же ключами.
Воспроизвести пока не удаётся.
Мне кажется лажает кодогенератор. Причём похоже проявляется это для кода собираемого в dll-ку...

Запостил багу мингве: #2834786 — требуют минимального теста.

Может у кого-нибудь есть какие-то соображения как это отловить?

П.С. Было небольшое обсуждение на prog.org-е и в рассылке мингвы — пока ни к чему не пришли.

П.П.С. При пересборке с флагами
QMAKE_CFLAGS_RELEASE = -O2 -march=pentium3 -mtune=pentium3

Всё работает.
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>

05.09.09 00:41: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: [mingw32 4.4.0] Помогите локализовать багу
От: Аноним  
Дата: 04.09.09 13:56
Оценка:
Здравствуйте, Tonal-, Вы писали:

T>Собрал Qt 4.5.2 на мингве 4.4.0 с опциями оптимизации

T>
T>QMAKE_CFLAGS_RELEASE = -O3 -march=pentium3 -mtune=pentium3
T>

T>Собралось без проблем, но при запуске ассистента и примеров вылетает на инструкциях такого вида:
T>
T>movaps %xmm0,-0x38(%ebp)
T>

T>Вылет происходит из за обращения с памяти не выровненной нужным образом.
T>Причём в коде функций, куда попадают эти инструкции работы с плавоющей точкой нет.

T>Подобный эффект наблюдается и для dybase собранного с такими же ключами.

T>Воспроизвести пока не удаётся.
T>Мне кажется лажает кодогенератор. Причём похоже проявляется это для кода собираемого в dll-ку...

а если что взять и ручками собрать один какой-либо файл из исходников QT в котором происходит лажа?
т.е. для начала добавить в ключи -ggdb, выяснить в какой функции падение, и какие ей аргументы передаются
потом copy-paste этой функции в пустой проект , добавление необходимых объявлений и вызов ее с нужными параметрами?
Re: [mingw32 4.4.0] Помогите локализовать багу
От: zaufi Земля  
Дата: 04.09.09 21:22
Оценка:
Здравствуйте, Tonal-, Вы писали:

T>Собрал Qt 4.5.2 на мингве 4.4.0 с опциями оптимизации

T>
T>QMAKE_CFLAGS_RELEASE = -O3 -march=pentium3 -mtune=pentium3
T>

T>Собралось без проблем, но при запуске ассистента и примеров вылетает на инструкциях такого вида:
доверье компилятору выбирать под какой камень генерить инструкции...
начиная с версии 4.2.х у gcc появился ключик для автоматического определения процессора:
-march=native
а -mtune давно уже лишний ключик...
Re[2]: [mingw32 4.4.0] Помогите локализовать багу
От: Programador  
Дата: 05.09.09 05:28
Оценка:
думал что на Х86 только на производительность влияет Здесь http://www.ixbt.com/cpu/sse3.shtml вообще про выравнивание 32 байта пишут. SSE и П3 это нонсенс, если нужно П3 может явно SSE запретить?
Re[3]: [mingw32 4.4.0] Помогите локализовать багу
От: Tonal- Россия www.promsoft.ru
Дата: 07.09.09 10:51
Оценка:
Здравствуйте, Programador, Вы писали:

P>думал что на Х86 только на производительность влияет Здесь http://www.ixbt.com/cpu/sse3.shtml вообще про выравнивание 32 байта пишут. SSE и П3 это нонсенс, если нужно П3 может явно SSE запретить?

При явном запрете всё работает (-mno-sse).
Всё-таки лажает кодогенератор при включенном sse.
Хотя, похоже это проявляется только для виндовых dll-ек,
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
Re[4]: [mingw32 4.4.0] Помогите локализовать багу
От: Programador  
Дата: 07.09.09 13:34
Оценка:
Здравствуйте, Tonal-, Вы писали:

T>Всё-таки лажает кодогенератор при включенном sse.

Может это не баг а фича? поддержка какогото будущего процессора

T>Хотя, похоже это проявляется только для виндовых dll-ек,

есть в гугле такая тема alignment+dll Вот например нашел http://www.gamedev.net/community/forums/topic.asp?topic_id=482230
Re[5]: [mingw32 4.4.0] Помогите локализовать багу
От: Tonal- Россия www.promsoft.ru
Дата: 08.09.09 05:50
Оценка:
Здравствуйте, Programador, Вы писали:
T>>Всё-таки лажает кодогенератор при включенном sse.
P>Может это не баг а фича? поддержка какогото будущего процессора
Тем не менее, падать не должно.

T>>Хотя, похоже это проявляется только для виндовых dll-ек,

P>есть в гугле такая тема alignment+dll Вот например нашел http://www.gamedev.net/community/forums/topic.asp?topic_id=482230
Ага, похоже. Там ешё несколько подобных ссылок есть.
Мой случай отличается тем, что в исходниках нет вычислений с плавающей точкой — компилятор вставляет эти инструкции похоже посто для оптимизации.
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.