LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1041|回复: 4

使用gcc 4.1.1 glibc 2.5 kernel 2.6.19 创建arm交叉工具链

[复制链接]
发表于 2007-1-1 10:32:25 | 显示全部楼层 |阅读模式
根据 clfs 2.0创建的

基本上没有多少问题

但 kernel 2.6.19 使用新的netlink接口 把一些老的定义去掉了

所以编译glibc前需要自己修改一下

glibc-2.5/sysdeps/unix/sysv/linux# grep IFA * -l
    check_pf.c
    if_index.c
    ifaddrs.c
添加的内容为:
#include <linux/if_addr.h>

#define IFLA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
#define IFA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg))

上面这个修改是从ubuntu中复制过来的, 建议 clfs 中也加入.
编译中可能出现的另外一个问题就是如果你安装的是mawk而不是gawk , 编译会不通过, 改成安装 mawk就可以.
发表于 2007-1-1 11:05:31 | 显示全部楼层
偶落後了,无双兄能否解释一下 2.6.19 的 netlink 接囗是什麽玩意?
回复 支持 反对

使用道具 举报

发表于 2007-1-2 21:18:18 | 显示全部楼层
gcc-4.1.1编译glibc-2.5用2.6.19.1内核不会出现问题,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-3 00:27:16 | 显示全部楼层
netlink是一套内核中的接口
它包括结构的定义与接口的定义

现在
netlink中使用了新的结构(struct)
老的结构已经不用了

然后就从内核中去掉了

但是对外面的glibc没有影响 外面的glibc仍然可以继续使用这些结构而不会不支持

使用2.6.19 不一定会影响glibc 2.5的安装
要看你的include中内核头文件是不是使用2.6.19
如果include 目录下使用2.6.19 那编译时需要加上面的东东
回复 支持 反对

使用道具 举报

发表于 2007-1-3 07:54:19 | 显示全部楼层
原来如此,谢谢了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表