emerge =gnome-base/gnome-applets-2.8.2 fails with sys-kernel/linux-headers-2.6.10 on amd64 2005.0 profile. In file included from modemlights.c:44: /usr/include/linux/if_ppp.h:95: error: parse error before '*' token /usr/include/linux/if_ppp.h:98: error: parse error before '}' token make[3]: *** [modemlights.o] Error 1 make[3]: Leaving directory `/home/portage/tmp/portage/gnome-applets-2.8.2/work/gnome-applets-2.8.2/modemlights' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/portage/tmp/portage/gnome-applets-2.8.2/work/gnome-applets-2.8.2/modemlights' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/portage/tmp/portage/gnome-applets-2.8.2/work/gnome-applets-2.8.2' make: *** [all] Error 2 Reproducible: Always Steps to Reproduce: 1. 2. 3. Portage 2.0.51-r15 (default-linux/amd64/2005.0, gcc-3.4.3-20050110, glibc-2.3.4.20050125-r0, 2.6.10-gentoo-r7 x86_64) ================================================================= System uname: 2.6.10-gentoo-r7 x86_64 AMD Athlon(tm) 64 Processor 3200+ Gentoo Base System version 1.6.9 Python: dev-lang/python-2.3.5 [2.3.5 (#1, Feb 18 2005, 12:50:00)] distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.3 [enabled] dev-lang/python: 2.3.5 sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.4 sys-devel/binutils: 2.15.92.0.2-r4 sys-devel/libtool: 1.5.10-r5 virtual/os-headers: 2.6.10 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CFLAGS="-march=athlon64 -O2 -pipe -fweb -ftracer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /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=athlon64 -O2 -pipe -fweb -ftracer" DISTDIR="/mnt/nfs/home/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox" GENTOO_MIRRORS="ftp://gentoo.blueyonder.co.uk/mirrors/gentoo ftp://pandemonium.tiscali.de/pub/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/home/portage/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/overlays/main /usr/local/overlays/mplayer32-bin" SYNC="rsync://trantor/gentoo-portage" USE="amd64 S3TC X aalib acpi alsa avi berkdb bitmap-fonts cdr crypt cups curl dga divx4linux dvd dvdr dvdread eds encode escreen etwin evo f77 faad fam fbcon flac flash fortran gd gdbm gif gimpprint gnome gphoto2 gpm gstreamer gtk gtk2 gtkhtml hal imagemagick imap imlib ipv6 java javascript jp2 jpeg ldap libwww lzw lzw-tiff mad maildir mikmod mjpeg motif mozaccess-builtin mozilla mozirc mozxmlterm mpeg mysql ncurses nls nptl nvidia offensive oggvorbis opengl oss pam perl plotutils png python quicktime readline samba sdl slang sox speex spell ssl tcpd tetex theora tiff truetype truetype-fonts type1-fonts usb userlocales xface xine xinerama xml2 xmms xpm xrandr xv xvid xvmc zlib video_cards_nvidia" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS
I doubt /usr/include/linux/if_ppp.h is actually broken, can you please try CFLAGS="-march=athlon64 -O2 -pipe" emerge =gnome-applets-2.8.2. Any suggestions amd64 team?
same error with CFLAGS="-march=athlon64 -O2 -pipe".
Mike, /usr/include/linux/if_ppp.h:95 is following line: struct ppp_option_data { __u8 *ptr; __u32 length; int transmit; }; __u8 should be defined, but let's have a look after preprocessing: $ gcc -E if_ppp.h ... struct ppp_option_data { __u8 *ptr; __u32 length; int transmit; }; ... there is not a single #include in that file, and __u8 isn't defined in it, so it will fail. blubb@aqua /usr/include $ grep -R "define __u8" * security/pam_client.h:# define __u8 unsigned char looks like this is the only place __u8 is defined, but there are lots of files that use __u8 in /usr/include/linux. this is obviously a kernel error, so i reassign it to
not sure if this is related but net-analyzer/iptraf-2.7.0-r1 fails with: /usr/include/netinet/../gentoo-multilib/amd64/netinet/in.h:64:1: warning: this is the location of the previous definition In file included from /usr/include/net/if.h:7, from tcptable.h:27, from iptraf.c:54: /usr/include/net/../gentoo-multilib/amd64/net/if.h:45: error: parse error before numeric constant /usr/include/net/../gentoo-multilib/amd64/net/if.h:111: error: redefinition of `struct ifmap' /usr/include/net/../gentoo-multilib/amd64/net/if.h:126: error: redefinition of `struct ifreq' /usr/include/net/../gentoo-multilib/amd64/net/if.h:176: error: redefinition of `struct ifconf' make: *** [iptraf.o] Error 1 make: *** Waiting for unfinished jobs.... make: *** [itrafmon.o] Error 1
Simon, it's actually defined in <asm/types.h> obz@azure include $ grep __u8 asm/types.h typedef unsigned char __u8; Okay, so a few things: ppp support is added by using #include <net/ppp_defs.h>, as well as #include <linux/if_ppp.h>. <net/ppp_defs.h> contains: #include <asm/types.h> #include <linux/ppp_defs.h> So by the time <linux/if_ppp.h> is included, the type __u8 has been defined by the inclusion of <asm/types.h>. You could check by untarring the gnome-applets source, and then looking at the output of gcc -E gnome-applets-2.8.2/modemlights/modemlights.c (using the c source as the .h pulls in <net/ppp_defs.h> and then the .c pulls in the relevant if_ppp.h depending on the host system). You'll see asm/types defined there. Arguably (I'm not sure of the specifics) <linux/if_ppp.h> could include <asm/types.h> because it does use a type that's not directly defined (__u8). However, in this case that _isn't_ the problem, because <asm/types.h> is allready included and __u8 is defined. Also, why don't I see this problem on linux-headers-2.6.10? It all points to something either locally specific to this user, or amd64 specific perhaps (I don't have a box to test on), hence, amd64 team? any suggestions. The fact that the user has also posted more breaking builds - a completely different application suggests to me that this might be a local problem.
I get the exact same error on my machine, amd64, linux-headers-2.6.10, and 2005.0 profile. This is a brand new installation, and I migrated to the 2005.0 profile before installing anything besides the base system. I had migrated to the 2005.0 profile on an older installation, but I hadn't upgraded any of these packages since. Here is my emerge info. Gentoo Base System version 1.6.9 Portage 2.0.51.19 (default-linux/amd64/2005.0, gcc-3.4.3-20050110, glibc-2.3.4.20050125-r0, 2.6.11-gentoo-r1 x86_64) ================================================================= System uname: 2.6.11-gentoo-r1 x86_64 Mobile AMD Athlon(tm) 64 Processor 3200+ Python: dev-lang/python-2.3.5 [2.3.5 (#1, Mar 4 2005, 13:04:00)] distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] dev-lang/python: 2.3.5 sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r4 sys-devel/libtool: 1.5.10-r5 virtual/os-headers: 2.6.10 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CFLAGS="-O2 -pipe -march=k8" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -pipe -march=k8" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox" GENTOO_MIRRORS="http://distfiles.gentoo.org/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 X acpi alsa berkdb bitmap-fonts crypt cups esd f77 fam fortran gif gpm gtk imlib ipv6 jp2 jpeg lzw lzw-tiff mp3 ncurses nls nptl opengl oss pam perl png python readline samba ssl tcpd tiff truetype truetype-fonts type1-fonts usb userlocales xml2 xpm xrandr xv zlib" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY I also get this error when emerging synaptics, if it helps. I think it may be related, because I had no issues with it before. x86_64-pc-linux-gnu-gcc -c -O2 -pipe -march=k8 -pedantic -Wall -Wpointer-arith -fno-merge-constants -fno-pic -I. -IXincludes/usr/X11R6/include/X11 -IXincludes/usr/X11R6/include/X11/extensions -IXincludes/usr/X11R6/lib/Server/include -Dlinux -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DSHAPE -DXINPUT -DXKB -DLBX -DXAPPGROUP -DXCSECURITY -DTOGCUP -DDPMSExtension -DPIXPRIV -DPANORAMIX -DRENDER -DGCCUSESGAS -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH -DXFreeXDGA -DXvExtension -DXFree86LOADER -DXFree86Server -DXF86VIDMODE -DSMART_SCHEDULE -DBUILDDEBUG -DX_BYTE_ORDER=X_LITTLE_ENDIAN -DNDEBUG -D__i386__ -DFUNCPROTO=15 -DNARROWPROTO -DIN_MODULE -DXFree86Module -DVERSION="\"0.14.0\"" ps2comm.c In file included from /usr/include/bits/ioctl-types.h:7, from /usr/include/sys/../gentoo-multilib/x86/sys/ioctl.h:30, from /usr/include/sys/ioctl.h:3, from synaptics.c:59: /usr/include/bits/../gentoo-multilib/amd64/bits/ioctl-types.h:29: error: redefinition of `struct winsize' /usr/include/bits/../gentoo-multilib/amd64/bits/ioctl-types.h:38: error: redefinition of `struct termio' make: *** [synaptics.o] Error 1 make: *** Waiting for unfinished jobs.... In file included from /usr/include/bits/ioctl-types.h:7, from /usr/include/sys/../gentoo-multilib/x86/sys/ioctl.h:30, from /usr/include/sys/ioctl.h:3, from ps2comm.h:4, from ps2comm.c:28: /usr/include/bits/../gentoo-multilib/amd64/bits/ioctl-types.h:29: error: redefinition of `struct winsize' /usr/include/bits/../gentoo-multilib/amd64/bits/ioctl-types.h:38: error: redefinition of `struct termio' make: *** [ps2comm.o] Error 1
As a follow up, it looks like the synaptics driver problem was not related to this. The previous version installed fine. I tried emerging linux-headers-2.6.8.1-r4, and gnome-applets installed fine when using the older headers. I'm just using the old linux-headers as a fix for now.
ok, i now could reproduce it with linux-headers-2.6.10. with 2.6.8.1-r3, it worked fine.. blubb@aqua ~/tmp/gnome-applets-2.8.2/modemlights $ gcc -E modemlights.c > /dev/null In file included from modemlights.c:28: modemlights.h:9:26: panel-applet.h: No such file or directory modemlights.h:30:19: gnome.h: No such file or directory modemlights.c:30:35: libgnomeui/gnome-help.h: No such file or directory blubb@aqua ~/tmp/gnome-applets-2.8.2/modemlights $ gcc -E modemlights.c 2> /dev/null | grep "__u8" typedef unsigned char __u8; __u8 __user *ptr; i'm slightly irritated...
ok, i forgot the -Is, without that the errors disappear, BUT: blubb@aqua ~/tmp/gnome-applets-2.8.2/modemlights $ gcc -DHAVE_CONFIG_H -I. -I. -I.. -I. -I. -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -DORBIT2=1 -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/panel-2.0 -I/usr/include/libgnomeui-2.0 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I//usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 -DGNOMELOCALEDIR=\""/usr/local/share/locale"\" -DVERSION=\""2.8.2"\" -E modemlights.c | grep -C 5 __u8 shows: ... struct ppp_option_data { __u8 __user *ptr; __u32 length; int transmit; }; ... and now let's grep for __user: __u8 __user *ptr; unsigned char __user *ptr; doesn't make much sense to me :) i guess it's irritated because __user isn't defined anywhere. a simple #define __user should help
All of the reports so far are on amd64, and I can't reproduce on x86 or ppc.
Obz, that could be because of types.h: /* Common header file autogenerated by create_ml_includes in multilib.eclass */ #ifdef __i386__ #include "../asm-i386/types.h" #endif /* __i386__ */ #ifdef __x86_64__ #include "../asm-x86_64/types.h" #endif /* __x86_64__ */ only a guess...
Fixed in CVS, emerge sync, remerge headers and things should work. Thanks!