From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20041217 Description of problem: Compiling the Cisco 3000 VPN client modules has worked flawlessly on other RedHat releases and works in 10.0 slackware, but on Fedora Core 3, the compile results is errors reported on inlined functions. This is the output of a simple 'make' which should build the vpn client software and kernel module: booger[51] uname -a Linux booger 2.6.10-1.760_FC3 #1 Wed Feb 2 00:14:23 EST 2005 i686 i686 i386 GNU/Linux booger[52] gcc --version gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3) Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. booger[53] make make -C /lib/modules/2.6.10-1.760_FC3/build SUBDIRS=/home/neilos/src/vpnclient/vpnclient modules make[1]: Entering directory `/lib/modules/2.6.10-1.760_FC3/build' CC [M] /home/neilos/src/vpnclient/vpnclient/linuxcniapi.o CC [M] /home/neilos/src/vpnclient/vpnclient/frag.o CC [M] /home/neilos/src/vpnclient/vpnclient/IPSecDrvOS_linux.o CC [M] /home/neilos/src/vpnclient/vpnclient/interceptor.o /home/neilos/src/vpnclient/vpnclient/interceptor.c: In function `add_netdev': /home/neilos/src/vpnclient/vpnclient/interceptor.c:59: sorry, unimplemented: inlining failed in call to 'supported_device': function body not available /home/neilos/src/vpnclient/vpnclient/interceptor.c:245: sorry, unimplemented: called from here /home/neilos/src/vpnclient/vpnclient/interceptor.c: In function `recv_ip_packet_handler': /home/neilos/src/vpnclient/vpnclient/interceptor.c:607: warning: passing arg 1 of `skb_checksum_help' from incompatible pointer type /home/neilos/src/vpnclient/vpnclient/interceptor.c: In function `do_cni_send': /home/neilos/src/vpnclient/vpnclient/interceptor.c:732: warning: passing arg 1 of `skb_checksum_help' from incompatible pointer type make[2]: *** [/home/neilos/src/vpnclient/vpnclient/interceptor.o] Error 1 make[1]: *** [_module_/home/neilos/src/vpnclient/vpnclient] Error 2 make[1]: Leaving directory `/lib/modules/2.6.10-1.760_FC3/build' make: *** [default] Error 2 Version-Release number of selected component (if applicable): gcc 3.4.2 20041017 Red Hat 3.4.2-6.fc3 How reproducible: Always Steps to Reproduce: 1.unpack vpnclient-linux-4.6.00.0045-k9.tar 2.type 'make' 3.watch it return errors and fail to generate binaries. Actual Results: Compilation failed to complete and the 'make' aborted. Expected Results: Compiled vpn_client software and kernel module. Additional info: Migrating to Fedora Core 3 has made it impossible for me to work from home. I find it hard to believe that code which compiles under earlier versions of gcc now fails.
This is not a GCC bug, but combination of vpnclient bug and kernel "feature". Kernel insists to define inline to inline __attribute__((always_inline)) for certain GCC versions. This attribute is a requirement that the function in question must be inlined or the compilation fails if that is not possible. The problem on vpnclient side is that it declares a function prototype as inline, without defining its body. Simply remove the inline keyword from it and it will work.