linux-3.0.1编译drcom-1.4.8.2.tar.gz错误解决
今天用linux(内核版本3.0.1)编译drcom-1.4.8.2.tar.gz时出现错误、错误说drcom.c里面sk_buff结构中找不到dst。查看了一下linux-3.0.1内核源代码,找到sk_buff结构,确实在里面找不到dst。但是找到unsigned long _skb_refdst;查看注释:_skb_refdst: destination entry(with norefcount bit)。
然后再查看linux-2.6.30.4源代码找到struct dst_entry *dst;注释为@dst: destination entry。对比可得到linux-3.0.1用_skb_refdst代替了*dst。
因此修改drcom.c源代码,将源代码中的skb->dst修改为(struct dst_entry*)skb->_skb_refdst。重新编译通过。这样drcom就可以在运行在内核为linux-3.0.1的操作系统上了。