х86 под х64 ((жесть))

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Аватара пользователя
razum
Сообщения: 189
ОС: Gentoo 64

х86 под х64

Сообщение razum »

Вопрос общий:
как собрать 32битную версию проги на комп с х64
UPD: И заставить ее там же работать!

Я как это видно, на генту, т.е. ничего невозможного нет: есть сорцы, есть gcc собранный с такими USE:

Код: Выделить всё

fortran mudflap multilib nls objc objc++ objc-gc openmp -altivec -bootstrap -build -doc -fixed-point -gcj -gtk -hardened -ip28 -ip32r10k -libffi -multislot -n32 -n64 -nocxx -test -vanilla

glibc:

Код: Выделить всё

gd multilib nls -crosscompile_opts_headers-only -debug -glibc-compat20 -glibc-omitfp -hardened -profile -selinux -vanilla

Хватит ли, просто поменять CHOST на время одной компиляции?!
Или как gcc сказать про архитектуру?
Как сказать, что либы в /usr/lib32?
И как (по возможности) скомпилить static?!

PS
wine ведь стоит и работает! & skype и поэтому все emul-86 есть.
их либы соответственно в /usr/lib32
PРS
В ядре поддержка бинарников ELF32 вкомпилена.
PРРS
Если кому-то захочется спросить "зачем?" - hp3770 на х64
Я вас умоляю, не удаляйте тему. Мне интуиция подсказывает, что ТУДА гентушников мало ходит, а кто еще по gcc подскажет...
В то же время в той теме можно будет найти собратьев по несчастью, ибо не все есть гентушники.
Спасибо сказали:
abs-o-lut
Сообщения: 420

Re: х86 под х64

Сообщение abs-o-lut »

как собрать 32битную версию проги на комп с х64

# linux32 chroot /mnt/32linux/ bin/bash

profit...
Спасибо сказали:
Аватара пользователя
razum
Сообщения: 189
ОС: Gentoo 64

Re: х86 под х64

Сообщение razum »

Вы о чем?! У меня не осталось 32й системы. (уж месяца 3 как перешел)
Куда чрутиться-то?
Вы предлагаете, стейдж что ль распаковать?!
Так там по зависимостям мне новая система будет.

Либо я не понял Вас, либо Вы не понимаете, что не нужна 32я система целиком.
Ну пусть даже проставлю, а потом удалю, но как мне там скомпилить sane static?
Спасибо сказали:
abs-o-lut
Сообщения: 420

Re: х86 под х64

Сообщение abs-o-lut »

Я вас понял.
Предложил свой вариант. Наверняка, он не единственный.
Спасибо сказали:
Аватара пользователя
proDOOMman
Сообщения: 284

Re: х86 под х64

Сообщение proDOOMman »

razum писал(а):
14.03.2009 17:35
Вы о чем?! У меня не осталось 32й системы. (уж месяца 3 как перешел)
Куда чрутиться-то?
Вы предлагаете, стейдж что ль распаковать?!
Так там по зависимостям мне новая система будет.

Либо я не понял Вас, либо Вы не понимаете, что не нужна 32я система целиком.
Ну пусть даже проставлю, а потом удалю, но как мне там скомпилить sane static?

Из stage3-x86:
Calculating dependencies... done!
[ebuild N ] media-libs/jpeg-6b-r8
[ebuild N ] dev-libs/libusb-0.1.12-r1 USE="-debug -doc"
[ebuild N ] sys-libs/libieee1284-0.2.8 USE="-doc"
[ebuild N ] media-gfx/sane-backends-1.0.19-r1 USE="ipv6 usb -doc -gphoto2 -v4l"
Что если собрать эти пакеты и перенести их в основную систему?
Правда я не уверен, что после этого заведется gui...
Ubuntu LL x86 on Acer Extensa 5635G
Спасибо сказали:
Аватара пользователя
razum
Сообщения: 189
ОС: Gentoo 64

Re: х86 под х64

Сообщение razum »

proDOOMman писал(а):
15.03.2009 11:20
razum писал(а):
14.03.2009 17:35
Вы о чем?! У меня не осталось 32й системы. (уж месяца 3 как перешел)
Куда чрутиться-то?
Вы предлагаете, стейдж что ль распаковать?!
Так там по зависимостям мне новая система будет.

Либо я не понял Вас, либо Вы не понимаете, что не нужна 32я система целиком.
Ну пусть даже проставлю, а потом удалю, но как мне там скомпилить sane static?

Из stage3-x86:
Calculating dependencies... done!
[ebuild N ] media-libs/jpeg-6b-r8
[ebuild N ] dev-libs/libusb-0.1.12-r1 USE="-debug -doc"
[ebuild N ] sys-libs/libieee1284-0.2.8 USE="-doc"
[ebuild N ] media-gfx/sane-backends-1.0.19-r1 USE="ipv6 usb -doc -gphoto2 -v4l"
Что если собрать эти пакеты и перенести их в основную систему?
Правда я не уверен, что после этого заведется gui...

Да я тоже так думал. Только вот слишком много в лине разделяемых библиотек.
Ведь почти все держится на glibc.so (соответственной архитектуры) и таких разделяемых библиотек еще чую много.
UPD Конкретно (выполнено в chroot):

Код:

# ldd `which scanimage` linux-gate.so.1 => (0xf7fce000) libsane.so.1 => /usr/lib/libsane.so.1 (0xf7fc0000) libdl.so.2 => /lib/libdl.so.2 (0xf7fbc000) libpthread.so.0 => /lib/libpthread.so.0 (0xf7fa4000) libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xf7f84000) libtiff.so.3 => /usr/lib/libtiff.so.3 (0xf7f32000) libz.so.1 => /lib/libz.so.1 (0xf7f1f000) libm.so.6 => /lib/libm.so.6 (0xf7ef8000) libc.so.6 => /lib/libc.so.6 (0xf7dbe000) libieee1284.so.3 => /usr/lib/libieee1284.so.3 (0xf7db3000) /lib/ld-linux.so.2 (0xf7fcf000)

Код:

# ldd `which xsane` linux-gate.so.1 => (0xf7f07000) libsane.so.1 => /usr/lib/libsane.so.1 (0xf7eff000) libpthread.so.0 => /lib/libpthread.so.0 (0xf7ee1000) libm.so.6 => /lib/libm.so.6 (0xf7ebb000) libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xf7e9b000) libtiff.so.3 => /usr/lib/libtiff.so.3 (0xf7e49000) libieee1284.so.3 => /usr/lib/libieee1284.so.3 (0xf7e3e000) libdl.so.2 => /lib/libdl.so.2 (0xf7e39000) libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xf7ad2000) libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xf7a4e000) libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xf7a32000) libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xf7a1a000) libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xf7a0f000) libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xf79d0000) libcairo.so.2 => /usr/lib/libcairo.so.2 (0xf7974000) libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xf7938000) libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xf7933000) libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xf7863000) libz.so.1 => /lib/libz.so.1 (0xf7850000) libc.so.6 => /lib/libc.so.6 (0xf7715000) /lib/ld-linux.so.2 (0xf7f08000) libX11.so.6 => /usr/lib/libX11.so.6 (0xf7627000) libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xf7623000) libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xf761f000) libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xf7619000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xf75ed000) libXext.so.6 => /usr/lib/libXext.so.6 (0xf75de000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0xf75d5000) libXi.so.6 => /usr/lib/libXi.so.6 (0xf75cc000) libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xf75c4000) libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xf75ba000) libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xf7591000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xf750f000) libpng12.so.0 => /usr/lib/libpng12.so.0 (0xf74ea000) libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0xf74c0000) libXau.so.6 => /usr/lib/libXau.so.6 (0xf74bb000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xf74b5000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0xf7494000)


Как скомпилить по максимуму статистически?!
(Их же не скопируешь на осн. систему: они же перетрут родные.)

PS
sys-devel/crossdev?!
Хотя, в принципе, такое решение ИМХО мало чем отличается от chroot системы...
И, кажется, позволит ТОЛЬКО СОБРАТЬ для архитектуры.
Вопрос общий:
как собрать 32битную версию проги на комп с х64
UPD: И заставить ее там же работать!
Спасибо сказали:
Аватара пользователя
razum
Сообщения: 189
ОС: Gentoo 64

Re: х86 под х64

Сообщение razum »

Вспомнил кстати, что решил проблемы со сканером.
ОбиделсО я на вас и сделал так:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
dionis
Сообщения: 7
ОС: Ubuntu base system + fluxbox

Re: х86 под х64

Сообщение dionis »

как насчет флага компиляции "-m32" ?
positively yours...
Спасибо сказали:
Аватара пользователя
razum
Сообщения: 189
ОС: Gentoo 64

Re: х86 под х64

Сообщение razum »

лень уже себя цитировать.
...
Я где-то говорил, что задача - не просто собрать, но и запускать.
А запуск предполагает наличие библиотек.... (ну или как делать особое окружение при запуске?)
Хотя понимаю, что с моей стороны самым точным скорее был бы вопрос:
Как получить бинарник, АБСОЛЮТНО ни от чего не зависящий (даже от libc)
Спасибо сказали: