Re: Кросскомпиляция на машине x86_64 в i386

2013-10-18 Пенетрантность Артём Н.

On 18.10.2013 22:32, dimas wrote:

-m32 хватает. нормально собирается, про что я и расписывал тут. но нужен бубен))
так что насчет "сильно упростить" - не факт

Так не, после того, как собралось с pbuilder - чисто теоретический интерес был: 
почему не собирается и как сделать?

Тут не упрощение, а усложнение...


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/52618285.9060...@yandex.ru



Re: Кросскомпиляция на машине x86_64 в i386

2013-10-18 Пенетрантность dimas
-m32 хватает. нормально собирается, про что я и расписывал тут. но нужен бубен))
так что насчет "сильно упростить" - не факт


2013-291 21:08 Артём Н.  wrote:
> On 18.10.2013 20:05, Dmitrii Kashin wrote:
> > "Артём Н."  writes:
> >
> >> А нафига держать 32-х разрядный GCC, если 64-х разрядный вполне себе
> >> может генерировать 32-х разрядный код?
> >
> > Что, правда? Так. Я сейчас пойду читать маны, и у меня предчувствие, что
> > моя жизнь резко упростится. =)
> >
> -march=арх-ра, не?
> 
> 


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20131018223235.7ac86...@ulf.tvoe.tv



Re: Кросскомпиляция на машине x86_64 в i386

2013-10-18 Пенетрантность Артём Н.

On 18.10.2013 20:05, Dmitrii Kashin wrote:

"Артём Н."  writes:


А нафига держать 32-х разрядный GCC, если 64-х разрядный вполне себе
может генерировать 32-х разрядный код?


Что, правда? Так. Я сейчас пойду читать маны, и у меня предчувствие, что
моя жизнь резко упростится. =)


-march=арх-ра, не?


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/52616af1.6050...@yandex.ru



Re: Кросскомпиляция на машине x86_64 в i386

2013-10-18 Пенетрантность Andrey Rahmatullin
On Fri, Oct 18, 2013 at 08:51:52AM +0400, Konstantin Fadeyev wrote:
> Мультиарч не подойдёт?
Как замена бочке?

P.S. У меня уже около двух третей писем в этой рассылке от заскоренных
отправителей приходит. Пора отписываться.

-- 
WBR, wRAR


signature.asc
Description: Digital signature


Re: Кросскомпиляция на машине x86_64 в i386

2013-10-18 Пенетрантность Dmitrii Kashin
"Артём Н."  writes:

> А нафига держать 32-х разрядный GCC, если 64-х разрядный вполне себе
> может генерировать 32-х разрядный код?

Что, правда? Так. Я сейчас пойду читать маны, и у меня предчувствие, что
моя жизнь резко упростится. =)


pgp0ycdODVl4m.pgp
Description: PGP signature


Re: Кросскомпиляция на машине x86_64 в i386

2013-10-18 Пенетрантность Артём Н.

On 17.10.2013 23:29, Dmitrii Kashin wrote:

dimas  writes:


ради трех пакетов мало того, что изучать pbuilder, так еще и ведро
перебирать, лично мне смысла не было никакого.


Для того, чтобы собирать в чруте пакеты не нужно иметь 32-битное
ядро. Более того, никаким другим способом Вы не сможете иметь в одной
системе одновременно установленными 32- и 64-разрядные версии GCC.

А нафига держать 32-х разрядный GCC, если 64-х разрядный вполне себе может 
генерировать 32-х разрядный код?



--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/526152d3.40...@yandex.ru



Re: Кросскомпиляция на машине x86_64 в i386

2013-10-18 Пенетрантность Артём Н.

On 17.10.2013 21:46, dimas wrote:

о, как-то я занимался этой фигней, и вскоре еще придется, только я уж все
забыл, как оно делается, ну да вот и повод вспомнить подвернулся)) там всего

О, спасибо. Но, конечно, совсем не простой путь. С pbuilder легче.


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/526152ff.8080...@yandex.ru



Re: Кросскомпиляция на машине x86_64 в i386

2013-10-18 Пенетрантность Dmitrii Kashin
Konstantin Fadeyev  writes:

> 17 октября 2013 г., 23:29 пользователь Dmitrii Kashin
>  написал:
>
>> ядро. Более того, никаким другим способом Вы не сможете иметь в одной
>> системе одновременно установленными 32- и 64-разрядные версии GCC.
>
> Мультиарч не подойдёт?

Нет.

https://wiki.debian.org/Multiarch


pgprdg4kubxye.pgp
Description: PGP signature


Re: Кросскомпиляция на машине x86_64 в i386

2013-10-17 Пенетрантность Konstantin Fadeyev
Мультиарч не подойдёт?

17 октября 2013 г., 23:29 пользователь Dmitrii Kashin
 написал:
> dimas  writes:
>
>> ради трех пакетов мало того, что изучать pbuilder, так еще и ведро
>> перебирать, лично мне смысла не было никакого.
>
> Для того, чтобы собирать в чруте пакеты не нужно иметь 32-битное
> ядро. Более того, никаким другим способом Вы не сможете иметь в одной
> системе одновременно установленными 32- и 64-разрядные версии GCC.
>
>> ну, у меня, например, в 64-битном ведре даже отключена поддержка всяких
>> 32-битных штук.
>
> а Диоген, например, в бочке жил.



-- 
Константин Фадеев


Re: Кросскомпиляция на машине x86_64 в i386

2013-10-17 Пенетрантность Dmitrii Kashin
dimas  writes:

> ради трех пакетов мало того, что изучать pbuilder, так еще и ведро
> перебирать, лично мне смысла не было никакого.

Для того, чтобы собирать в чруте пакеты не нужно иметь 32-битное
ядро. Более того, никаким другим способом Вы не сможете иметь в одной
системе одновременно установленными 32- и 64-разрядные версии GCC.

> ну, у меня, например, в 64-битном ведре даже отключена поддержка всяких
> 32-битных штук.

а Диоген, например, в бочке жил.


pgpkg3P8YV5ik.pgp
Description: PGP signature


Re: Кросскомпиляция на машине x86_64 в i386

2013-10-17 Пенетрантность Andrey Rahmatullin
On Thu, Oct 17, 2013 at 10:29:56PM +0400, dimas wrote:
> ну, у меня, например, в 64-битном ведре даже отключена поддержка всяких
> 32-битных штук. 
Сочувствую.

-- 
WBR, wRAR


signature.asc
Description: Digital signature


Re: Кросскомпиляция на машине x86_64 в i386

2013-10-17 Пенетрантность dimas
ну, у меня, например, в 64-битном ведре даже отключена поддержка всяких
32-битных штук. ради трех пакетов мало того, что изучать pbuilder, так еще и
ведро перебирать, лично мне смысла не было никакого.
так-то конечно лучше по-хорошему, но когда оно оправдано. а если один бинарь
нужен - можно и извратиться иногда.


2013-291 00:04 Andrey Rahmatullin  wrote:
> On Thu, Oct 17, 2013 at 09:46:41PM +0400, dimas wrote:
> > а вообще в каждом конкретном случае требуется индивидуальный подход и
> > пляски с бубном. либо нужно собирать патченный кросс-тулчейн, тогда это
> > дело должно получше автоматизироваться. 
> Либо не мучать моск и собирать в чруте.
> Всё равно пакеты в чруте собирать надо.
> 


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20131017222956.7349f...@ulf.tvoe.tv



Re: Кросскомпиляция на машине x86_64 в i386

2013-10-17 Пенетрантность Andrey Rahmatullin
On Thu, Oct 17, 2013 at 09:46:41PM +0400, dimas wrote:
> а вообще в каждом конкретном случае требуется индивидуальный подход и пляски с
> бубном. либо нужно собирать патченный кросс-тулчейн, тогда это дело должно
> получше автоматизироваться. 
Либо не мучать моск и собирать в чруте.
Всё равно пакеты в чруте собирать надо.

-- 
WBR, wRAR


signature.asc
Description: Digital signature


Re: Кросскомпиляция на машине x86_64 в i386

2013-10-17 Пенетрантность dimas
о, как-то я занимался этой фигней, и вскоре еще придется, только я уж все
забыл, как оно делается, ну да вот и повод вспомнить подвернулся)) там всего
несколько пакетов надо было пересобрать, отучив от от всяких юдевов и прочего
системд, вот остались команды для сборки:

>21:23:01 290 /usr/src/rescue/build$ cat busybox-snapshot-20121124 
make ARCH=i386 CROSS_COMPILE=i486-linux-gnu- CFLAGS="-m32" \
LDEMULATION="elf_i386" busybox

>21:23:14 290 /usr/src/rescue/build$ cat lvm2-2.02.95 
./configure --host=i486-linux-gnu --бла-бла-бла \
LDFLAGS="-L /usr/lib/i386-linux-gnu" CC=i486-linux-gnu-gcc LD=i486-linux-gnu-ld 
\
CROSS_COMPILE=i486-linux-gnu LDEMULATION="elf_i386" CFLAGS="-m32"
make CC=i486-linux-gnu-gcc LD=i486-linux-gnu-ld CROSS_COMPILE=i486-linux-gnu \
LDEMULATION="elf_i386" CFLAGS="-m32" -j2

>21:23:47 290 /usr/src/rescue/build$ cat parted-2.3 
./configure --host=i486-linux-gnu --бла-бла-бла \
CC=i486-linux-gnu-gcc LD=i486-linux-gnu-ld CROSS_COMPILE=i486-linux-gnu \
LDEMULATION="elf_i386" CFLAGS="-m32"
make CC=i486-linux-gnu-gcc LD=i486-linux-gnu-ld CROSS_COMPILE=i486-linux-gnu \
DEMULATION="elf_i386" CFLAGS="-m32" -j2 install

>21:23:52 290 /usr/src/rescue/build$ cat cryptsetup-1.4.3/cryptsetup 
./configure --host=i486-linux-gnu --бла-бла-бла \
LDFLAGS="-L/usr/lib/i386-linux-gnu" CC=i486-linux-gnu-gcc LD=i486-linux-gnu-ld \
CROSS_COMPILE=i486-linux-gnu LDEMULATION="elf_i386" CFLAGS="-m32"
make CC=i486-linux-gnu-gcc LD=i486-linux-gnu-ld CROSS_COMPILE=i486-linux-gnu \
LDEMULATION="elf_i386" CFLAGS="-m32" -j2

обрати внимание на LDEMULATION и LDFLAGS, они страсть как нужны, без них лезут
какие-то косяки с линковкой.
еще иногда нужен вот такой костыль:

>21:27:34 290 /usr/src/rescue/build$ cat malloc_fix 
#!/bin/bash

# workaround to avoid autoconf bug, leading to "undefined reference"
# with rpl_malloc on rpl_realloc when cross-compiling for i386.
# if ypu build for native architecture, you don't need this

export ac_cv_func_malloc_0_nonnull=yes
export ac_cv_func_realloc_0_nonnull=yes

что касается сборки пакетов через dpkg, заморрочился я с этим только один раз,
но в итоге домучал его, и все собралось как я хотел. правда, пакет я все равно
потом расковырял и накидал бинарей вручную, ибо все это нужно для liveusb
микро-линукса, где городить пакетную систему нет смысла, ибо она собирается-то
толком один раз и надолго))
но суть в том, что пришлось мне всю муть пихать в debian/rules. переправленные
debian/rules и debian/control для cryptsetup 1.4.3 (я хз, где сейчас его взять,
но в wheezy должна быть не сильно новее версия) см. в аттаче.
да, еще помню, что dpkg-buildpackage вызывал через dpkg-architecture.

да, симлинки:
>21:40:14 290 /usr/src/rescue/build$ find /usr/bin /bin -type l -iname "*i*86*"
/usr/bin/i386
/usr/bin/i486-linux-gnu-ar
/usr/bin/i486-linux-gnu-ld
/usr/bin/i486-linux-gnu-nm
/usr/bin/i486-linux-gnu-gcc
/usr/bin/i486-linux-gnu-strip
/usr/bin/i486-linux-gnu-objcopy
/usr/bin/i486-linux-gnu-objdump
почему i486, а не 386? как-то давно я их создал, и так исторически сложилось
почему-то, ну а переименовывать лень было, так с ниим и собирал все нужное.

а вообще в каждом конкретном случае требуется индивидуальный подход и пляски с
бубном. либо нужно собирать патченный кросс-тулчейн, тогда это дело должно
получше автоматизироваться. да, либы собираются, с тем же cryptsetup нормально
все вышло, все 32-битное. после сборки имеет смысл все бинари проверять с
помощью file.

ЗЫ. а еще я умею ведро кросс-компилять через make-kpkg, если интересно. вот с
ведром, кстати, гораааздо проще все.


control
Description: Binary data


rules
Description: Binary data