When trying to compile bsd-games, the following error occurs during the build: gcc -march=athlon64 -O2 -pipe -fomit-frame-pointer -Wall -W -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-align -Wcast-qual -Wwrite-strings -D_GNU_SOURCE -DSUPPORT_UTMPX -DSUPPORT_UTMP -Iinclude -Idm -c dm/utmpentry.c -o dm/utmpentry.odm/utmpentry.c: In function `getentryx': dm/utmpentry.c:294: error: incompatible types in assignment make: *** [dm/utmpentry.o] Error 1 !!! ERROR: games-misc/bsd-games-2.17 failed. !!! Function src_compile, Line 52, Exitcode 2 !!! emake failed !!! If you need support, post the topmost build error, NOT this status message. Reproducible: Always Steps to Reproduce: 1.emerge -uD world 2. 3. Actual Results: compile error as above Expected Results: clean compilation? Portage 2.0.51.22-r2 (default-linux/amd64/2004.3, gcc-3.4.3, glibc-2.3.5-r1, 2.6.11-gentoo-r3 x86_64) ================================================================= System uname: 2.6.11-gentoo-r3 x86_64 AMD Athlon(tm) 64 Processor 3000+ Gentoo Base System version 1.12.0_pre5 dev-lang/python: 2.3.5, 2.4.1-r1 sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=athlon64 -O2 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr//lib/mozilla/defaults/pref /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-march=athlon64 -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo http://gentoo.eliteitminds.com http://open-systems.ufl.edu/mirrors/gentoo ftp://ftp.ussg.iu.edu/pub/linux/gentoo ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://gentoo.mirrors.tds.net/gentoo http://gentoo.mirrors.tds.net/gentoo ftp://ftp.heanet.ie/pub/gentoo/ http://ftp.heanet.ie/pub/gentoo/ http://gentoo.ccccom.com http://gentoo.inode.at/ ftp://gentoo.inode.at/source/ ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo http://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://gentoo.ccccom.com http://linuv.uv.es/mirror/gentoo/ http://gentoo.mirror.icd.hu/ ftp://ftp.ndlug.nd.edu/pub/gentoo/ http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/ http://gentoo.osuosl.org/ http://ftp.linux.ee/pub/gentoo/distfiles/ ftp://mirrors1.netvisao.pt/gentoo/ ftp://ftp.linux.ee/pub/gentoo/distfiles/ http://gentoo.seren.com/gentoo ftp://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/ http://mirror.aiya.ru/pub/gentoo/" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 16bit 3dnowex X aac aalib acpi4linux aim alsa apache2 avi bash-completion berkdb bitmap-fonts bluetooth bonobo bzlib cdr cjk crypt cups curl dga dvd eds encode esd exif fam foomaticdb fortran ftp gd gdbm gif gnome gphoto2 gstreamer gtk gtk2 gtkhtml guile icq imagemagick imlib jabber java jpeg kde libwww lzw lzw-tiff mad maildir mikmod motif mozilla moznocompose moznoirc moznomail mp3 mpeg msn multilib ncurses nls nvidia offensive ogg oggvorbis opengl pam pam_console pdflib perl png postgres ppds qt quicktime readline sasl sdl spell ssl tcpd tetex tiff truetype-fonts type1-fonts unicode usb userlocales vorbis xml xml2 xmms xpm xv xvid yahoo zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
The problem appears to be with a confusion over the definition of struct utmpx in bits/utmpx.h. If you check the #if statement on line 70 in bits/utmpx.h it evaluates "#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32" to true, and defines struct ut_tv to... 72 struct 73 { 74 __int32_t tv_sec; /* Seconds. */ 75 __int32_t tv_usec; /* Microseconds. */ 76 } ut_tv; /* Time entry was made. */ Instead of... 79 struct timeval ut_tv; /* Time entry was made. */ Furthermore, if you check the sizeofs of utmpx.ut_tv and struct timeval, you get 8 and 16 bytes respectively. dm/utmpentry.c appears to be thinking ut_tv is of type timeval, which in this case it is not. Now correct me if I'm wrong but I don't have multilib enabled, but __WORDSIZE_COMPAT32 is set, this confuses me.
64bit-only issue ... fixed in cvs now