During execution of Stage 1 install, /usr/portage/scripts/bootstrap-2.6.sh fails on ncurses 5.4-r5. The last few lines echoed by bootstrap.sh are: make[1]: Entering directory `/var/tmp/portage/ncurses-5.4-r5/work/ncurses-5.4/c++' cd ../obj_s; -I../c++ -I../include -I. -DHAVE_CONFIG_H -I. -I../include -D_GNU_SOURCE -DNDEBUG -march=pentium -Os -pipe -fomit-frame-pointer -fPIC -fPIC -c ../c++/cursesf.cc /bin/sh: line 1: -I../c++: No such file or directory make[1]: *** [../obj_s/cursesf.o] Error 127 make[1]: Leaving directory `/var/tmp/portage/ncurses-5.4-r5/work/ncurses-5.4/c++' make: *** [all] Error 2 !!! ERROR: sys-libs/ncurses-5.4-r5 failed. !!! Function src_compile, Line 79, Exitcode 2 !!! make failed Reproducible: Always Steps to Reproduce: 1. mount -t proc none /mnt/ulinux/proc/ env -i HOME=/root TERM="$TERM" /bin/chroot /mnt/ulinux/ /bin/bash /usr/sbin/env-update; source /etc/profile emerge sync 2. nano /etc/make.conf CHOST="i586-pc-linux-gnu" CFLAGS="-march=pentium -Os -pipe -fomit-frame-pointer" CXXFLAGS="${CFLAGS}" FEATURES="nodoc noman noinfo" USE="-* x86 nptl pam livecd ncurses motif gtk truetype zlib gif jpeg png alsa" ^X gcc 3.4 ----------- unlink /etc/make.profile ln -s /usr/portage/profiles/gcc34-x86-2004.2 /etc/make.profile kernel 2.6 (headers) ----------------------------- nano /var/cache/edb/virtuals virtual/os-headers sys-kernel/linux-headers (change to) linux26-headers nano /etc/make.profile/virtuals virtual/os-headers sys-kernel/linux-headers (change to) linux26-headers mkdir /etc/portage echo "sys-kernel/linux26-headers ~x86" > /etc/portage/package.keywords echo "sys-devel/gcc ~x86" >> /etc/portage/package.keywords echo "sys-libs/glibc ~x86" >> /etc/portage/package.keywords echo "sys-libs/libstdc++-v3 ~x86" >> /etc/portage/package.keywords 3. /usr/portage/scripts/bootstrap-2.6.sh -f /usr/portage/scripts/bootstrap-2.6.sh Actual Results: The first time compiles ncurses well. Finalizing, after compiling glibc, it compiles ncurses again. And it is here where it fails. So I believe that the failure has something to see with new glibc Portage 2.0.50-r11 (gcc34-x86-2004.2, gcc-3.3.3, glibc-2.3.3.20040420-r0,2.3.4.20040808-r1, 2.6.8-gentoo-r7) ================================================================= System uname: 2.6.8-gentoo-r7 i686 AMD Athlon(tm) XP 2600+ Gentoo Base System version 1.4.16 Autoconf: Automake: ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=pentium -Os -pipe -fomit-frame-pointer" CHOST="i586-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium -Os -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache nodoc noinfo noman sandbox" GENTOO_MIRRORS="http://gentoo.osuosl.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="-* x86 nptl pam livecd ncurses motif gtk truetype zlib gif jpeg png alsa"
Like ncurses it was the last program to compile to finish bootstrap-26, I decided to change the compiler manually: gcc-config -l [1] i386-pc-linux-gnu-3.3.3 [2] i586-pc-linux-gnu-3.4.2 [3] i586-pc-linux-gnu-3.4.2-hardened [4] i586-pc-linux-gnu-3.4.2-hardenednossp gcc-config 2 source /etc/profile emerge ncurses Now yes it also compiled it well, and 'emerge system' too.
I have been able to compile 'ncurses' from bootstrap-2.6.sh. I wrote in '/etc/portage/package.keywords' only this: sys-devel/gcc ~x86 sys-libs/libstdc++-v3 ~x86 Portage 2.0.50-r11 (gcc34-x86-2004.2, gcc-3.4.2, glibc-2.3.3.20040420-r0,2.3.4.20040808-r1, 2.6.8-gentoo-r8) ================================================================= System uname: 2.6.8-gentoo-r8 i686 AMD Athlon(tm) XP 2600+ Gentoo Base System version 1.4.16 Autoconf: Automake: ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=pentium -Os -pipe -fomit-frame-pointer" CHOST="i586-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium -Os -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.osuosl.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X alsa gif gtk jpeg livecd motif ncurses nptl pam png truetype userlocales x86 xprint zlib"
Interestingly I still get this bug on a regular basis. In the short of it, the ./configure script is picking up that there is no g++ (at least at that stage it can't discover one), but it is still trying to compile the files, only it is passing no compiler. Notice the line reads: cd ../obj_s; -I../c++ -I../include <snip> Right after the compile failed for me, I opened up the Makefile in the nurses-5.4/c++ folder and scrolled down, and on the line where it indicates the command to execute to compile c++ files, the command was blank. The above line should read (similar to the lines that are compiling C programs) cd ../obj_s; g++ -I../c++ -I../include <snip> To verify this, I executed the emerge ncurses command and stopped it a few seconding into configuring. It will give convoluted messages about g++ as follows: <snip> checking if you want to ensure bool is consistent with C++... yes checking for i386-pc-linux-gnu-g++... g++ checking whether we are using the GNU C++ compiler... no checking whether g++ accepts -g... no checking for g++... no checking if you want to build C++ binding and demo... yes <snip> As you can see, it thinks that there is support for g++ but it can't find the compiler. For some reason, it continues on and the configure script does not output any messages to warn you that it can't compile the c++ parts of the program. Rather, it will use the first example line to attempt to comiple c++ files and give the error message which comes as a result of this "bug." So, in short, the issue isn't completely resolved as indicated in all situations. To fix this, I merely compiled a new version of gcc (using ACCEPT_KEYWORDS="~x86") and then used gcc-config to switch to the new version of gcc/g++. This new version had compiled g++ and, as such, was able to compile ncurses with nary a problem. As a side note, I managed to resolve this while trying to build a LiveCD using livecd-ng, but the problem still arises for me when I use the old bootstrap.sh on other installs. Where the root of this problem lies I do not know, but this is just my two cents about the problem, because I still run into it with almost every install I try.
Still a problem: gcc -march=pentium4 -O3 -pipe -fomit-frame-pointer -fPIC -o ncurses ../obj_s/ncurses.o -L../lib -lform -lmenu -lpanel -lncurses -Wl,-rpath,/var/tmp/portage/ncurses-5.4-r5/work/ncurses-5.4/lib -I../test -I. -DHAVE_CONFIG_H -I. -I../include -D_GNU_SOURCE -DNDEBUG -march=pentium4 -O3 -pipe -fomit-frame-pointer -fPIC -fPIC make[1]: Leaving directory `/var/tmp/portage/ncurses-5.4-r5/work/ncurses-5.4/test' cd misc && make DESTDIR="" all make[1]: Entering directory `/var/tmp/portage/ncurses-5.4-r5/work/ncurses-5.4/misc' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/var/tmp/portage/ncurses-5.4-r5/work/ncurses-5.4/misc' cd c++ && make DESTDIR="" all make[1]: Entering directory `/var/tmp/portage/ncurses-5.4-r5/work/ncurses-5.4/c++' cd ../obj_s; -I../c++ -I../include -I. -DHAVE_CONFIG_H -I. -I../include -D_GNU_SOURCE -DNDEBUG -march=pentium4 -O3 -pipe -fomit-frame-pointer -fPIC -fPIC -c ../c++/cursesf.cc cd ../obj_s; -I../c++ -I../include -I. -DHAVE_CONFIG_H -I. -I../include -D_GNU_SOURCE -DNDEBUG -march=pentium4 -O3 -pipe -fomit-frame-pointer -fPIC -fPIC -c ../c++/cursesm.cc /bin/sh: -I../c++: No such file or directory make[1]: *** [../obj_s/cursesf.o] Error 127 make[1]: *** Waiting for unfinished jobs.... /bin/sh: -I../c++: No such file or directory make[1]: *** [../obj_s/cursesm.o] Error 127 make[1]: Leaving directory `/var/tmp/portage/ncurses-5.4-r5/work/ncurses-5.4/c++' make: *** [all] Error 2 I got this while bootstrapping a machine. My emerge info for reference: livecd portage # emerge info Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.4.3-20050110, glibc-2.3.4.20050125-r0, 2.6.9-gentoo-r1 i686) ================================================================= System uname: 2.6.9-gentoo-r1 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz Gentoo Base System version 1.6.10 Python: [2.3.4 (#1, Oct 24 2004, 00:50:52)] distcc 2.16 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] dev-lang/python: [Not Present] sys-devel/autoconf: [Not Present] sys-devel/automake: [Not Present] sys-devel/binutils: 2.15.92.0.2-r6 sys-devel/libtool: [Not Present] virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distcc distlocks sandbox sfperms" GENTOO_MIRRORS="ftp://gentoo.mirrors.tds.net/gentoo" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X a52 aac acpi alsa arts audiofile avi bash-completion berkdb bitmap-fonts bzlib crypt divx4linux doc dvb dvd dvdread emboss encode ffmpeg flac freetype gdbm gif imlib jpeg kde kdeenablefinal libg++ libwww mad mime mmx mng mp3 mpeg mysql nas ncurses network nls nptl nptlonly nvidiaogg oggvorbis openal opengl oss perl png python qt quicktime readline samba sdl sndfile speex sse sse2 ssl svg tcpd theora tiff truetype truetype-fonts type1-fonts usb xine xml2 xpm xv xvid zlib" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY
Quit using the 2005.0 profile. We will not support it until after the release.