Что такое multilib и как с ним работать

Разработка на C# под linux
https://wiki.gentoo.org/wiki/Project:Multilib
https://wiki.gentoo.org/wiki/Multilib
https://wiki.gentoo.org/wiki/Multilib/gx86-multilib
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)

multilib.eclass: source

Разработка mva

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

другие операционные системы тоже имеют нерешенные проблемы с организацией сборки Mono для режима multilib:
https://ask.fedoraproject.org/en/question/66853/unresolved-dependecies-with-mono/
и решенные проблемы, которые всё равно являются проблемами, так как плохо (никак) задокументированы:
http://askubuntu.com/questions/453681/gcc-wont-link-with-m32

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-системе.

ECONF_SOURCE

https://devmanual.gentoo.org/ebuild-writing/eapi/