Bug 3165

Summary: КОМПАС 10 не запускается на сборке Wine через script
Product: WINE@Etersoft Reporter: Vitaly Lipatov <lav>
Component: Запуск ; Отладка ; ИсключенияAssignee: Anton Rudnev <mibori>
Status: CLOSED WORKSFORME QA Contact: Денис Баранов <baraka>
Severity: minor    
Priority: P2 CC: kondratyuk, vitperov
Version: 1.0.9   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 3000    

Description Vitaly Lipatov 2008-12-26 01:35:32 MSK
Если собрать eterhack скриптом wine_build.sh из etersoft/maintain,
он падает при запуске с исключением (окошко Runtime error).
Comment 1 Anton Rudnev 2008-12-26 15:48:50 MSK
Результаты экспериментов на заново склонированном и собраном через wine_build.sh репозитории

1. На евклиде локально из собственной home через winexp запускается.
2. На евклиде локально из собственной home через wwxp запускается.


3. На целларе swine kompas/kompas10lt через winexp запускается
4. На целларе swine kompas/kompas10lt через wwxp рушится с исключением Runtime error. Но если сделать так, чтобы по умолчанию не открывалась модель (т. е. не использовался gl), то программа работает, до тех пор пока эту модель не откроешь.

5. Запустить локально на евклиде бутылку с целлара не удалось.

Из этого всего напрашивается только один вывод, когда мы запускаем с целлара через wwxp, используется целларовский gl, и он, как и следует ожидать, падает.
Comment 2 Anton Rudnev 2008-12-26 16:08:05 MSK
Если через WINEDISABLEGEH=yes отрубить глобальный обработчик исключений, устанавливаемый компасом, то в случае запуска wwxp из удаленной бутылки на целларе при открытии модели можем наблюдать бектрейс:

=>0 0x7b845528 RaiseException+0x84(code=3765269347, flags=1, nbargs=3, args=0x32e744) [/home/mibori/Projects/wine/dlls/kernel32/except.c:89] in kernel32 (0x0032e720)
  1 0x7eb4b2b5 _CxxThrowException+0x3c(object=0x32e83c, type=0x7eb79df8) [/home/mibori/Projects/wine/dlls/msvcrt/cppexcept.c:464] in msvcrt (0x0032e750)
  2 0x7eb49c5c MSVCRT___RTDynamicCast+0x255(cppobj=0x277c674, unknown=0, src=0x30e486c, dst=0x30e47e8, do_throw=0) [/home/mibori/Projects/wine/dlls/msvcrt/cpp.c:1170] in msvcrt (0x0032e880)
  3 0x03075bb8 in k3dappa (+0x5bb8) (0x025abaa0)
  4 0x00000001 (0x030b4dfc)
  5 0x03077f30 in k3dappa (+0x7f30) (0x03077e00)
  6 0x9090c303 (0x0b4d58b8)
  7 0x00000000 (0x00000000)

и сообщение Runtime Error:R6025

об ошибке R6025 написано по ссылке http://support.microsoft.com/kb/125749
Comment 3 Vitaly Lipatov 2008-12-26 16:13:07 MSK
Я пересобрал репозиторий, всё равно падает (wwxp).
При запуске через winexp не падает.
Вхожу в бутылку через swine -l
Comment 4 Anton Rudnev 2008-12-26 17:02:55 MSK
поведение запуска в удаленной бутыле евклида соответствует поведению, когда мы запускаем компас на целларе локально.

Запускаем локально на целларе:
   если winexp то все нормально
   если wwxp, то падает, когда открываем деталь (с тем же бэктрейсом при отключенном глобальном обработчике, что и сидя на евклиде, в удаленной бутылке на целларе)

из этого ясно только то, что собранный репозиторий, при использовании gl на целларе вызывает падение, а на евклиде не вызывает.

для конкретно собранного репозитория пока очевидна только разница работы на разных машинах
Comment 5 Anton Rudnev 2008-12-26 20:53:40 MSK
стоит наверное еще покапаться с параметрами компиляции
вот пример компиляция rpcrt4

для pub/Etersoft/WINE@Etersoft/1.0.9-eter39/WINEALTLinux/Sisiphus/logv
i586-alt-linux-gcc -c -I. -I. -I../../include -I../../include  
    -D__WINESRC__ 
    -D_RPCRT4_ 
    -DCOM_NO_WINDOWS_H 
    -DMSWMSG 
    -D_REENTRANT 
    -fPIC 
    -Wall 
    -pipe 
    -fno-strict-aliasing 
    -Wdeclaration-after-statement 
    -Wwrite-strings 
    -Wtype-limits 
    -Wpointer-arith  
    -pipe 
    -Wall 
    -O2 
    -march=i586 
    -mtune=i686  
    -o 
    rpcrt4_main.o rpcrt4_main.c


для моего локального репозитория
gcc -c -I. -I. -I../../include -I../../include  
    -D__WINESRC__
    -D_RPCRT4_ 
    -DCOM_NO_WINDOWS_H 
    -DMSWMSG -D_REENTRANT 
    -fPIC 
    -Wall 
    -pipe 
    -fno-strict-aliasing 
    -Wdeclaration-after-statement 
    -Wwrite-strings 
    -Wtype-limits 
    -Wpointer-arith  
    -D_FORTIFY_SOURCE=2 
    -g  
    -O0  
    -o 
    rpcrt4_main.o rpcrt4_main.c

по крайней мере число в параметре -O не влияет на ситуацию.
также не влияет на ситуацию полное удаление строчки 
export CFLAGS="-D_FORTIFY_SOURCE=2 -g $PGFLAGS -O0"
из скрипта.
Comment 6 Anton Rudnev 2008-12-26 21:55:34 MSK
если добавить 
    -O2 
    -march=i586 
    -mtune=i686

результат не меняется.
Comment 7 Vitaly Lipatov 2009-05-19 18:17:24 MSD
Проблема не воспроизводится.