emerge -u rxvt upgraded to 2.7.9. Half way thru the install, the make fails with the following message: gcc -DHAVE_CONFIG_H -I/usr/X11R6/include -march=pentium4 -O3 -pipe -s -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays -ffast-math -DDEBUG_STRICT -I/usr/X11R6/include -I.. -I. -I. -c defaultfont.c -fPIC -DPIC -o .libs/defaultfont.lo In file included from command.c:48: rxvt.h:1036: field `ut' has incomplete type make[1]: *** [command.lo] Error 1 make[1]: *** Waiting for unfinished jobs.... In file included from defaultfont.c:26: rxvt.h:1036: field `ut' has incomplete type make[1]: *** [defaultfont.lo] Error 1 yet, the ebuild continues emerging. As a result, the already installed binary from the previous version is uninstalled and rxvt ebuild is installed with a missing binary. I was expecting the emerge to fail at the point of failed compilation and not continue any further. Portage 2.0.47-r7 (default-x86-1.4, gcc-3.2.2, glibc-2.3.2_pre1-r0) ================================================================= System uname: 2.4.20-gentoo-r1 i686 Intel(R) Pentium(R) 4 CPU 1.80GHz GENTOO_MIRRORS="http://gentoo.oregonstate.edu/ http://distro.ibiblio.org/pub/Linux/distributions/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /opt/jakarta/tomcat/conf /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="/usr/portage.local" USE="x86 oss 3dnow apm avi crypt cups encode gif jpeg libg++ mikmod mmx mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib gtkhtml alsa gdbm berkdb slang readline arts tetex bonobo svga tcltk java guile mysql postgres X sdl gpm tcpd pam libwww ssl perl python esd imlib oggvorbis gnome gtk qt kde motif opengl mozilla cdr scanner xfs" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O3 -pipe -s -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays -ffast-math" CXXFLAGS="-march=pentium4 -O3 -pipe -s -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays -ffast-math" ACCEPT_KEYWORDS="x86 ~x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" FEATURES="sandbox ccache"
When trying to build this by hand, I get the same result after doing a 'make'. However, it comes back with $? = 0. Checking in the makefile, I believe it's happening here: (line 100-101) all allbin alldoc tags: @for I in ${subdirs}; do (cd $$I; ${MAKE} $@ || exit 1); done I believe what's happening is that the "cd src; make all || exit 1" version of this fails with $? = 2, which causes the exit 1 to be called. However, since the for loop still has other values to process, it continues with those, and make never sees the failed src build. Of course, this doesn't address the "field 'ut' has incomplete type" problem itself, just why emerge doesn't stop there and complain.
the same problem happens on ppc...
I've bumped the RXVT ebuild to 2.7.10, in which all of these compile time issues were resolved. Enjoy!