LINUX.ORG.RU

Не собирается wine-1.8.3

 ,


0

2

Собираю через sbopkg:

schannel_gnutls.c:45:12: ошибка: несовместимые типы для «gnutls_cipher_get_block_size»
 extern int gnutls_cipher_get_block_size(gnutls_cipher_algorithm_t algorithm);
            ^
In file included from schannel_gnutls.c:28:0:
/usr/include/gnutls/crypto.h:59:10: замечание: здесь была предыдущая декларация «gnutls_cipher_get_block_size»
 unsigned gnutls_cipher_get_block_size(gnutls_cipher_algorithm_t algorithm) __GNUTLS_CONST__;
          ^
Makefile:279: ошибка выполнения рецепта для цели «schannel_gnutls.o»
make[1]: *** [schannel_gnutls.o] Ошибка 1
make[1]: выход из каталога «/tmp/SBo/wine-1.8.3/dlls/secur32»
Makefile:16452: ошибка выполнения рецепта для цели «dlls/secur32»
make: *** [dlls/secur32] Ошибка 2

wine:
Would you like to continue processing the rest of the
queue or would you like to abort?  If this failed
package is a dependency of another package in the queue
then it may not make sense to continue.

★★★★★

Я пользуюсь не SBo-шным слакбилдом, а алиеновским, подпиленным в паре мест. Из плюсов — его слакбилд поддерживает мультилиб и способен сам скачивать необходимые для сборки исходники. Кстати, а слака 32-разрядная, или 64? Если второе, то установлен и актуален ли мультилиб?

yars068 ★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)

Было б неплохо озвучить версию и разрядносиь Slackware, версию gcc, если не штатная или current.

bormant ★★★★★
()

Последняя версия ветки 1.8 — 1.8.7, а не 1.8.3. И с 1.8.4 строчка

extern int gnutls_cipher_get_block_size(gnutls_cipher_algorithm_t algorithm);

выглядит

static int (*pgnutls_cipher_get_block_size)(gnutls_cipher_algorithm_t algorithm);

redgremlin ★★★★★
()
Ответ на: комментарий от bormant
bash-4.3$ cat /etc/slackware-version 
Slackware 14.2
bash-4.3$ gcc -v
Спецификации прочитаны из /usr/lib/gcc/i586-slackware-linux/5.3.0/specs
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i586-slackware-linux/5.3.0/lto-wrapper
Целевая архитектура: i586-slackware-linux
Параметры конфигурации: ../gcc-5.3.0/configure --prefix=/usr --libdir=/usr/lib --mandir=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap --enable-languages=ada,c,c++,fortran,go,java,lto,objc --enable-threads=posix --enable-checking=release --enable-objc-gc --with-system-zlib --with-python-dir=/lib/python2.7/site-packages --enable-libstdcxx-dual-abi --with-default-libstdcxx-abi=gcc4-compatible --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --enable-lto --disable-install-libiberty --with-gnu-ld --verbose --enable-java-home --with-java-home=/usr/lib/jvm/jre --with-jvm-root-dir=/usr/lib/jvm --with-jvm-jar-dir=/usr/lib/jvm/jvm-exports --with-arch-directory=i386 --with-antlr-jar=/root/slackware-current/source/d/gcc/antlr-runtime-3.4.jar --enable-java-awt=gtk --disable-gtktest --with-arch=i586 --target=i586-slackware-linux --build=i586-slackware-linux --host=i586-slackware-linux
Модель многопоточности: posix
gcc версия 5.3.0 (GCC) 
bash-4.3$ uname -a
Linux bastille 4.4.38-smp #2 SMP Sun Dec 11 17:55:40 CST 2016 i686 AMD FX(tm)-4350 Quad-Core Processor AuthenticAMD GNU/Linux
splinter ★★★★★
() автор топика
Последнее исправление: splinter (всего исправлений: 1)

Насколько понимаю, эту ошибку легко устранить патчем, заменив в schannel_gnutls.c в указании на внешнюю функцию тип с «int» на «unsigned». Иначе компилятор ругается на несоответствие объявлений одноименных функций.
Упрощённый пример, иллюстрирующий ошибку:

int test();
unsigned test() { return 0; } //реализация не соответствует объявлению

int main(void) { return 0; }

bormant ★★★★★
()

Кстати, нужен именно wine 1.8.3?
Вопрос к тому, что текущий стабильный 2.0.1 и он же есть на slackbuilds.org и доступен для sbopkg, после sbopkg -r собираться станет именно он.

bormant ★★★★★
()

wine 2.0.1 собирается успешно. Slackware 14.2, 32 бит, обновления по состоянию на сегодня.

bormant ★★★★★
()

wine 1.8.7 собирается слакбилдом от 2.0.1. Slackware 14.2, 32 бит, обновления по сегодня.

bormant ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.