multilib-build.eclass (docs) adds support for building regular ebuilds for multiple ABIs.
multilib-build eclass is seldom inherited directly. Instead, its API is exposed via other eclasses such as multilib-minimal.
multilib-minimal.eclass (docs)
http://paste.pirate-party.ru/msWCJ5fd.txt
The problem was in that thing: if just call econf with
ECONF_SOURCE=${S} in multilib_src_configure,
then it was fail as above.
But if keep ECONF_SOURCE=".", but do multilib_copy_sources in prepare instead — all works fine.
It looks like buildsystem artifact, but as it works with multilib_copy_sources — let it be :)
!meta -v mono
user: dev-lang/mono; maintainers: dotnet
user: (dotnet@gentoo.org) angelos, cynede
gcc man page directed me to the ‘-m32’ and ‘-m64’ options. These options generate code for 32-bit or 64-bit environments, respectively.
The 32-bit environment sets int, long and pointer to 32 bits and generates code that runs on any i386 system.
The 64-bit environment sets int to 32 bits and long and pointer to 64 bits and generates code for AMD’s x86-64 architecture.
Зачем вообще собирать mono для 32-битного окружения? Ну кто-то как-то может создавать 32-битные программы, которые захотят использовать Mono. А у mono есть подводная часть, написанная на C/C++,
вот она должна быть собрана в двух вариантах - 64-х битном и 32-х битном.
Что в эту часть входит конкретно?
multilib
Любой процессор архитектуры AMD64 может запускать 32-битный код, так же как и 64-битный.
(а в чём разница кроме опкодов? загрузчик делает что-нибудь особенное? отличаются ли в памяти 32-х битные процессы от 64-битных? есть ли в бинарнике какие-нибудь флаги в заголовке?)
Но нельзя запустить 32-битное приложение с 64-битными библиотеками или наоборот.
Можно, однако, «нативно» (без эмуляции) запустить 32-битное приложение,
если все нужные ему разделяемые библиотеки доступны в 32-битном виде.
Взято из Что такое multilib, и как его использовать?
Сценарии
Зачем вообще может понадобиться такой сценарий использования?
нуу, можно сделать 32-х битный chroot.
и компилировать 32-х битный код, который вроде бы как компактнее (но насколько это полезно - не ясно) и за счёт компактности лучше влезает на всякие raspberry pi
и для хостинга может быть полезно (опять не ясно в какой мере - сколько в процентах)
грабли
бинарные файлы, созданные на x86-системе, часто не могут быть прочитаны приложениями в системе с архитектурой AMD64.
В частности, файлы баз данных, таких как MySQL, innoDB, Berkeley DB, SQLite, OpenLDAP и т. п., нельзя скопировать как есть.
Нужно сделать дамп в независимый от архитектуры формат (например, текстовый файл), а затем восстановить базу из него на AMD64-системе.