Summary: | Сборка wine-gecko из исходников | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Vitaly Lipatov <lav> |
Component: | Дистрибутив | Assignee: | Vitaly Lipatov <lav> |
Status: | CLOSED INVALID | QA Contact: | Vitaly Lipatov <lav> |
Severity: | minor | ||
Priority: | P3 | CC: | boris, kondratyuk, olezha |
Version: | 1.0.12 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 3000 |
Description
Vitaly Lipatov
2010-03-29 21:02:52 MSD
Прорабатывал сборку. Сделал #undef XP_WIN - ошибка в jsnum.cpp исчезла. Но всё равно в xpcom возникает ошибка из-за того, что используется gcc. В --host переопределение убрал, не помогает, хотя при configure вроде везде mingw... При сборке на builder этой ошибки с xpcom не возникает. Но хочет netcon.h: /srv/kondratyuk/Projects/wine-gecko/netwerk/system/win32/nsNotifyAddrListener.cpp:45:20: error: netcon.h: No such file or directory Судя по msdn, это виндовый заголовок, который обеспечивает работу функций для "Internet Connection Sharing and Internet Connection Firewall" (In reply to comment #3) хочет netcon.h: > /srv/kondratyuk/Projects/wine-gecko/netwerk/system/win32/nsNotifyAddrListener.cpp:45:20: > error: netcon.h: No such file or directory Искомый netcon.h есть в ./wine/include Далее: In file included from ../../dist/include/nsContentList.h:53, from ../../dist/include/nsContentUtils.h:52, from ../../dist/include/nsPresContext.h:72, from /srv/kondratyuk/Projects/wine-gecko/uriloader/base/nsDocLoader.cpp:59: ../../dist/include/nsStubMutationObserver.h:62: error: conflicting type attributes specified for 'virtual void nsStubMutationObserver::AttributeWillChange(nsIDocument*, nsIContent*, PRInt32, nsIAtom*, PRInt32)' ../../dist/include/nsIMutationObserver.h:152: error: overriding 'virtual void nsIMutationObserver::AttributeWillChange(nsIDocument*, nsIContent*, PRInt32, nsIAtom*, PRInt32)' m В описании метода AttributeWillChange используется макрос NS_METHOD_(void), тогда как в макросе NS_DECL_NSIMUTATIONOBSERVER_ATTRIBUTEWILLCHANGE этот метод объявлен как virtual void. Такая же ошибка встречается в трёх методах дальше по компилируемым файлам... Споткнулся на линковке: /srv/kondratyuk/Projects/wine_gecko/nss/freebl/WIN95_SINGLE_SHLIB/sysrand.o:sysrand.c:(.text+0x221): undefined reference to `_SHGetSpecialFolderPathW' Функция есть в libshell32.a, но модуль не линкуется ни просто с -lshell32, ни при явном указании -L для библиотеки. _SHGetSpecialFolderPathW существует как в "вайновской" libshell32.a, так и в стандартной от mingw. По умолчанию линковаться пробует со стандартной. Впрочем, указание явного пути к библиотеке или даже просто замена mingw'шной библиотеки результата не приносят. mingw видит библиотеку, но не видит в ней функции. Для разнообразия закомментировал функцию и попробовал пойти дальше... Дальше возникает ещё одна ошибка линковки - и тут помогает использование libuuid.a и libshell32.a из ./wine/lib После решения этой проблемы gecko собирается до конца :) При загрузке требуется libgcc_s_sjlj-1.dll. Это какой-то известный mingw-шный баг http://lists-archives.org/mingw-users/15278-seeking-libgcc_s_dw2-1-dll.html соибрай с LDFLAGS="-static-libgcc" или подложи либу из /usr/i586-pc-mingw32/sys-root/mingw/bin/libgcc_s_sjlj-1.dll Нужно собирать gecko из исходников, иначе это некрасиво для Сизифа и не очень тривиально в отладке. В Fedora пытались сделать то же самое. Gecko 1.2.0 для Wine улучшено, чтобы сборка проходила без проблем. https://bugzilla.redhat.com/show_bug.cgi?id=577951 Как собирает Fedora https://src.fedoraproject.org/rpms/mingw-wine-gecko/blob/master/f/mingw-wine-gecko.spec Задача по релизу W@E 1.0.12 Уже давно не актуально, закрываю. |