LINUX.ORG.RU

Кросс-сборка python под arm64

 , ,


0

1

Добрый день.

Собираю пакеты под arm64 в gentoo, чтобы потом их закатить на NanoPi Neo Plus2. Не спрашивайте почему не ubuntu или прочий armbian.

В общем в данный момент имеется проблема со сборкой python (будь он не ладен). В хост системе сборка проходит успешно, никаких проблем.

Собираю посредством crossdev.

aarch64-unknown-linux-gnu-emerge --oneshot --complete-graph python

oneshot потому что со всеми вместе эта игрушка дьявола собираться не хочет, но делу это не помогает, увы.

build.log положил сюда

Сама ошибка выглядит как

error: [Errno 2] No such file or directory: '/usr/aarch64-unknown-linux-gnu/tmp/portage/dev-lang/python-3.4.5/work/Python-3.4.5/Modules/_ctypes/libffi'

libffi установлен.

А можешь поискать у себя в /usr/aarch64-unknown-linux-gnu/tmp/portage/dev-lang/python-3.4.5/work/Python-3.4.5/Modules/_ctypes/ этот самый libffi? Вот например если скачать тупо с сайта исходники питона, то там эта директория libffi в Modules/_ctypes/ присутствует.

https://www.python.org/downloads/release/python-345/

SZT ★★★★★ ()
Последнее исправление: SZT (всего исправлений: 1)
Ответ на: комментарий от SZT

Дак есть у меня такая либа

ebuild   R    ] dev-libs/libffi-3.2.1::gentoo to /usr/aarch64-unknown-linux-gnu/ USE="-debug -pax_kernel -static-libs {-test}" 0 KiB

Я тут в ebuild нашёл интересные куски

...
src_prepare() {
    # Ensure that internal copies of expat, libffi and zlib are not used.
    rm -fr Modules/expat
    rm -fr Modules/_ctypes/libffi*
...
    econf \
        --with-fpectl \
        --enable-shared \
        $(use_enable ipv6) \
        $(use_with threads) \
        --infodir='${prefix}/share/info' \
        --mandir='${prefix}/share/man' \
        --with-computed-gotos \
        --with-dbmliborder="${dbmliborder}" \
        --with-libc="" \
        --enable-loadable-sqlite-extensions \
        --with-system-expat \
        --with-system-ffi \
        --without-ensurepip
...

По идее должно работать, в логах тоже видно, что флаг --with-system-ffi передан

admincheg ()
Ответ на: комментарий от admincheg

Ну значит оно почему-то пытается искать libffi в Modules/_ctypes/libffi несмотря на то, что используется системная ffi. Можно ебилд пропатчить как-нибудь, чтоб не искало

SZT ★★★★★ ()
Ответ на: комментарий от SZT

Проверил, даже либа есть в chroot

# ls -alh /usr/aarch64-unknown-linux-gnu/usr/lib64/libffi*
lrwxrwxrwx 1 root root   15 окт  7 21:08 /usr/aarch64-unknown-linux-gnu/usr/lib64/libffi.so -> libffi.so.6.0.4
lrwxrwxrwx 1 root root   15 окт  7 21:08 /usr/aarch64-unknown-linux-gnu/usr/lib64/libffi.so.6 -> libffi.so.6.0.4
-rwxr-xr-x 1 root root  31K окт  7 21:08 /usr/aarch64-unknown-linux-gnu/usr/lib64/libffi.so.6.0.4

На всякий случай завёл баг на трекере.

admincheg ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.