gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I. -DHAVE_GETUSERSHELL -DUSE_SYSLOG -D -DXDMCP -ansi -W -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -DNDEBUG -O2 -march=athlon-x -mmmx -msse -m3dnow -mfpmath=sse -fomit-frame-pointer -D_GNU_SOURCE -c `test -f echo './'`auth.c auth.c: In function `ConvertAuthAddr': auth.c:678: dereferencing pointer to incomplete type auth.c:678: warning: implicit declaration of function `htonl' auth.c: In function `writeLocalAuth': auth.c:995: warning: unused variable `fd' make[3]: *** [auth.o] Error 1 make[3]: Leaving directory `/var/tmp/portage/kdebase-3.1/work/kdebase-3.1/kdm/b make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/kdebase-3.1/work/kdebase-3.1/kdm' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/kdebase-3.1/work/kdebase-3.1' make: *** [all] Error 2 Reproducible: Always Steps to Reproduce: just emerge kdebase Actual Results: errors Expected Results: kdebase rc6 compiled fine... why now it fails with final? Portage 2.0.46-r9 (default-x86-1.4, gcc-3.2.1, glibc-2.3.1-r2) ================================================================= System uname: 2.4.19-gentoo-r10 i686 AMD Athlon(TM) XP 2100+ GENTOO_MIRRORS="http://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo http://www.ibiblio.org/pub/Linux/distributions/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/conf$/usr/kde/3/share/config /usr/X11R6/lib/X11/xkb:/usr/kde/3.1/share/config:/usr/s$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="" USE="x86 oss 3dnow apm avi crypt cups encode gif jpeg libg++ libwww mikmod mmx $nls pdflib png qtmt quicktime spell truetype xml2 xmms xv zlib gtkhtml gdbm ber$readline arts bonobo svga tcltk java guile X sdl gpm tcpd pam ssl perl python e$oggvorbis gnome gtk qt kde motif opengl mozilla" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -O3 -pipe -mmmx -msse -m3dnow -mfpmath=sse -fomit-fram$CXXFLAGS="-march=athlon-xp -O3 -pipe -mmmx -msse -m3dnow -mfpmath=sse -fomit-fr$ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" FEATURES="sandbox ccache"
please attach full build log (kdebase.log from 'emerge kdebase >& kdebase.log')
Created attachment 7862 [details] Requested log I zipped it otherwise it would be 1 mb long
did you change your use flags/cflags/cxxflags after you compiled rc6 and before you compiled 3.1? please try with CFLAGS="" and CXXFLAGS=""
of course not, everything is the same, well i dont know if between rc6 and final something new in portage showed up (like a new gcc release?) but the flags and hardware is the same.
I tried compiling myself auth.c without my flag, but since i didn't want to lose 4 hours seeing this, i just edited auth.c in kdebase/backend/ and removed the march=athlon-xp -O3 -pipe -mmmx -msse -m3dnow -mfpmath=sse -fomit-frame-pointer so it would compile without them , now i go inside kdebase and type make, and i get: gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I. -DHAVE_GETUSERSHELL -DUSE_SYSLOG -DUSE_PAM -DXDMCP -ansi -W -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -DNDEBUG -O2 -D_GNU_SOURCE -c `test -f 'auth.c' || echo './'`auth.c auth.c: In function `ConvertAuthAddr': auth.c:678: dereferencing pointer to incomplete type auth.c:678: warning: implicit declaration of function `htonl' auth.c: In function `writeLocalAuth': auth.c:995: warning: unused variable `fd' /usr/include/bits/socket.h: At top level: auth.c:854: warning: `DefineSelf' defined but not used make[3]: *** [auth.o] Error 1 make[3]: Leaving directory `/var/tmp/portage/kdebase-3.1/work/kdebase-3.1/kdm/backend' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/kdebase-3.1/work/kdebase-3.1/kdm' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/kdebase-3.1/work/kdebase-3.1' make: *** [all] Error 2 the weird thing is that if i go manually inside that dir and compile just as above (without using make) i get the warnings and i dont get the error, but i also dont get auth.o I dont get it :(
"auth.c:678: dereferencing pointer to incomplete type" is the error (it's not a warning) and is the reason for the failure...
Yeah, but i wonder why if it is an error, then it continues and checks the other function lower in the source code. Dan Armak, i hope you can pull some strings with the kde guys, i tried contacting them, havent got an answer, tried the forums too. Should i emerge the masked gcc build? Some other guys have had different problems with kde 3.1 and that has fixed it for them. What about this ccache thing i hear about? The function giving trouble is: static int ConvertAuthAddr (XdmcpNetaddr saddr, int *len, char **addr) { int ret; ret = ConvertAddr(saddr, len, addr); if (ret == FamilyInternet && (struct in_addr *)*addr->adr == htonl(0x7F000001L)) (this is the line making trouble) ret = FamilyLocal; return ret; }
ccache seems to have sometimes broken files in his cache. but the error is different, so i don't think it is your problem here.
kde-devel mailing list have some answers from http://lists.kde.org/?l=kde-devel&m=103600827424162&w=2 that indicates a seriously breoken build. >> remove the line containing "imake" from config.cache (its contents are >> probably empty in your case) and re-run configure. >> >> if it still does not work, check the contents of the XDM_CFLAGS variable >> in the generated makefiles - it should be a rather long line. the imake >> line in config.cache should contain _almost_ the same. >> >It works now. But I had to add #include <netinet/in.h> to auth.c >and change (in daemon.c) setpgrp (0, getpid()); to setpgrp(); However: -auth.c had already netinet/in.h -daemon.c shows: #ifndef CSRG_BASED #if defined(SYSV) || defined(SVR4) || defined(__QNXNTO__) setpgrp(); else setpgrp (0, getpid()); #endif i dont have config.cache anywhere in the kdebase tree XDM_CFLAGS shows: -DHAVE_GETUSERSHELL -DUSE_SYSLOG _DUSE_PAM -DXDMCP
well, it would be best if you run the script described in that mail: http://lists.kde.org/?l=kde-devel&m=103600898024991&w=2 and send the output to ossi at kde dot org (feel free to Cc kde@gentoo.org and also include the URI of this bug). my XDM_CFLAGS are: -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -DUNIXCONN -DTCPCONN -DOSMAJORVERSION=2 -DOSMINORVERSION=4 -DFRAGILE_DEV_MEM -DDEV_RANDOM -DHAS_MKSTEMP -DHAVE_GETUSERSHELL -DUSE_SYSLOG -DUSE_PAM -DXDMCP thanks.
I dont understand, i download the file and run it from var/tmp/portage/kdebase-3,1-r1/work/kdebase-3.1 and i get that i cannot run that with a Makefile around, so i do a make distclean to delete all of them and i run that script, and now i get a file called Imakefile with exactly the same contents as the script you mentioned except for the #/bin/sh part Does that mean i need to start compiling once that file is already made? How do i resume emerge kdebase without it trying to start from the beginning?
Created attachment 7964 [details] script
i attached the script, please save it in your home, run 'sh script >& script.log' and attach script.log here. the script doesn't fix kdebase compilation, it also generates some output which is computer-dependent. to resume a merge, do ebuild /path/to/ebuild qmerge.
Created attachment 7966 [details] Log requested here it goes, my xdcmp line is really short
I had a premonition, i recompiled X and after doing so kdebase compiled fine. When i uninstalled rc6 it deleted some X files like host.def (which i replaced with a generic one), but maybe kde took it to configure some stuff and caused the compiler errors. Sorry for being such a pain... Sorry! Please close bug, although i would really like to know why uninstalling kde makes some X files get erased.
np, will mark as fixed :) if you unmerge kde it shouldn't remove any xfree files. (this should never happen!)