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"
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;-)
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?
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....
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
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.