Я пытаюсь построить uClibc 0.9.27 [1] на x86_64 с ядром linux 3.10-2-amd64. Я могу проверить, что он построен на Ubuntu 12.04.3 с ядром 3.2.0-49. При запуске сделать, это удается построить много объектных файлов, но в конечном итоге достигает CC libc/inet/if_index.os
, жалуясь сПостроение uclibc linux 3.10-2 (Debian jessie x86_64) не удается из-за отсутствующих типов
In file included from /usr/include/linux/kernel.h:4,
from /usr/include/linux/netlink.h:4,
from /usr/include/linux/rtnetlink.h:5,
from libc/inet/netlinkaccess.h:32,
from libc/inet/if_index.c:36:
/usr/include/linux/sysinfo.h:8: error: expected specifier-qualifier-list before '__kernel_long_t'
In file included from /usr/include/linux/rtnetlink.h:6,
from libc/inet/netlinkaccess.h:32,
from libc/inet/if_index.c:36:
/usr/include/linux/if_link.h:317: error: expected specifier-qualifier-list before '__be16'
Я проверил, что типы существуют в файлах, которые я собираю должен был засасывается. В случае __kernel_long_t
, включаемые файлы выглядеть следующим образом:
/usr/include/linux/sysinfo.h includes <linux/types.h>
/usr/include/linux/types.h includes <linux/posix_types.h>
/usr/include/linux/posix_types.h includes <asm/posix_types.h>
/usr/include/x86_64-linux-gnu/asm/posix_types.h includes <asm/posix_types_64.h>
/usr/include/x86_64-linux-gnu/asm/posix_types_64.h includes <asm-generic/posix_types.h>
/usr/include/asm-generic/posix_types.h typedefs __kernel_long_t
Итак, где же эта ошибка берутся, и как я могу это исправить?
[1] Да, я знаю, что новая версия 0.9.33.2, но мне нужно эту конкретную версию.
Вы установили пакет 'linux-headers'? –
@BasileStarynkevitch: Да, у меня есть 'linux-headers-3.10-2- {amd64, common}'. – bitmask
Вы уверены, что * 3.10-2 'asm-generic/posix_types.h' определяет' __kernel_long_t'? Вы можете проверить, исправляет ли проблема 'HOSTCFLAGS = -O2 -Wall -D__kernel_long_t = long' в' uClibc-0.9.27/Rules.mak'? –