When I try to emerge linux26-headers-2.6.7-r3, I get errors about linux/limit.h and asm/socket.h not being in the system. I think there should not be any asm/* and linux/* files because linux headers havn't been installed yet. This is the log. HOSTCC scripts/basic/fixdep In file included from /usr/include/bits/posix1_lim.h:130, from /usr/include/limits.h:144, from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/limits.h:122, from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/syslimits.h:7, from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/limits.h:11, from scripts/basic/fixdep.c:105: /usr/include/bits/local_lim.h:36:26: linux/limits.h: No such file or directory In file included from /usr/include/sys/socket.h:35, from /usr/include/netinet/in.h:24, from scripts/basic/fixdep.c:107: /usr/include/bits/socket.h:305:24: asm/socket.h: No such file or directory scripts/basic/fixdep.c: In function `use_config': scripts/basic/fixdep.c:193: error: `PATH_MAX' undeclared (first use in this function) scripts/basic/fixdep.c:193: error: (Each undeclared identifier is reported only once scripts/basic/fixdep.c:193: error: for each function it appears in.) scripts/basic/fixdep.c:193: warning: unused variable `s' scripts/basic/fixdep.c: In function `parse_dep_file': scripts/basic/fixdep.c:289: error: `PATH_MAX' undeclared (first use in this function) scripts/basic/fixdep.c:289: warning: unused variable `s' make[1]: *** [scripts/basic/fixdep] Error 1 make: *** [scripts_basic] Error 2 !!! ERROR: sys-kernel/linux26-headers-2.6.7-r3 failed. !!! Function src_compile, Line 66, Exitcode 2 !!! prepare failed Reproducible: Always Steps to Reproduce: 1. emerge gentoo-dev-sources 2. emerge unmerge linux-headers 3. emerge linux26-headers Expected Results: Should install Linux 2.6 headers... Gentoo Base System version 1.4.16 Portage 2.0.50-r9 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.4.26-gentoo-r6) ================================================================= System uname: 2.4.26-gentoo-r6 i686 AMD Athlon(TM) XP 1700+ distcc 2.13 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=athlon-xp -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /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/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/afs/C /etc/afs/afsws /etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=athlon-xp -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ ftp://ftp.du.se/pub/os/gentoo http://ftp.du.se/pub/os/gentoo http://ds.thn.htu.se/linux/gentoo http://mirror.pudas.net/gentoo ftp://mirror.pudas.net/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X acpi afs alsa apache2 apm arts avi berkdb bonobo cdr cjk crypt cups dvd encode esd flac flash foomaticdb gdbm gif gnome gpm gtk gtk2 gtkhtml guile imlib jabber jack java jpeg kde ldap libg++ libwww lirc mad maildir mikmod mmx motif mozilla mpeg ncurses nls oggvorbis opengl oss pam pdflib perl plotutils png postgres ppds python qt quicktime readline samba scanner sdl slang speex spell ssl svga tcltk tcpd tetex theora truetype unicode usb videos x86 xinerama xml xml2 xmms xv zlib"
Mike: Magnade's reported that this happens when no headers are installed. I guess the solution is to either check for headers or just remove the || die...
ive seen this before but because it wasnt fatal i never bothered to 'fix' it :) perhaps the real fix here is to stick in some CFLAGS so the `make` builds against the linux include files in $S/include/{linux,asm} instead of /usr/include/{linux,asm} ? i can put together a patch if you want to go that route tim
That'll work - I think we can just redefine the necessary environment variables in the ebuild? If not, then we can fix the Makefiles...
hey, i was just pointed to this on irc. this bug should have been fixed along with the other crap i fixed for the linux26-headers migration... unless my fix was reverted: src_compile() { # autoconf.h isnt generated unless it already exists. plus, we have # no gurentee that any headers are installed on the system... [ -f ${ROOT}/usr/include/linux/autoconf.h ] || \ touch ${S}/include/linux/autoconf.h # if there arent any installed headers, then there also isnt an asm # symlink in /usr/include/, and make defconfig will fail. ln -sf ${S}/include/asm-${ARCH} ${S}/include/asm make defconfig HOSTCFLAGS="-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -I${S}/include/" }
oh boy, i didnt notice the new "make prepare". yeah, it should use the same variable as the make defconfig... ignore me :)
+1 on this. I had a conflict between my linux-headers and this when updating glibc, removed linux-headers and ended up with a broken system due to this bug.
i've added the fix to cvs. enjoy :)