LINUX.ORG.RU

Gentoo - как установить 32-bit пакет в 64-bit системе?

 , , ,


1

2

Хочу установить 32-битный games-emulation/pcsxr в 64-битную систему. Как это сделать красиво?
Некрасиво (руками) попробовал - не ага.

$ sh autogen.sh --build=i686-pc-linux-gnu
...

$ make
...

/bin/sh ../libtool  --tag=CC   --mode=link gcc  -g -O2   -o pcsxr LnxMain.o Plugin.o Config.o GtkGui.o MemcardDlg.o ConfDlg.o Cheat.o DebugMemory.o AboutDlg.o ../libpcsxcore/libpcsxcore.a -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0  -lpthread -lz -lm -lXext -lXtst -ldl -lnsl
libtool: link: gcc -g -O2 -o pcsxr LnxMain.o Plugin.o Config.o GtkGui.o MemcardDlg.o ConfDlg.o Cheat.o DebugMemory.o AboutDlg.o  ../libpcsxcore/libpcsxcore.a -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lpthread -lz -lm -lXext -lXtst -ldl -lnsl
ConfDlg.o: In function `OnCpu_Clicked':
/tmp/pcsxr/gui/ConfDlg.c:914: undefined reference to `psxRec'
/tmp/pcsxr/gui/ConfDlg.c:914: undefined reference to `psxRec'
../libpcsxcore/libpcsxcore.a(misc.o): In function `RecvPcsxInfo':
/tmp/pcsxr/libpcsxcore/../libpcsxcore/misc.c:680: undefined reference to `psxRec'
/tmp/pcsxr/libpcsxcore/../libpcsxcore/misc.c:680: undefined reference to `psxRec'
../libpcsxcore/libpcsxcore.a(r3000a.o): In function `psxInit':
/tmp/pcsxr/libpcsxcore/../libpcsxcore/r3000a.c:38: undefined reference to `psxRec'
collect2: error: ld returned 1 exit status
Makefile:461: recipe for target 'pcsxr' failed
make[1]: *** [pcsxr] Error 1
make[1]: Leaving directory '/tmp/pcsxr/gui'
Makefile:447: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
Собирать в 32bit chroot'е как-то совсем костыльно.

★★★★★
Ответ на: комментарий от NeverLoved

А pcsxr собирается и работает на amd64, но плагины от Pete к нему все проприетарные и под 32-bit, а без них совсем уныло.

Lavos ★★★★★
() автор топика

посаны, вам там qt5 размаскировали в ~, ждём поток тредов с неработате

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

Такие же ошибки, как и в случае передачи автогену --build=i686-pc-linux-gnu.

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

Да, пробовал вот так: ./configure --host=i686-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32" "LTCC=gcc -m32"
Такие же ошибки.

Lavos ★★★★★
() автор топика

Кроме как в чрут - никак, ИМХО. Всмысле быстро и без траха.

Но в принципе ты конечно можешь собрать все зависимые либы под 32 бита. Возможно придется попатчить билдсистему, если она там кривая и с кросс-компиляцией не дружит(а в данном случае это как бы и будет кросс-компиляция, даже несмотря на то, что можно использовать тот же компилятор что и для хостовой системы, только с -m32)

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Сторонние либы все есть под 32бит, оно ж ругается на свои функции при сборке, а не на gtk, например.

Lavos ★★★★★
() автор топика

Зацени, как это делается одной командой в нормальных системах, а не в поделках для красноглазов:

aptitude install pcsxr:i386

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

в gentoo тоже есть multilib. просто этот конкретный пакет не сделан под него

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

А в еще более нормальных системах можно просто запустить pcsxr.exe и все сразу работает без всяких ваших aptitude. И что? Вопрос то про Gentoo.

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

configure: error: C compiler cannot create executables
В логах ругань вида «gcc: error: unrecognized command line option '-arch'»

Lavos ★★★★★
() автор топика

Получилось так:

unzip /usr/portage/distfiles/pcsxr-1.9.94.zip
linux32 /bin/bash
cd pcsxr
autoreconf -i -f
./configure CFLAGS=-m32 CPPFLAGS=-m32 LDFLAGS=-m32 --prefix=~/pcsx-reloaded --enable-sound=alsa --enable-opengl
make -j5
make install
Осталось придумать как сделать это в .ebuild

(/cast NeverLoved - ты просил)

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