Кросскомпиляция на машине x86_64 в i386
Интересует как "грязно" скомпилировать 32-х битный пакет на 64-х битной машине.
Через pbuilder собрать пакеты получилось, но вопрос остался.
Машина 64-х битная виртуалка.
У меня есть патченые библиотеки.
Я сделал dpkg-buildpackage -uc -us -B -ai386.
Одна собралась под 32. Но в конце ругнулась, что i486-gnu-strip не найден.
Я сделал симлинк на обычный стрип (он поддерживает x32) в /usr/local/bin.
Всё собралось. Установил.
Стал собирать вторую библиотеку.
Не линкуется с первой.
После долгих мучений, я выяснил, что первая библиотека, несмотря на указание
архитектуры (и установки переменной ARCH=i386, если это на что-то влияет),
собралась по 64-бита. Но пакет был с суффиксом i386.
Насколько я понимаю, 32-х битный большой проект, который использует CMake,
вполне себе собирается под 32-бита (ломается при сборке после нескольких
процентов, но видимо по другим причинам).
Т.е. дело здесь именно в системе сборки пакетов.
1. Почему?
2. Как собрать под 32 бита без pbuilder?
Reply to: