Могут ли GHC связывать двоичные файлы с реализацией libc, например, uclibc (используется в OpenWrt по умолчанию)?

Я использую Debian/MIPS + QEMU для создания портов MIPS PortFusion (TCP-туннельное решение). Результирующие двоичные файлы связаны с GNU libc. Таким образом, они не могут быть просто скопированы и использованы на vanilla OpenWrt, который поставляется с uclibc вместо eglibc (который кажется двоично-совместимым с GNU libc).


  • Есть ли способ связать двоичные файлы Haskell/GHC с Debian/MIPS с uclibc вместо eglibc?

  • Может ли OpenWrt использовать uclibc быть причиной того, что двоичные файлы PortFusion, скопированные с Debian, не работают с -ash: binary not found или это сообщение может быть связано с чем-то совершенно другим?


Подробнее см. https://github.com/corsis/PortFusion/wiki/MIPS-Builds, где используются haskell-platform, ядро ​​Linux и эмуляция процессора.


Текущая глава репозитория OpenWrt GIT не работает при make, когда я пытаюсь создать пользовательские образы OpenWrt, которые используют eglibc.

Ответ 1

Есть ли способ связать двоичные файлы Haskell/GHC с Debian/MIPS против uclibc вместо eglibc?

Нет. Вам необходимо перестроить Haskell/GHC из источников, используя кросс-компилятор GCC на основе uclibc.

Может ли OpenWrt использовать uclibc действительно быть причиной

Да. Кроме того, вы можете попробовать использовать ldd на вашей платформе MIPS, чтобы проверить, какая библиотека отсутствует. Я уверен, что это будут некоторые библиотеки, связанные с libc.