LINUX.ORG.RU

Сборка buildroot для Orange Pi PC

 ,


0

2

Хочу собрать buildroot для Orange Pi PC. Скачал версию RC1 (сначала пробовал LTS-версию с абсолютно тем же результатом).

Распаковываю, выполняю:

$ make orangepi_pc_defconfig
$ make

Оно собирается какое-то время, а потом выдаёт ошибку:

freadahead.c: In function 'freadahead':
freadahead.c:92:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
  #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
   ^~~~~
make[4]: *** [Makefile:1915: freadahead.o] Error 1
make[4]: *** Waiting for unfinished jobs....
fseeko.c: In function 'rpl_fseeko':
fseeko.c:110:4: error: #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
   #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
    ^~~~~
make[4]: *** [Makefile:1915: fseeko.o] Error 1

Хост-система: Arch Linux.

В чём может быть проблема?

★★★★★
Ответ на: комментарий от anonymous

анонимус врёт, арч не при чём, buildroot всё сам внутри себя собирает (обычно), тулчейн и все зависимости, на каком дистре его запускать не имеет значения

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

арч не при чём, buildroot всё сам внутри себя собирает (обычно), тулчейн и все зависимости, на каком дистре его запускать не имеет значения

$ history 4 2000 make orangepi_pc_defconfig 2001 make menuconfig 2002 make 2003 history 4 $ ls -g -G buildroot-2018.02.4/output/images/ total 82864 -rw-r--r-- 1 300 авг. 20 11:14 boot.scr -rw-r--r-- 1 10485760 авг. 20 11:18 boot.vfat -rw-r--r-- 1 62914560 авг. 20 11:18 rootfs.ext2 lrwxrwxrwx 1 11 авг. 20 11:18 rootfs.ext4 -> rootfs.ext2 -rw-r--r-- 1 74448896 авг. 20 11:18 sdcard.img -rw-r--r-- 1 15253 авг. 20 11:17 sun8i-h3-orangepi-pc.dtb -rw-r--r-- 1 352230 авг. 20 11:14 u-boot.bin -rw-r--r-- 1 548864 авг. 20 11:14 u-boot-sunxi-with-spl.bin -rw-r--r-- 1 3804232 авг. 20 11:17 zImage

$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION=«Ubuntu 14.04.5 LTS»

anonymous
()
Ответ на: комментарий от anonymous
$ history 4
 2000  make orangepi_pc_defconfig
 2001  make menuconfig
 2002  make
 2003  history 4
 
$ ls -g -G  buildroot-2018.02.4/output/images/
total 82864
-rw-r--r-- 1      300 авг.  20 11:14 boot.scr
-rw-r--r-- 1 10485760 авг.  20 11:18 boot.vfat
-rw-r--r-- 1 62914560 авг.  20 11:18 rootfs.ext2
lrwxrwxrwx 1       11 авг.  20 11:18 rootfs.ext4 -> rootfs.ext2
-rw-r--r-- 1 74448896 авг.  20 11:18 sdcard.img
-rw-r--r-- 1    15253 авг.  20 11:17 sun8i-h3-orangepi-pc.dtb
-rw-r--r-- 1   352230 авг.  20 11:14 u-boot.bin
-rw-r--r-- 1   548864 авг.  20 11:14 u-boot-sunxi-with-spl.bin
-rw-r--r-- 1  3804232 авг.  20 11:17 zImage

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS"
anonymous
()
Ответ на: комментарий от Harald

В поиске символов в make nconfig gnulib не ищется.

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

Отключил проверку хешей:

lib/fseterr.c:77:3: error: #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."
  #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."
KivApple ★★★★★
() автор топика

Проявилось то же самое при попытке собрать host-m4 внутри buildroot. Префикс host- предполагает, что сборка ведётся хостовым компилятором. В моём случае buildroot вообще не собирался gcc выше 6 версии, но теперь не собирается и с HOSTCC=gcc-6 HOSTCXX=g++. Я думаю, что-то в арч недавно прилетело, так как полную пересборку я проводил месяц-два назад.

Что характерно, всё собирается внутри docker'а с debian stable.

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

Как показал ресёрч, проблема в том, что в, например, fseeko.c используется вот такое определение glibc при сборке:

#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */

http://git.savannah.gnu.org/cgit/gnulib.git/tree/lib/fseeko.c

А в новой версии используется чуть дополненное определение:

#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1

Судя по всему, после обновления хостового glibc пропал дефайн _IO_ftrylockfile, из-за чего всё перестало собираться.

Upd: Собственно, в master'е buildroot'а эту проблему решили накладыванием патчей на старую версию m4: https://github.com/buildroot/buildroot/commit/c48f8a64626c60bd1b46804b7cf1a69...

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