Bug 5516

Summary: Ошибка при сборке =>w@e-pub-1.0.12-eter2
Product: WINE@Etersoft Reporter: Казанков Александр <johnrdoe63>
Component: ДистрибутивAssignee: Илья Шпигорь <shpigor>
Status: CLOSED FIXED QA Contact: Vitaly Lipatov <lav>
Severity: major    
Priority: P4 CC: boris, lav
Version: 1.0.12   
Target Milestone: ---   
Hardware: PC   
OS: Gentoo   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 5395    
Attachments: Окружение
Лог сборки

Description Казанков Александр 2010-04-21 14:54:55 MSD
Created attachment 1661 [details]
Окружение

При сборке w@e-pub-1.0.12 начиная с eter2, включительно происходит ошибка и компиляция прекращается.
Comment 1 Казанков Александр 2010-04-21 14:57:43 MSD
Created attachment 1662 [details]
Лог сборки

При этом сборка предедущих версий: w@e-pub-1.0.11-e11, w@e-pub-1.0.12-e1 проходит успешно.
Comment 2 Vitaly Lipatov 2010-04-21 16:55:31 MSD
Надо посмотреть:
freetype.c: В функции ‘WineEngCreateFontInstance’
freetype.c:3417: ошибка: повтор case-значения,
freetype.c:3414: ошибка: которое ранее использовано здесь
Comment 3 Илья Шпигорь 2010-04-29 16:39:02 MSD
Попробуйте обновить gcc до 4.3.2.

Проверял на gentoo 10.1, открытая часть wine eter5.2 собирается.
Comment 4 Илья Шпигорь 2010-04-29 16:43:57 MSD
Код в этом месте:

   3406         switch(lf.lfCharSet) {
   3407         case DEFAULT_CHARSET:
   3408             csi.fs.fsCsb[0] = 0;
   3409             break;
   3410         case OEM_CHARSET:
   3411             csi.fs.fsCsb[0] = 1;
   3412             break;
   3413         default:
   3414             FIXME("Untranslated charset %d\n", lf.lfCharSet);
   3415             csi.fs.fsCsb[0] = 0;
   3416             break;
   3417         }

Правда может быть у Вас исходники битые?
Comment 5 Казанков Александр 2010-04-29 21:16:55 MSD
(In reply to comment #4)
> Код в этом месте:
> 
>    3406         switch(lf.lfCharSet) {
>    3407         case DEFAULT_CHARSET:
>    3408             csi.fs.fsCsb[0] = 0;
>    3409             break;
>    3410         case OEM_CHARSET:
>    3411             csi.fs.fsCsb[0] = 1;
>    3412             break;
>    3413         default:
>    3414             FIXME("Untranslated charset %d\n", lf.lfCharSet);
>    3415             csi.fs.fsCsb[0] = 0;
>    3416             break;
>    3417         }
> 
> Правда может быть у Вас исходники битые?
> 

Контрольная сумма скаченного файла сошлась. Такие как у Вас на сервере.
Comment 6 Казанков Александр 2010-04-29 21:19:24 MSD
(In reply to comment #3)
> Попробуйте обновить gcc до 4.3.2.
> 
> Проверял на gentoo 10.1, открытая часть wine eter5.2
> собирается.
> 

Ох, круто, на всех серверах обновлять компилятор .... :)
Comment 7 Илья Шпигорь 2010-05-07 14:35:23 MSD
Не понятно, как эти значения могут быть одинаковыми:

#define DEFAULT_CHARSET       (BYTE)1
...
#define OEM_CHARSET	      (BYTE)255

Единственное решение - откатить коммит: 

commit ab8d22d691b55c942905f04de56fa0b5a783a1e5
    gdi32: Use the LOGFONT charset field on OEM font creation (eterbug #4223)

И придумать другое решение на багу #4223. Странно, что под все остальные системы wine собирается без ошибок.

Если честно, то думаю это бага gentroo'вского gcc.
Comment 8 Илья Шпигорь 2010-05-07 14:36:52 MSD
Может быть Вы как-то по особому собираете wine с какой-нибудь -O3 оптимизацией под какой-то процессор?
Comment 9 Vitaly Lipatov 2010-05-07 18:20:36 MSD
(In reply to comment #7)
> Не понятно, как эти значения могут быть
> одинаковыми:
> 
> #define DEFAULT_CHARSET       (BYTE)1
> ...
> #define OEM_CHARSET           (BYTE)255
> 
> Единственное решение - откатить коммит: 
Не поможет, эти два значения часто используются рядом и в других case.

...
> Если честно, то думаю это бага gentroo'вского
> gcc.
Либо надо смотреть на warning при сборке о redefine. 

Возможно, стоит попробовать у нас собрать.
Comment 10 Илья Шпигорь 2010-05-11 11:03:45 MSD
(In reply to comment #9)
> Возможно, стоит попробовать у нас собрать.

Уже попробовал в vbox, Gentroo 10.1. Собралось без ошибок.

Comment 11 Илья Шпигорь 2010-05-11 14:12:20 MSD
Попробовал собрать с теми же флагами под Gentroo:

./configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --sysconfdir=/etc --enable-dll --prefix=/usr --with-curses --with-opengl --with-x --disable-trace --disable-debug

Ошибка не воспроизвелась.
Comment 12 Казанков Александр 2010-05-13 21:22:15 MSD
(In reply to comment #11)
> Попробовал собрать с теми же флагами под
> Gentroo:
> 
> ./configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu
> --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share
> --sysconfdir=/etc --localstatedir=/var/lib --sysconfdir=/etc --enable-dll
> --prefix=/usr --with-curses --with-opengl --with-x --disable-trace
> --disable-debug
> 
> Ошибка не воспроизвелась.
> 

Мне нужно немного времени.
Comment 13 Казанков Александр 2010-06-21 19:16:49 MSD
Все, разобрался. Нашел ошибку. Извените, что попросту потривожил. :(
Comment 14 Vitaly Lipatov 2010-06-21 20:35:19 MSD
Ура!