kernel compile fails. see "Actual Results for details". Reproducible: Always Steps to Reproduce: 1.make menuconfig - enabling ipv6 and ipsec (that should be enough - I have several grsecurity options enabled too - incl. sysctl support for grsecurity. 2. make dep bzImage 3. watch it fail :) Actual Results: make[2]: Entering directory `/usr/src/linux-2.4.20-gentoo-r2/net' rm -f network.o ld -m elf_i386 -r -o network.o socket.o core/core.o ethernet/ethernet.o 802/802.o sched/sched.o netlink/netlink.o ipv4/ipv4.o ipv4/netfilter/netfilter.o ipsec/ipsec.o unix/unix.o key/key.o ipv6/ipv6.o ipv6/netfilter/netfilter.o packet/packet.o netsyms.o sysctl_net.o key/key.o(.data+0x120): multiple definition of `extensions_bitmaps' ipsec/ipsec.o(.data+0x1ec0): first defined here key/key.o(.data+0xe0): multiple definition of `pfkey_v2_ext_bits_c_version' ipsec/ipsec.o(.data+0x1e80): first defined here ld: Warning: size of symbol `pfkey_v2_ext_bits_c_version' changed from 61 to 63 in key/key.o key/key.o(.text+0x1841): In function `pfkey_msg_free': : multiple definition of `pfkey_msg_free' ipsec/ipsec.o(.text+0x1af9b): first defined here key/key.o(.text+0x1629): In function `pfkey_x_kmprivate_build': : multiple definition of `pfkey_x_kmprivate_build' ipsec/ipsec.o(.text+0x1ab25): first defined here key/key.o(.text+0x15a7): In function `pfkey_spirange_build': : multiple definition of `pfkey_spirange_build' ipsec/ipsec.o(.text+0x1aaa3): first defined here key/key.o(.text+0x17c1): In function `pfkey_extensions_free': : multiple definition of `pfkey_extensions_free' ipsec/ipsec.o(.text+0x1af1b): first defined here key/key.o(.text+0x143a): In function `pfkey_prop_build': : multiple definition of `pfkey_prop_build' ipsec/ipsec.o(.text+0x1a937): first defined here ld: Warning: size of symbol `pfkey_prop_build' changed from 184 to 185 in key/key.o key/key.o(.text+0x77d): In function `pfkey_proto_init': : multiple definition of `pfkey_proto_init' ipsec/ipsec.o(.text+0x839f): first defined here key/key.o(.bss+0x0): multiple definition of `pfkey_registered_sockets' ipsec/ipsec.o(.bss+0x660): first defined here key/key.o(.text+0x1645): In function `pfkey_x_satype_build': : multiple definition of `pfkey_x_satype_build' ipsec/ipsec.o(.text+0x1ab41): first defined here key/key.o(.text+0xf3d): In function `pfkey_lifetime_build': : multiple definition of `pfkey_lifetime_build' ipsec/ipsec.o(.text+0x1a3de): first defined here ld: Warning: size of symbol `pfkey_lifetime_build' changed from 200 to 193 in key/key.o key/key.o(.text+0x6ff8): In function `ipsec_sysctl_unregister': : multiple definition of `ipsec_sysctl_unregister' ipsec/ipsec.o(.text+0x7c21): first defined here key/key.o(.text+0x16b7): In function `pfkey_msg_build': : multiple definition of `pfkey_msg_build' ipsec/ipsec.o(.text+0x1ad5e): first defined here ld: Warning: size of symbol `pfkey_msg_build' changed from 425 to 246 in key/key.o key/key.o(.text+0x0): In function `pfkey_msg_interp': : multiple definition of `pfkey_msg_interp' ipsec/ipsec.o(.text+0x91a4): first defined here ld: Warning: size of symbol `pfkey_msg_interp' changed from 354 to 650 in key/key.o key/key.o(.data+0x4): multiple definition of `pfkey_open_sockets' ipsec/ipsec.o(.data+0x8c4): first defined here key/key.o(.text+0x17ad): In function `pfkey_extensions_init': : multiple definition of `pfkey_extensions_init' ipsec/ipsec.o(.text+0x1af07): first defined here key/key.o(.text+0x5d0): In function `pfkey_get_info': : multiple definition of `pfkey_get_info' ipsec/ipsec.o(.text+0x80d1): first defined here key/key.o(.text+0xe71): In function `pfkey_sa_build': : multiple definition of `pfkey_sa_build' ipsec/ipsec.o(.text+0x1a311): first defined here ld: Warning: size of symbol `pfkey_sa_build' changed from 205 to 204 in key/key.o key/key.o(.data+0x20): multiple definition of `pfkey_ops' ipsec/ipsec.o(.data+0x8e0): first defined here key/key.o(.text+0x1434): In function `pfkey_sens_build': : multiple definition of `pfkey_sens_build' ipsec/ipsec.o(.text+0x1a931): first defined here key/key.o(.text+0x48fc): In function `ipsec_sa_put': : multiple definition of `ipsec_sa_put' ipsec/ipsec.o(.text+0x151): first defined here ld: Warning: size of symbol `ipsec_sa_put' changed from 88 to 94 in key/key.o key/key.o(.text+0x724): In function `pfkey_cleanup': : multiple definition of `pfkey_cleanup' ipsec/ipsec.o(.text+0x8284): first defined here ld: Warning: size of symbol `pfkey_cleanup' changed from 283 to 89 in key/key.o key/key.o(.data+0x80): multiple definition of `pfkey_v2_build_c_version' ipsec/ipsec.o(.data+0x1e40): first defined here ld: Warning: size of symbol `pfkey_v2_build_c_version' changed from 58 to 67 in key/key.o key/key.o(.text+0x1276): In function `pfkey_ident_build': : multiple definition of `pfkey_ident_build' ipsec/ipsec.o(.text+0x1a7e1): first defined here ld: Warning: size of symbol `pfkey_ident_build' changed from 336 to 446 in key/key.o key/key.o(.text+0x28a): In function `pfkey_list_remove_socket': : multiple definition of `pfkey_list_remove_socket' ipsec/ipsec.o(.text+0x7c30): first defined here key/key.o(.text+0x2da): In function `pfkey_upmsg': : multiple definition of `pfkey_upmsg' ipsec/ipsec.o(.text+0x7cc7): first defined here ld: Warning: size of symbol `pfkey_upmsg' changed from 514 to 519 in key/key.o key/key.o(.text+0x4e1): In function `pfkey_registered_get_info': : multiple definition of `pfkey_registered_get_info' ipsec/ipsec.o(.text+0x7f9f): first defined here key/key.o(.text+0x58d): In function `pfkey_list_insert_socket': : multiple definition of `pfkey_list_insert_socket' ipsec/ipsec.o(.text+0x804b): first defined here key/key.o(.text+0x6ac): In function `pfkey_init': : multiple definition of `pfkey_init' ipsec/ipsec.o(.text+0x81ad): first defined here ld: Warning: size of symbol `pfkey_init' changed from 215 to 120 in key/key.o key/key.o(.text+0xdd8): In function `pfkey_msg_hdr_build': : multiple definition of `pfkey_msg_hdr_build' ipsec/ipsec.o(.text+0x1a278): first defined here key/key.o(.text+0x14f3): In function `pfkey_supported_build': : multiple definition of `pfkey_supported_build' ipsec/ipsec.o(.text+0x1a9ef): first defined here key/key.o(.text+0x1173): In function `pfkey_key_build': : multiple definition of `pfkey_key_build' ipsec/ipsec.o(.text+0x1a6de): first defined here key/key.o(.data+0x8): multiple definition of `pfkey_family_ops' ipsec/ipsec.o(.data+0x8c8): first defined here key/key.o(.data+0x0): multiple definition of `pfkey_sock_list' ipsec/ipsec.o(.data+0x8c0): first defined here key/key.o(.text+0x6fe4): In function `ipsec_sysctl_register': : multiple definition of `ipsec_sysctl_register' ipsec/ipsec.o(.text+0x7bfc): first defined here ld: Warning: size of symbol `ipsec_sysctl_register' changed from 37 to 20 in key/key.o key/key.o(.text+0xffe): In function `pfkey_address_build': : multiple definition of `pfkey_address_build' ipsec/ipsec.o(.text+0x1a4a6): first defined here ld: Warning: size of symbol `pfkey_address_build' changed from 568 to 373 in key/key.o make[2]: *** [network.o] Error 1 make[2]: Leaving directory `/usr/src/linux-2.4.20-gentoo-r2/net' make[1]: *** [first_rule] Error 2 make[1]: Leaving directory `/usr/src/linux-2.4.20-gentoo-r2/net' make: *** [_dir_net] Error 2 Expected Results: finished compiling :)
please post your kernel .config that was in use when you received the compile failure. thanks, Jay
Created attachment 9650 [details] The kernel config used when the compile failed. I got this - from running make oldconfig - and then enabling ipv6 (and ipsec for ipv6 and ipv4) and grsecurity stuff.
I have a similar error. The kernel compiles fine with any IPSEC options. However, if I compile with IPSEC (which requires Authentication Header or Encapsulating Security Payload) and Authentication Header, I receive an error. This only occured after upgrading to Gentoo-sources 2.4.20r2, it did not occur with Gentoo 2.4.19r10. x x [*] IP Security Protocol (FreeS/WAN IPSEC) x x x x --- IPSec options (FreeS/WAN) x x x x [ ] IPSEC: IP-in-IP encapsulation (tunnel mode) x x x x [*] IPSEC: Authentication Header x x x x [ ] HMAC-MD5 authentication algorithm x x x x [ ] HMAC-SHA1 authentication algorithm x x x x [ ] IPSEC: Encapsulating Security Payload x x x x [ ] IPSEC Modular Extensions x x x x [ ] IPSEC: IP Compression x x x x [ ] IPSEC Debugging Option x x x x [ ] IPSEC NAT-Traversal x x pfkey_v2_build.c: In function `pfkey_address_build': pfkey_v2_build.c:393: sizeof applied to an incomplete type pfkey_v2_build.c:394: warning: implicit declaration of function `in6_ntop' pfkey_v2_build.c:394: dereferencing pointer to incomplete type make[3]: *** [pfkey_v2_build.o] Error 1 make[3]: Leaving directory `/usr/src/linux-2.4.20-gentoo-r2/net/key' make[2]: *** [first_rule] Error 2 make[2]: Leaving directory `/usr/src/linux-2.4.20-gentoo-r2/net/key' make[1]: *** [_subdir_key] Error 2 make[1]: Leaving directory `/usr/src/linux-2.4.20-gentoo-r2/net' make: *** [_dir_net] Error 2
This should have been: The kernel compiles fine WITHOUT any IPSEC options.
Well as all the errors are related to pfkey and ipsec - the kernel will probably compile just fine without IPSEC (haven't tried as it would then be unusable for me). I'm using 2.4.20-gentoo-r1 and it works fine and compiles fine too - with IPSEC and IPv6 :)
Same problem here, there is also some information in the forums. http://forums.gentoo.org/viewtopic.php?t=43332 Simon
It looks to me like FreeS/WAN and USAGI don't coexist well. USAGI adds the linux/net/key directory which duplicates functionality in linux/net/ipsec.
Well that' can be quite true - as gentoo-sources-2.4.20-r1 also contains Freeswan and USAGI - and it compiles fine - I'm even using it :)
gentoo-sources-2.4.20-r1 does not have a USAGI patch. Look for an updated sources soon which fixes this issue (and a bunch more). My guess is I'll have the docs (to go with the code updates) later today (10Apr2003). Jay
if gentoo-sources-2.4.20-r1 doesn't have USAGI - then howcome I can select IPSec for IPv6? I didn't think any other projects offered that?
How long before these updates will be available?
sorry, we had some memory leaks to work out from ck5 patches in this kernel, so things were delayed. should be real soon as i've packaged out to testors and all seems well from their feedback. here's a listing of some of the changes: * Added latest ck5 (12Apr2003) * Added support for either rmap(default) or aavm (your choice) * Added support for evms 2.0 (user selects 1.2.1 or 2.0). evms 1.2.1 default. * Added support for nforce2 ide & audio * ext3 fixes * jfs fixes - 1.1.1 + xattr & acl * update ntfs to 2.1.2a * grsecurity bumped to 1.9.9f (this contains the ptrace fix) * SuperFreeS/WAN up to 1.9.6.1 * Readded missing ciphers from patch-int * Fixed a number of USAGI issues (but some still remain). * Updated adaptec 79xx to 18Mar2003 version thanks, Jay
FWIW, I just tried to install Gentoo 1.4 RC4 fresh on my Athlon box, and had to disable IPsec to get the kernel to compile cleanly. Although I'm not using IPv6 (which requires IPsec), I wanted to experiment with IPsec capabilities. It seems in general that RC4 is less stable than RC3. Even basic things like useradd don't seem to work AT ALL.
Regarding comments 3 and 13, I get the same error when I compile with IPSec built-in to the kernel. Try compiling IPSec as a module, works fine. Note: this is without IPv6.
those of you with this issue, please try pfeifer-sources-2.4.20_pre8 - I've split out USAGI to not cause issues. the known issues seem to be solved. Also, since this config attached has ipt_realm selected, you'll need to enable CONFIG_NET_CLS_ROUTE4 or it will fail as per the docs and bug 17870. if using 'make menuconfig' Networking options ---> QoS and/or fair queueing ---> [*] QoS and/or fair queueing <down a few options...> [*] Packet classifier API (NEW) <M> Routing table based classifier <--- that's it :) Jay
those of you needing this use pfeifer-sources-2.4.20_pre8 or higher - you should really use pre10 since it is the latest as has a few minor fixes and enhancements. Jay