Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 62310 - Couldn't compile capi4k-utils-20040614 with kernel 2.6.8.1
Summary: Couldn't compile capi4k-utils-20040614 with kernel 2.6.8.1
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Tim Yamin (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-08-30 16:17 UTC by tuXXer
Modified: 2004-09-17 14:50 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description tuXXer 2004-08-30 16:17:58 UTC
Trying to emerge capi4k-utils-20040614 (maybe other versions, too) with kernel 2.6.8.1 leads to an error, furthermore a new version is available (2004-08-10).

Here the stacktrace:

Calculating dependencies ...done!
>>> emerge (1 of 1) net-dialup/capi4k-utils-20040614 to /
>>> md5 src_uri ;-) capi4k-utils-2004-06-14.tar.gz
>>> Unpacking source...
>>> Unpacking capi4k-utils-2004-06-14.tar.gz to /var/tmp/portage/capi4k-utils-20040614/work
 * Applying capi.c.fix...                                                                                                               [ ok ]
>>> Source unpacked.
perl scripts/mk_autoconf.pl
Selected subdirs: capi20 capiinfo avmb1 capiinit rcapid capifax pppdcapiplugin

Running configure in capi20 ...

checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking whether make sets $(MAKE)... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for a BSD-compatible install... /bin/install -c
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking for egrep... grep -E
checking for ld used by gcc... /usr/i686-pc-linux-gnu/bin/ld
checking if the linker (/usr/i686-pc-linux-gnu/bin/ld) is GNU ld... yes
checking for /usr/i686-pc-linux-gnu/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... pass_all
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking for g77... g77
checking whether we are using the GNU Fortran 77 compiler... yes
checking whether g77 accepts -g... yes
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc static flag  works... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by g++... /usr/i686-pc-linux-gnu/bin/ld
checking if the linker (/usr/i686-pc-linux-gnu/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
appending configuration tag "F77" to libtool
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for g77 option to produce PIC... -fPIC
checking if g77 PIC flag -fPIC works... yes
checking if g77 supports -c -o file.o... yes
checking whether the g77 linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking for sed... /bin/sed
checking for ANSI C header files... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking for unistd.h... (cached) yes
checking linux/capi.h usability... no
checking linux/capi.h presence... yes
configure: WARNING: linux/capi.h: present but cannot be compiled
configure: WARNING: linux/capi.h:     check for missing prerequisite headers?
configure: WARNING: linux/capi.h: see the Autoconf documentation
configure: WARNING: linux/capi.h:     section "Present But Cannot Be Compiled"
configure: WARNING: linux/capi.h: proceeding with the preprocessor's result
configure: WARNING: linux/capi.h: in the future, the compiler will take precedence
configure: WARNING:     ## ------------------------------------------ ##
configure: WARNING:     ## Report this to the AC_PACKAGE_NAME lists.  ##
configure: WARNING:     ## ------------------------------------------ ##
checking for linux/capi.h... yes
checking for select... yes
configure: creating ./config.status
config.status: creating Makefile

Running configure in capiinfo ...

creating cache ./config.cache
checking for a BSD compatible install... /bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking for a BSD compatible install... /bin/install -c
checking for gcc... gcc
checking whether the C compiler (gcc -march=pentium4 -O3 -pipe -fomit-frame-pointer ) works... yes
checking whether the C compiler (gcc -march=pentium4 -O3 -pipe -fomit-frame-pointer ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for linux/capi.h... yes
updating cache ./config.cache
creating ./config.status
creating Makefile
creating config.h
config.h is unchanged

Running configure in avmb1 ...

checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for a BSD-compatible install... /bin/install -c
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking for unistd.h... (cached) yes
checking whether gcc needs -traditional... no
checking for mmap... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating avmcapictrl.man

Running configure in capiinit ...

creating cache ./config.cache
checking for a BSD compatible install... /bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking for a BSD compatible install... /bin/install -c
checking for gcc... gcc
checking whether the C compiler (gcc -march=pentium4 -O3 -pipe -fomit-frame-pointer ) works... yes
checking whether the C compiler (gcc -march=pentium4 -O3 -pipe -fomit-frame-pointer ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for linux/capi.h... yes
checking for capi20.h... no
updating cache ./config.cache
creating ./config.status
creating Makefile
creating config.h

Running configure in rcapid ...

creating cache ./config.cache
checking for a BSD compatible install... /bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking for gcc... gcc
checking whether the C compiler (gcc -march=pentium4 -O3 -pipe -fomit-frame-pointer ) works... yes
checking whether the C compiler (gcc -march=pentium4 -O3 -pipe -fomit-frame-pointer ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking for a BSD compatible install... /bin/install -c
checking for fcntl.h... yes
checking for sys/ioctl.h... yes
checking whether gcc needs -traditional... no
checking for ANSI C header files... yes
checking return type of signal handlers... void
checking for socket... yes
updating cache ./config.cache
creating ./config.status
creating Makefile

Running configure in capifax ...

creating cache ./config.cache
checking for a BSD compatible install... /bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking for a BSD compatible install... /bin/install -c
checking for gcc... gcc
checking whether the C compiler (gcc -march=pentium4 -O3 -pipe -fomit-frame-pointer ) works... yes
checking whether the C compiler (gcc -march=pentium4 -O3 -pipe -fomit-frame-pointer ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/ioctl.h... yes
checking for unistd.h... yes
updating cache ./config.cache
creating ./config.status
creating Makefile
creating config.h
config.h is unchanged

Running make config in pppdcapiplugin ...

make[1]: Entering directory `/var/tmp/portage/capi4k-utils-20040614/work/capi4k-utils/pppdcapiplugin'
nothing to configure
make[1]: Leaving directory `/var/tmp/portage/capi4k-utils-20040614/work/capi4k-utils/pppdcapiplugin'
set -e; for i in `echo  capi20 capiinfo avmb1 capiinit rcapid capifax pppdcapiplugin`; do make -C $i all; done
make[1]: Entering directory `/var/tmp/portage/capi4k-utils-20040614/work/capi4k-utils/capi20'
gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"libcapi20\" -DVERSION=\"2.0.6\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LINUX_CAPI_H=1 -DHAVE_SELECT=1  -I. -I.      -march=pentium4 -O3 -pipe -fomit-frame-pointer -c capidyn.c
/bin/sh ./libtool --mode=compile gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"libcapi20\" -DVERSION=\"2.0.6\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LINUX_CAPI_H=1 -DHAVE_SELECT=1  -I. -I.      -march=pentium4 -O3 -pipe -fomit-frame-pointer -c capi20.c
In file included from capidyn.c:23:
/usr/include/linux/capi.h:80: error: variable or field `__user' declared void
/usr/include/linux/capi.h:80: error: syntax error before '*' token
/usr/include/linux/capi.h:115: error: syntax error before "capi_manufacturer_cmd"
/usr/include/linux/capi.h:117: error: syntax error before '}' token
mkdir .libs
 gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"libcapi20\"-DVERSION=\"2.0.6\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LINUX_CAPI_H=1 -DHAVE_SELECT=1 -I. -I. -march=pentium4 -O3 -pipe -fomit-frame-pointer -c capi20.c  -fPIC -DPIC -o .libs/capi20.o
make[1]: *** [capidyn.o] Error 1
make[1]: *** Waiting for unfinished jobs....
In file included from capi20.c:94:
/usr/include/linux/capi.h:80: error: variable or field `__user' declared void
/usr/include/linux/capi.h:80: error: syntax error before '*' token
/usr/include/linux/capi.h:115: error: syntax error before "capi_manufacturer_cmd"
/usr/include/linux/capi.h:117: error: syntax error before '}' token
capi20.c:117: error: syntax error before "ioctl_data"
capi20.c:117: warning: data definition has no type or storage class
capi20.c: In function `capi20_register':
capi20.c:319: error: request for member `rparams' in something not a structure or union
capi20.c:320: error: request for member `rparams' in something not a structure or union
capi20.c:321: error: request for member `rparams' in something not a structure or union
capi20.c:330: error: request for member `errcode' in something not a structure or union
capi20.c:350: error: request for member `rparams' in something not a structure or union
capi20.c:351: error: request for member `rparams' in something not a structure or union
capi20.c:352: error: request for member `rparams' in something not a structure or union
capi20.c:361: error: request for member `errcode' in something not a structure or union
capi20.c: In function `capi20_put_message':
capi20.c:458: error: request for member `errcode' in something not a structure or union
capi20.c: In function `capi20_get_message':
capi20.c:512: warning: cast from pointer to integer of different size
capi20.c: In function `capi20_get_manufacturer':
capi20.c:554: error: request for member `contr' in something not a structure or union
capi20.c:557: error: request for member `manufacturer' in something not a structure or union
capi20.c: In function `capi20_get_version':
capi20.c:567: error: request for member `contr' in something not a structure or union
capi20.c:570: error: request for member `version' in something not a structure or union
capi20.c: In function `capi20_get_serial_number':
capi20.c:579: error: request for member `contr' in something not a structure or union
capi20.c:582: error: request for member `serial' in something not a structure or union
capi20.c: In function `capi20_get_profile':
capi20.c:593: error: request for member `contr' in something not a structure or union
capi20.c:599: error: request for member `errcode' in something not a structure or union
capi20.c:602: error: request for member `profile' in something not a structure or union
capi20.c:604: error: request for member `profile' in something not a structure or union
capi20.c:605: error: request for member `profile' in something not a structure or union
make[1]: *** [capi20.lo] Error 1
make[1]: Leaving directory `/var/tmp/portage/capi4k-utils-20040614/work/capi4k-utils/capi20'
make: *** [subtargets] Error 2

!!! ERROR: net-dialup/capi4k-utils-20040614 failed.
!!! Function src_compile, Line 44, Exitcode 2
!!! (no error message)


Reproducible: Always
Steps to Reproduce:
1. Installing linux26-headers-2.6.8.1
2. Installing a 2.6.8.1 version kernel
3. emerge capi4k-utils

Actual Results:  
Couldn't get capi4k-utils working. It fails. Therefore no i-net with gentoo.

Expected Results:  
Installing error-free.

Portage 2.0.50-r10 (default-x86-2004.2, gcc-3.3.4, glibc-2.3.3.20040420-r1, 2.6.8.1)
=================================================================
System uname: 2.6.8.1 i686 Intel(R) Pentium(R) 4 CPU 2.53GHz
Gentoo Base System version 1.5.3
Autoconf: sys-devel/autoconf-2.59-r4
Automake: sys-devel/automake-1.8.5-r1
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3/share/config /usr/share/config /usr/share/texmf/dvipdfm/config/
/usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/
/usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox"
GENTOO_MIRRORS="ftp://ftp.tu-clausthal.de/pub/linux/gentoo
http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror http://gentoo.osuosl.org"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X X509 aac aalib acl acpi acpi4linux activefilter aim alsa ansi apache2
arts async audiofile avi berkdb bidi bluetooth bootsplash bsh bzlib cap caps
cddb cdf cdparanoia cdr cdrom cgi chroot clanJavaScript clanVoice codecs cpdflib
crypt ctype cups curl curlwrappers dba dio directfb divx4linux djbfft dnd doc
dts dv dvb dvd dvdr dvdread encode erandom esd exif expat extensions f77 faac
faad fam fastcgi fax fbcon fdftk ffmpeg fftw flac flash flood foomaticdb
freetype gcj gd gdbm geoip ggi gif gimp gimpprint glade glut gnome gnutls
gphoto2 gps graphviz gs gstreamer gtk gtk2 gtkhtml guile hbci hdf hub
hyperwave-api iconv icq idea ieee1394 image imagemagick imap imlib inifile
innodb intl iodbc ipv6 irda irmc isdn jabber jack jack-tmpfs java javadoc
javamail javascript jce jikes joystick jp2 jpeg junit justify jython kde
kerberos latex lcd lcms ldap lesstif libcaca libdsk libg++ libwww linguas_de
lirc lm_sensors log4j ltsp lua lzo lzw lzw-tiff mad mailbox maildir mailwrapper
mbox mcve md5sum mhash mikmod mime ming mixer mmap mmx mmx2 mng moneyplex monkey
motif mozdevelop mozilla mozsvg mp3 mpeg mpeg4 mplayer msession msnmysql mysqli
nas ncurses network nis nls nptl ntlm nvidia nviz objc odbc oggvorbis opengl
oscar oss pam pcntl pcre pcsc-lite pda pdf pdflib perl pfpro php physfs pic pie
png posix ppds print procmail pthreads pwdb python qt quicktime readline regexp
rtc ruby samba sasl scanner sdl session skey slang slp smartcard smime sndfile
snmp soap sockets socks5 sox spamassassin speex spell spl sse sse2 ssl svg svga
sysvipc szip tcltk tcpd tetex theora tidy tiff timidity tokenizer transcode
truetype unicode usb video_cards_nvidia wddx wifi wmf wsconvert wxwin wxwindows
x86 xalan xerces xine xinerama xml xml-rpc xml2 xmms xosd xpm xprint xsl xv xvid
xvmc yahoo yaz yv12 zlib"
Comment 1 pi 2004-09-03 18:03:38 UTC
you should have a look at but #52001 - It's not a real duplicate but it's somewhat related. I also posted some workaround there and there are ebuilds for capi4k-utils-20040810, too.

the workaround for the compile problem is to change /usr/include/linux/capi.h line 80 so that it looks like those from the older linux26-headers

replace /usr/include/linux/capi.h:80
   void __user *data;
with
   void *data;
after that capi4k-utils will compile fine again.

I don't know what the impact for other programs depending on capi.h is (if there are any), so maybe someone more experienced should have a look at it. What I can say is that capi4k-utils do compile and I can go online with fcdsl... so you should give it a try (but remember that you have changed capi.h just in case something else goes wrong;-)
Comment 2 Tim Yamin (RETIRED) gentoo-dev 2004-09-06 13:05:42 UTC
If you merge a fresh set of linux26-headers, and on line 17 of /usr/include/linux/capi.h you add "#include <linux/compiler.h>" does the problem also go away?
Comment 3 tuXXer 2004-09-07 03:28:50 UTC
Well, the trick with

replace /usr/include/linux/capi.h:80
   void __user *data;
with
   void *data;
after that capi4k-utils will compile fine again.

should work, because I'd read about it in some forums. 

Because of problems with linux26-headers-2.6.8.1 I replaced it with version 2.6.7, so I couldn't verify that the second solution works. Sorry....
Comment 4 pi 2004-09-15 01:03:18 UTC
If you merge a fresh set of linux26-headers, and on line 17 of /usr/include/linux/capi.h you add "#include <linux/compiler.h>" does the problem also go away?

Ok, everything seems to be fine, so I think the solution that Tim Yamin has posted here is the nicer way to resolve this problem
Comment 5 Tim Yamin (RETIRED) gentoo-dev 2004-09-17 14:50:16 UTC
Fixed - "emerge sync" and remerge your headers and you should no longer experience this issue with 2.6.8.1 headers. If you still have any issues then please reopen this bug.