Могут ли 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.