我正在尝试使用 linux 内核 3.10-2-amd64 在 x86_64 上构建 uClibc 0.9.27 [1] 。我可以验证它是在 Ubuntu 12.04.3 上使用 3.2.0-49-generic 内核构建的。运行 make 时,它设法构建了很多目标文件,但最终到达CC libc/inet/if_index.os
,抱怨
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,但我需要那个特定版本。