Bug 147446

Summary: inlined function description results in "sorry, unimplemented" message
Product: [Fedora] Fedora Reporter: Neil O'Sullivan <neilos>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED NOTABUG QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 3   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-02-08 08:07:29 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Neil O'Sullivan 2005-02-07 23:36:38 UTC
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.

Comment 1 Jakub Jelinek 2005-02-08 08:07:29 UTC
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.