LINUX.ORG.RU
ФорумGames

Кому-нибудь удавалось собрать Gens GS (r7) на amd64?

 ,


0

0

Собираю так:

setarch i386 ./configure
setarch i386 make
Сборка останавливается на этом:
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../../../.. -I../../../../../src/ -I../../../../../src/ -g -O2 -MT libmdp_render_1x_la-mdp_render_1x_16_x86.lo -MD -MP -MF .deps/libmdp_render_1x_la-mdp_render_1x_16_x86.Tpo -c mdp_render_1x_16_x86.S  -fPIC -DPIC -o .libs/libmdp_render_1x_la-mdp_render_1x_16_x86.o
mdp_render_1x_16_x86.S: Assembler messages:
mdp_render_1x_16_x86.S:47: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:51: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:52: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:53: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:54: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:55: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:93: Error: invalid instruction suffix for `pop'
mdp_render_1x_16_x86.S:94: Error: invalid instruction suffix for `pop'
mdp_render_1x_16_x86.S:95: Error: invalid instruction suffix for `pop'
mdp_render_1x_16_x86.S:96: Error: invalid instruction suffix for `pop'
mdp_render_1x_16_x86.S:97: Error: invalid instruction suffix for `pop'
mdp_render_1x_16_x86.S:101: Error: invalid instruction suffix for `pop'
mdp_render_1x_16_x86.S:118: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:122: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:123: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:124: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:125: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:126: Error: invalid instruction suffix for `push'
mdp_render_1x_16_x86.S:176: Error: invalid instruction suffix for `pop'
mdp_render_1x_16_x86.S:177: Error: invalid instruction suffix for `pop'
mdp_render_1x_16_x86.S:178: Error: invalid instruction suffix for `pop'
mdp_render_1x_16_x86.S:179: Error: invalid instruction suffix for `pop'
mdp_render_1x_16_x86.S:180: Error: invalid instruction suffix for `pop'
mdp_render_1x_16_x86.S:184: Error: invalid instruction suffix for `pop'
make[6]: *** [libmdp_render_1x_la-mdp_render_1x_16_x86.lo] Error 1
Можно как-то обойтись без x86 chroot? Собирать без renders смысла не вижу.



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

Ответ на: комментарий от i-rinat

Сначала ./configure не прошло: compiler cannot create executables. После установки gcc-4.7-multilib валится с этим:

checking for GTK+ - version >= 2.4.0... no
*** Could not run GTK+ test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GTK+ is incorrectly installed.
configure: error: *** GTK+ version 2.4.0 or later not found!
Вот соответствующая часть config.log:
configure:17598: gcc -std=gnu99 -o conftest -m32 -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk>
/usr/bin/ld: cannot find -lgtk-x11-2.0
/usr/bin/ld: cannot find -lgdk-x11-2.0
/usr/bin/ld: cannot find -latk-1.0
/usr/bin/ld: cannot find -lgio-2.0
/usr/bin/ld: cannot find -lpangoft2-1.0
/usr/bin/ld: cannot find -lpangocairo-1.0
/usr/bin/ld: cannot find -lgdk_pixbuf-2.0
/usr/bin/ld: cannot find -lcairo
/usr/bin/ld: cannot find -lpango-1.0
/usr/bin/ld: cannot find -lfreetype
/usr/bin/ld: cannot find -lfontconfig
/usr/bin/ld: cannot find -lgobject-2.0
/usr/bin/ld: cannot find -lglib-2.0
collect2: error: ld returned 1 exit status
configure:17602: $? = 1
configure: program exited with status 1
libgtk2.0-dev и всё остальное есть, конечно же.

Homura_Akemi
() автор топика
Ответ на: комментарий от i-rinat

Гм, теперь вот так:

g++ -DHAVE_CONFIG_H -I. -I../.. -I./ -I../../src/ -I../../src/extlib/ -I./ui/   -I./ui/gtk/     -Wall -Wextra -O0 -ggdb  -fvisibility-inlines-hidden -DGENS_DATADIR=\"/usr/local/share/gens\" -DGENS_MDP_DIR=\"/usr/local/lib/mdp\" -DGENS_DOC_DIR=\"/usr/local/share/doc/gens\" -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12   -DGTK_DISABLE_DEPRECATED -DDISABLE_DEPRECATED -DGSEAL_ENABLE  -g -O2 -MT gens_core/sound/gens-ym2612.o -MD -MP -MF gens_core/sound/.deps/gens-ym2612.Tpo -c -o gens_core/sound/gens-ym2612.o `test -f 'gens_core/sound/ym2612.cpp' || echo './'`gens_core/sound/ym2612.cpp
gens_core/sound/ym2612.cpp:840:13: warning: unused parameter ‘SL’ [-Wunused-parameter]
gens_core/sound/ym2612.cpp: In function ‘int YM2612_Save_Full(gsx_v7_ym2612*)’:
gens_core/sound/ym2612.cpp:2233:21: error: cast from ‘int*’ to ‘int’ loses precision [-fpermissive]
gens_core/sound/ym2612.cpp: In function ‘int YM2612_Restore_Full(gsx_v7_ym2612*)’:
gens_core/sound/ym2612.cpp:2368:60: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
gens_core/sound/ym2612.cpp: At global scope:
gens_core/sound/ym2612.cpp:166:12: warning: ‘INTER_TAB’ defined but not used [-Wunused-variable]
make[4]: *** [gens_core/sound/gens-ym2612.o] Error 1

Homura_Akemi
() автор топика
Ответ на: комментарий от i-rinat
configure: error: 64-bit is currently not supported.

Оно официально не поддерживается пока. Правда, собранный под i386 эмулятор вполне запускается, только рендеры не получилось подгрузить через LD_PRELOAD.

Homura_Akemi
() автор топика
Ответ на: комментарий от i-rinat

Об этом мне следовало догадаться самостоятельно :)

Спасибо, всё собралось и даже запускается. Только пришлось закомментировать в configure.ac одну строчку про deprecated в GTK (решение найдено в http://ubuntuforums.org/printthread.php?t=1225491&pp=10&page=6).

Homura_Akemi
() автор топика
Ответ на: комментарий от Homura_Akemi

Об этом мне следовало догадаться самостоятельно :)

глаз замыливается, прекрасно понимаю

gens_core/sound/ym2612.cpp:2233:21: error: cast from ‘int*’ to ‘int’ loses precision [-fpermissive]

Да оно гвоздями к 32-м битам прибито.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Да оно гвоздями к 32-м битам прибито.

Ну, вроде над этим работают. Цель проекта Gens GS — портируемость эмулятора.

Homura_Akemi
() автор топика
Ответ на: комментарий от devl547

Никто не говорил про большие успехи. Насколько я понимаю, что-то ощутимо лучше станет в Gens GS II, но там пока не портированы рендер-плагины и вообще.

Homura_Akemi
() автор топика

Даже на i686 не удавалось.

Quasar ★★★★★
()

Так ведь у них же есть готовые сборки! Я скачал их RPM-ку и установил, DEB там наверное тоже есть.

anonymous
()
Ответ на: комментарий от anonymous

Ну да, есть. Под Ubuntu 8.04 :) Хотя он работает и можно элементарно перепаковать, чтобы устанавливалось в 64-битной системе. Но мне было в принципе интересно собрать самостоятельно. Кстати, собралось не очень хорошо — всего один один дополнительный рендер из кучи, причём без сообщений об ошибках. Впрочем, я всё равно пока пользуюсь проприетарным Kega Fusion -_-

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