Stage Used: stage1-x86-1.4_pre20030101.tar.bz2 Filesystem type: ext2 history of commands: # etc-update # source /etc/profile # nano -w /etc/make.conf # emerge sync # mkdir /usr/local/portage # emerge sync # cd /usr/portage # scripts/bootstrap.sh # export CONFIG_PROTECT="-*" # emerge -p system # time emerge system Notes: dmesg reports no crashed processes. I ran emerge -p system and then emerge system once more and it compiled perfectly this time. This makes me think that the problem is a random one dealing with the MAKEOPTS="-j3". The only thing I can think of is to leave perl compiling in a while loop for 10 times or more and see if it crashes randomly again. If it does, then remove the MAKEOPTS and try 10 or more times again. # grep -v \# /etc/make.conf /etc/make.conf contains: CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-mp -O3 -pipe" CXXFLAGS="${CFLAGS}" PORTAGE_TMPDIR=/var/tmp PORTDIR=/usr/portage DISTDIR=${PORTDIR}/distfiles PKGDIR=${PORTDIR}/packages PORTDIR_OVERLAY=/usr/local/portage MAKEOPTS="-j3" AUTOCLEAN="yes" FEATURES="sandbox ccache buildpkg" make[3]: Leaving directory `/var/tmp/portage/perl-5.6.1-r10/work/perl-5.6.1/x2p' Finding dependencies for hash.o. Finding dependencies for str.o. Finding dependencies for util.o. Finding dependencies for walk.o. make[3]: Entering directory `/var/tmp/portage/perl-5.6.1-r10/work/perl-5.6.1/x2p' echo Makefile.SH cflags.SH | tr ' ' '\n' >.shlist make[3]: Leaving directory `/var/tmp/portage/perl-5.6.1-r10/work/perl-5.6.1/x2p' Updating makefile... make[2]: Leaving directory `/var/tmp/portage/perl-5.6.1-r10/work/perl-5.6.1/x2p' make[1]: Leaving directory `/var/tmp/portage/perl-5.6.1-r10/work/perl-5.6.1' make: *** No rule to make target `<built-in>', needed by `miniperlmain.o'. Stop. !!! ERROR: sys-devel/perl-5.6.1-r10 failed. !!! Function src_compile, Line 158, Exitcode 2 !!! (no error message)
This seems to happen with the default MAKEOPTS="-j2" with 1.4_rc2 from stage 3. Setting MAKEOPTS="" in /etc/make.conf doesn't seem to help as it dies in the same place. /etc/make.conf contains USE='gif jpeg xml xml2 mysql ruby' CHOST="i586-pc-linux-gnu" CFLAGS="-march=pentium-mmx -O3 -pipe" CXXFLAGS="${CFLAGS}" MAKEOPTS=""
This essentially prevents any new Gentoo systems from being installed at all ('emerge system' will never complete if perl doesn't build, and I was hoping to get two or three gentoo boxes running this weekend.) :( This happened for me trying to install a new 1.4_rc2 system after successfully completing a bootstrap. Failed with both MAKEOPTS="-j3" and MAKEOPTS="". # grep "^[^#]" make.conf USE="-3dfx -3dnow -alsa -esd -evo -gnome X aalib apm arts avi cdr crypt cups dga dvd encode fbcon flash gd gdbm gif gpm gtk gtk2 imap imlib innodb java jpeg kde mmx mpeg mysql ncurses oss oggvorbis pam pdflib perl png qt qtmt quicktime readline samba sdl slp ssl tcpd tiff truetype xv zlib" CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium2 -O3 -pipe" CXXFLAGS="${CFLAGS}" MAKEOPTS="" AUTOCLEAN="yes" FEATURES="buildpkg" RSYNC_RETRIES="3" SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"
As an outside observer who is also not a programmer, perhaps you may want to try: MAKEOPTS="-j1" It is my impression that MAKEOPTS="" is functionally equivelant to MAKEOPTS="-j2" since "-j2" is the default. If MAKEOPTS is really the source of your problem (and I have no idea and make no claim that it is), then you should explicitly set MAKEOPTS="-j1". This has solved several ebuild failures for me. FWIW this is my emerge info: Portage 2.0.46-r4 (default-x86-1.4, gcc-3.2.1, glibc-2.3.1-r3) ================================================================= System uname: 2.4.20 i686 AMD Athlon(TM) XP1900+ USE="x86 oss 3dnow apm avi crypt cups encode gif jpeg gnome libg++ mikmod mmx mpeg ncurses nls pdflib png qtmt quicktime spell truetype xml2 xmms xv zlib gtkhtml alsa gdbm berkdb slang readline arts bonobo svga tcltk java guile mysql X sdl gpm tcpd pam libwww ssl perl python esd imlib oggvorbis gtk qt kde motif opengl mozilla cdr" ARCH="x86" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -O3 -pipe" CXXFLAGS="-march=athlon-xp -O3 -pipe" ACCEPT_KEYWORDS="x86 ~x86" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config /usr/kde/3.1/share/config:/usr/kde/3/share/config:/usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" MAKEOPTS="-j1" JDK_HOME="/opt/blackdown-jdk-1.4.1_beta" JAVA_HOME="/opt/blackdown-jdk-1.4.1_beta" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" GENTOO_MIRRORS="http://www.ibiblio.org/pub/Linux/distributions/gentoo"
Guy's suggestion to set MAKEOPTS="-j1" explicitly in my /etc/make.conf made the compile work for me (1.4_rc2 live CD stage 3 install)
Please emerge sync again. There is a new version of the -r10 of perl 5.6.1, effective Friday, that contains a fix for fresh installs using gcc 3.2.X.
I just tries rebuilding from 1.4_rc2 live cd stage 3, following the instructions at http://www.gentoo.org/doc/en/gentoo-x86-install.xml, and only setting the CHOST and CFLAGS in my /etc/make.conf. I edited /etc/make.conf after doing the emerge sync, if that matters... When I got to emerge -u world It failed as before. The Id tag at the top of /usr/portage/sys-devel/perl/perl-5.6.1-r10.ebuild indicates it's from friday (rev 1.6) I will try starting from scratch again (on the blindingly fast 233MHz MMX w/ 64MB) with a stage 3 install, and when I have emerge sync'ed I will add a line to the top of the ebuild for perl contining MAKEOPTS="-j1" and see if the emerge -u world works after that.
Since I was building a new machine anyway, I took this opportunity to test this issue. Burned a new 1.4_rc2 stage1 live cd. Booted and followed normal installation procedures to the point of 'emerge rsync' # emerge rsync # emerge -pu world # emerge -u world Emerge aborted at the perl-5.6.1-r10 ebuild. Edited /etc/make.conf and added line: MAKEOPTS="-j1" # emerge -u world Emerge of world is now past perl-5.6.1-r10 and continuing. --------------------------------------------------------------------------------------------------------- FWIW - I am temporarily following this procedure as a work-around for new machines. ... blah - blah - blah ... # emerge rsync # emerge portage # emerge baselayout # etc-update # nano -w /etc/make.conf (to add MAKEOPTS="-j1") # emerge -u world The make.conf file from the baselayout in the 1.4_rc2 tarballs does not have the section on MAKEOPTS in it. It's only after you emerge the current baselayout that make.conf is updated. You don't need to take all the steps I take to work around the problem. The only critical step is to edit make.conf and add the MAKEOPTS="-j1" line prior to emerging perl-5.6.1-r10. I do it the way I listed simply because it satisfies my sense of logical order. ;-) This machine I'm currently installing gentoo on is an AMD K-6 300 w/48megs ram, 384meg swap. I used the 1.4_rc2 live stage1 cd to boot and the stage3-i586-1.4_rc2.tbz2 tarball. If you need more information, please post here. :-) Finally, this is the third time I'm installing gentoo on it. The first time was with the 1.2 live cd etc. I had it up and running with fluxbox, xchat, xmms, abiword etc. The second time was with the 1.4 beta with the same applications. So I know this machine works well with gentoo. :)
I be bad. After changing MAKEOPTS="-j1" on my new installation, it failed again. When I thought it was past perl, it wasn't. :( That's what I get for checking on thing just before going to sleep. I'll play around with it later tonight. [sigh]
Any change to your -j options are extraneous. The problem was a documented problem with perl's building in a gcc 3.2.X environment and were fixed in a silent update on Friday. Please sync again and emerge perl. The corrected perl is now in portage with a patch. The problem was a syntax problem with the perl source for the x2p module.
Re-emerging on my 233 mmx worked tonight. It looks like I got the same -r10 ebuild (rev 1.6 in the CVS tag) as the one I used yesterday which failed (see my note from yesterday, 2003-01-05 13:20 the second attempt to build failed too.) I will try starting again from the stage 3 tarball to see if I can get 2 or 3 consecutive emerges to succeed.
I tried rebuilding from a stage 3 tarball and it failed again. The -r10 ebiuld is rev 1.6 from 2003/01/03 and the error was still make: *** No rule to make target `<built-in>', needed by `miniperlmain.o'. Stop. !!! ERROR: sys-devel/perl-5.6.1-r10 failed. !!! Function src_compile, Line 158, Exitcode 2 !!! (no error message) If I do the egrep stuff from line 151 of the ebuild in the work directory then a make seems to begin OK.
i have a workaraound for this bug: http://forums.gentoo.org/viewtopic.php?t=28570&start=0 (try 'newest first' at the bottom of the page to display the newest additions to the thread - there seems to be a bug in the forums too ;) ) as i began the installation on sunday/monday i think this one is not completely fixed....
http://rt.perl.org/rt2/Ticket/Display.html?id=15510 The ebuild for -r10 was modified per the perl.org bug tracking of the x2p problem with perl 5.6.1 on a gcc 3.2.X system. I have successfully built the perl 5.6.1 -r10 on a fresh, built from stage1, 1.4 system (rc2 IIRC). Please emerge sync and let me know if the one line mod I made fixes this for you. (Feel free to diff the new and the old at http://cvs.gentoo.org/cgi- bin/viewcvs.cgi/gentoo-x86/sys-devel/perl/perl-5.6.1-r10.ebuild.diff? r1=1.6&r2=1.7 ) Perl 5.8.0 does not contain this bug with gcc 3.2.X and will be unmasked shortly, pending confirmation testing.
sorry but emerge sync and emerge -u perl fails for perl-5.6.1-r10 with exactly the same error - the url for the diff between v1.6 and v1.7 tells me that nothing was changed, although: http://cvs.gentoo.org/cgi-bin/viewcvs.cgi/gentoo-x86/sys-devel/perl/perl-5.6.1- r10.ebuild?rev=1.7&content-type=text/vnd.viewcvs-markup says: 'Changes since 1.6: +5 -5 lines' perhaps u commited the old version by mistake?
Anyone watching this thread have anything to add? r10 has been out for a while, and was only a security update to r9, which had been out for weeks prior to that. In that time, there was no problem with gcc 3.2.X boxes emerging perl. It has only been with the 1.4 beta releases that gcc problems have started to arise, begging the question of whether there were any changes in that size. Azarah?
Try to change the -march=athlon-mp ? Some -march optimizations of gcc3 have been known to cause strange issues ....
Michael, I have tried to replicate the probem on my work machine (2.5GHz P4) in a chrooted environment (as suggested in the setting up phase of the UML User docs.) Here everything works fine several times. I wonder if it's something to do with the speed of the machine its built on, as on my 233 MHz with 64MB and ext3 file systems on an old WD 6GB disc it fails more often than not, and at work it's just fine. Sorry I can't give you something more solid... Mike
hmm - i only got these problems with a fresh installation on an very crappy old k6, 64MB (changed during the tests just to be sure) - on my working machine Athlon 1700, 256MB, gentoo-1.2 everything works fine :) - it also works when updating perl on a P-MMX 200, 64MB with gentoo-1.2... for the time being i use the workaround i posted at the forums...works fine so far - releaves some of the pressure on this issue ;)
OK - I agree that MAKEOPTS="-j1" didn't have anything to do with solving anything. emerge perl 5.6.1-r10 worked successfully on K-6 300, 48 meg ram, 384 meg swap. emerge perl 5.6.1-r10 did not work on Pentium II 400, 384 meg ram, 256 meg swap. I'll be double checking this tomorrow. perl 5.6.1-r10 is not apparently required on a Athlon XP1900+, 512meg ram 256 meg swap. Emerge -s perl shows 5.8.0 perl and libperl installed. emerge -pu --deep world shows no call for perl 5.6.1-r10. perl 5.6.1-r10 is not apparently required on a Celeron 466, 256 megs ram 256 meg swap. Emerge -s perl shows 5.8.0 perl and libperl installed as above. (scratching head) if the pentium II machine is still broken for perl 5.6.1-r10, is there information you'd like from it?
i tried CFLAGS="march=i586 -O3 -pipe" as opposed to CFLAGS="march=k6 -O3 -pipe" which i used before i tested the latter also with MAKEOPTS="-j1" none of these possibilities work - they all throw the same error...
I can confirm the bug on my old pentium-mmx 64Mo. -j1 doesn't do the trick. I had to mask perl > 5.6.1-r7 to achieve my stage3 install (1.4 rc2).
Hmmm ... Pentium II system doesn't list perl-5.6.1-r10 for emerging. Doing: emerge /usr/portage/sys-devel/perl/perl-5.6.10-r10.ebuild explicitly - will report results tomorrow.
perl-5.8.0-r8 has been unmasked compiled without problems :)) on a k6 with march=i586
I have the same problem with perl-5.6.1-r10 when trying to install gentoo on a alpha box, using 1.4_rc1. Is there anybody who successfully emerged perl 5.6.1 on alpha? Perl 5.8.0 is masked for alpha, so I'm not sure whether I should unmask 5.8.0 or try to emerge perl-5.6.1-r7.
Christian, My understanding from the alpha team (wwoods in particular) is that they are all running perl 5.8 successfully. I think the only reason that it isn't unmasked is that they haven't had a chance - it was only unmasked for x86 yesterday morning.
I did an 'emerge rsync' and emerged perl-5.6.1 again. Now it worked without further problems on an alpha architecture.
Can this bug be safely closed? gerk put in some patches from LFS that seem to fix the "miniperlmain" issue.
Believed fixed by Gerk's work.