luigirizzo / dummynet

Automatically exported from code.google.com/p/dummynet
147 stars 53 forks source link

Does not build in Linux 4.4.0.. Tried tomerb and FS1360472174 fork also. #16

Open abhishekismdhn opened 8 years ago

abhishekismdhn commented 8 years ago

include/net/inet_hashtables.h: In function ‘sk_daddr_set’: include/net/inet_hashtables.h:354:2: error: implicit declaration of function ‘ipv6_addr_set_v4mapped’ [-Werror=implicit-function-declaration] ipv6_addr_set_v4mapped(addr, &sk->sk_v6_daddr); ^ ~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c: In function ‘ip_output’: ~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:362:15: error: passing argument 1 of ‘dst_output’ from incompatible pointer type [-Werror=incompatible-pointer-types] dst_output(skb); ^ In file included from include/net/sock.h:67:0, from include/linux/tcp.h:22, from include/linux/ipv6.h:72, from include/net/netfilter/nf_queue.h:5, from ~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:71: include/net/dst.h:490:19: note: expected ‘struct net ’ but argument is of type ‘struct sk_buff ’ static inline int dst_output(struct net net, struct sock sk, struct sk_buff skb) ^ ~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:362:4: error: too few arguments to function ‘dst_output’ dst_output(skb); ^ In file included from include/net/sock.h:67:0, from include/linux/tcp.h:22, from include/linux/ipv6.h:72, from include/net/netfilter/nf_queue.h:5, from ~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:71: include/net/dst.h:490:19: note: declared here static inline int dst_output(struct net net, struct sock sk, struct sk_buff skb) ^ ~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:848:35: note: (near initialization for ‘ipfw_ops[0].hook’) ~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:852:17: error: unknown field ‘owner’ specified in initializer SET_MOD_OWNER ^ In file included from include/linux/linkage.h:6:0, from include/linux/kernel.h:6, from include/linux/list.h:8, from include/linux/msg.h:4, from ~/Practice/netemu/dummynet/kipfw-mod/../glue.h:101, from :0: include/linux/export.h:34:21: error: excess elements in struct initializer [-Werror]

define THIS_MODULE (&__this_module)

                 ^

~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:842:32: note: in expansion of macro ‘THIS_MODULE’

define SET_MOD_OWNER .owner = THIS_MODULE,

                            ^

~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:852:17: note: in expansion of macro ‘SET_MOD_OWNER’ SET_MOD_OWNER ^ include/linux/export.h:34:21: note: (near initialization for ‘ipfw_ops[0]’)

define THIS_MODULE (&__this_module)

                 ^

~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:842:32: note: in expansion of macro ‘THIS_MODULE’

define SET_MOD_OWNER .owner = THIS_MODULE,

                            ^

~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:852:17: note: in expansion of macro ‘SET_MOD_OWNER’ SET_MOD_OWNER ^ ~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:855:35: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] .hook = call_ipfw, ^ ~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:855:35: note: (near initialization for ‘ipfw_ops[1].hook’) ~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:859:3: error: unknown field ‘owner’ specified in initializer SET_MOD_OWNER ^ In file included from include/linux/linkage.h:6:0, from include/linux/kernel.h:6, from include/linux/list.h:8, from include/linux/msg.h:4, from ~/Practice/netemu/dummynet/kipfw-mod/../glue.h:101, from :0: include/linux/export.h:34:21: error: excess elements in struct initializer [-Werror]

define THIS_MODULE (&__this_module)

                 ^

~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:842:32: note: in expansion of macro ‘THIS_MODULE’

define SET_MOD_OWNER .owner = THIS_MODULE,

                            ^

~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:859:3: note: in expansion of macro ‘SET_MOD_OWNER’ SET_MOD_OWNER ^ include/linux/export.h:34:21: note: (near initialization for ‘ipfw_ops[1]’)

define THIS_MODULE (&__this_module)

                 ^

~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:842:32: note: in expansion of macro ‘THIS_MODULE’

define SET_MOD_OWNER .owner = THIS_MODULE,

                            ^

~/Practice/netemu/dummynet/kipfw-mod/ipfw2_mod.c:859:3: note: in expansion of macro ‘SET_MOD_OWNER’ SET_MOD_OWNER

kabo commented 7 years ago

I'm getting the same error. Did you find a solution?

kabo commented 7 years ago

I managed to get by the first error by disabling IPv6 (Global build settings > uncheck "Enable IPv6 support in packages")

Next error seems to be because the signature for dst_output changed in linux 4.4 compared to 4.3.

Compare

http://elixir.free-electrons.com/linux/v4.3.6/source/include/net/dst.h#L494

to

http://elixir.free-electrons.com/linux/v4.4/source/include/net/dst.h#L490

Anyone have a patch for this change?