| Summary: | Compilation breaks with internal compiler error | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | partizan <partizan> | ||||
| Component: | i386-mingw32msvc-gcc | Assignee: | Sir Raorn <raorn> | ||||
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
| Severity: | normal | ||||||
| Priority: | P2 | CC: | lav, sin | ||||
| Version: | unstable | ||||||
| Hardware: | all | ||||||
| OS: | Linux | ||||||
| Attachments: |
|
||||||
|
Description
partizan
2005-03-13 09:57:09 MSK
Created attachment 769 [details]
Preprocessed file
$ bzcat Download/ccT97In8.out.bz2 > datetime.cpp $ i386-mingw32msvc-g++ -c -o datetime.o datetime.cpp $ _ Huh? Также работает с -g. С -ggdb3 выдаёт: /home/raorn/tmp/ccxxfXpH.s: Assembler messages: /home/raorn/tmp/ccxxfXpH.s:21643: Error: unknown pseudo-op: `.secrel32' /home/raorn/tmp/ccxxfXpH.s:21665: Error: unknown pseudo-op: `.secrel32' ... мнооого, мнооого таких ошибок ... /home/raorn/tmp/ccxxfXpH.s:61710: Error: unknown pseudo-op: `.secrel32' /home/raorn/tmp/ccxxfXpH.s:62316: Error: unknown pseudo-op: `.secrel32' zsh: 12581 exit 1 i386-mingw32msvc-g++ -c -ggdb3 -o datetime.o datetime.cpp (In reply to comment #3) Это preprocessed file, поэтому надо его собирать с помощью /usr/libexec/gcc/i386-mingw32msvc/3.4.3/cc1plus При сборке с флагом -O2, -O1 или -O выдаётся показанная выше ошибка, при сборке с -Os, -O3 или без флагов ошибки нет. Загадочно это всё... Обновил gcc до 3.4.3-alt6, на тестовом файле всё ещё
падает... i386-mingw32msvc-wxWidgets-2.5.4-alt1 пересобрался. Смотрим флаги:
$ for fl in -fno-defer-pop -fno-merge-constants -fno-thread-jumps
-fno-loop-optimize -fno-crossjumping -fno-if-conversion -fno-if-conversion2
-fno-delayed-branch -fno-guess-branch-probability -fno-cprop-registers; do
/usr/libexec/gcc/i386-mingw32msvc/3.4.3/cc1plus -o datetime.o -O1 $fl
datetime.cpp >/dev/null 2>&1 && echo "OK $fl" || echo "Not OK $fl"; done
Not OK -fno-defer-pop
Not OK -fno-merge-constants
Not OK -fno-thread-jumps
Not OK -fno-loop-optimize
Not OK -fno-crossjumping
Not OK -fno-if-conversion
Not OK -fno-if-conversion2
Not OK -fno-delayed-branch
OK -fno-guess-branch-probability
Not OK -fno-cprop-registers
-fno-guess-branch-probability должен помочь. (с -O2 та же самая картина)
Смотрим что делает -O3:
$ for fl in -finline-functions -frename-registers; do
/usr/libexec/gcc/i386-mingw32msvc/3.4.3/cc1plus -o datetime.o -O2 $fl
datetime.cpp >/dev/null 2>&1 && echo "OK $fl" || echo "Not OK $fl"; done
OK
-finline-functions
Not OK -frename-registers
Собсно вот. Будем искать...
Кстати: http://sourceforge.net/mailarchive/forum.php?thread_id=6461999&forum_id=5121 P.S. И где же патчи? Нашёл. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17406 В Сизиф ушёл -alt3. Не ICE'ится. |