Compilation of module fails with unresolved symbols. Reproducible: Always Steps to Reproduce: 1. emerge ipp2p 2. modprobe ipt_ipp2p Actual Results: FATAL: Error inserting ipt_ipp2p (/lib/modules/2.6.21-gentoo-r1/ipp2p/ipt_ipp2p.ko): Unknown symbol in module, or unknown parameter (see dmesg) Expected Results: Module loaded dmesg shows: ipt_ipp2p: Unknown symbol ipt_register_match ipt_ipp2p: Unknown symbol ipt_unregister_match
Created attachment 120001 [details, diff] Changes ipt_*_match to xt_*_match This patch fixes the unresolved symbols
Fixed in -r3, but not exactly as you proposed. I'm sure other ipt_* defines will be removed soon, therefore I preferred a more pragmatic approach. Although this is a violation of our policies, the package has been revbumped with the same stable keywords. The old revision had another minor issue on kernels >= 2.6.18, so I decided to preserve keyword status. Thanks!
Created attachment 120021 [details, diff] Pragmatic fix You forgot to #define ipt_match xt_match. ;)
but you fix didn't had it and looks like 2.6.21 still defines ipt_match! are you sure my fix doesn't work for you?
(In reply to comment #4) > but you fix didn't had it and looks like 2.6.21 still defines ipt_match! > are you sure my fix doesn't work for you? > Yes, I'm sure. My first patch had it here: @@ -843,7 +843,7 @@ } -static struct ipt_match ipp2p_match = { +static struct xt_match ipp2p_match = { #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) { NULL, NULL }, "ipp2p", , and the new patch works ok. These is the result of the -r3 patch: make[1]: Entering directory `/usr/src/linux-2.6.21-gentoo-r1' CC [M] /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.o /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:856: error: variable 'ipp2p_match' has initializer but incomplete type /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:870: error: unknown field 'name' specified in initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:870: warning: excess elements in struct initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:870: warning: (near initialization for 'ipp2p_match') /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:871: error: unknown field 'match' specified in initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:871: warning: excess elements in struct initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:871: warning: (near initialization for 'ipp2p_match') /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:872: error: unknown field 'family' specified in initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:872: warning: excess elements in struct initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:872: warning: (near initialization for 'ipp2p_match') /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:873: error: unknown field 'matchsize' specified in initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:873: warning: excess elements in struct initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:873: warning: (near initialization for 'ipp2p_match') /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:874: error: unknown field 'checkentry' specified in initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:874: warning: excess elements in struct initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:874: warning: (near initialization for 'ipp2p_match') /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:875: error: unknown field 'me' specified in initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:875: warning: excess elements in struct initializer /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:875: warning: (near initialization for 'ipp2p_match') /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c: In function 'init': /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:883: warning: passing argument 1 of 'xt_register_match' from incompatible pointer type /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c: In function 'fini': /var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.c:888: warning: passing argument 1 of 'xt_unregister_match' from incompatible pointer type make[2]: *** [/var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2/ipt_ipp2p.o] Error 1 make[1]: *** [_module_/var/tmp/portage/net-firewall/ipp2p-0.8.2-r3/work/ipp2p-0.8.2] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.21-gentoo-r1' make: *** [ipt_ipp2p.ko] Error 2
Sorry about that. The patch has been updated in cvs. Thanks again!