Building 1.4_rc2 on a chroot shell on mandrake 9. emerge system fails to build perl. Error: Making x2p stuff make[1]: Entering directory `/var/tmp/portage/perl-5.8.0-r7/work/perl-5.8.0/x2p' `sh cflags "optimize='-O2 -mcpu=i686 -pipe'" hash.o` -DPERL_FOR_X2P hash.c CCCMD = gcc -c -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -mcpu=i686 -pipe `sh cflags "optimize='-O2 -mcpu=i686 -pipe'" str.o` -DPERL_FOR_X2P str.c CCCMD = gcc -c -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -mcpu=i686 -pipe `sh cflags "optimize='-O2 -mcpu=i686 -pipe'" util.o` -DPERL_FOR_X2P util.c CCCMD = gcc -c -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -mcpu=i686 -pipe `sh cflags "optimize='-O2 -mcpu=i686 -pipe'" walk.o` -DPERL_FOR_X2P walk.c CCCMD = gcc -c -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -mcpu=i686 -pipe `sh cflags "optimize='-O2 -mcpu=i686 -pipe'" a2p.o` a2p.c CCCMD = gcc -c -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -mcpu=i686 -pipe gcc -o a2p -L/usr/local/lib hash.o str.o util.o walk.o a2p.o -lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lcrypt -lutil ../miniperl -I../lib find2perl.PL Extracting find2perl (with variable substitutions) make[1]: Leaving directory `/var/tmp/portage/perl-5.8.0-r7/work/perl-5.8.0/x2p' Making B (dynamic) readdir(./../../../../../../../..): No such file or directory at ../../lib/File/Find.pm line 573 Use of chdir('') or chdir(undef) as chdir() is deprecated at ../../lib/File/Find.pm line 716. readdir(./..): No such file or directory at ../../lib/ExtUtils/MakeMaker.pm line 231 Couldn't change to directory /root/C: No such file or directory at Makefile.PL line 18 Running '/var/tmp/portage/perl-5.8.0-r7/work/perl-5.8.0/miniperl "-I../../lib" ../../lib/ExtUtils/xsubpp -v 2>&1' exits with status 2 at ../../lib/ExtUtils/MM_Unix.pm line 3826. Cannot open file 'temp000': Permission denied Warning: No Makefile! make[1]: Entering directory `/var/tmp/portage/perl-5.8.0-r7/work/perl-5.8.0/ext/B' make[1]: *** No rule to make target `config'. Stop. make[1]: Leaving directory `/var/tmp/portage/perl-5.8.0-r7/work/perl-5.8.0/ext/B' make config failed, continuing anyway... make[1]: Entering directory `/var/tmp/portage/perl-5.8.0-r7/work/perl-5.8.0/ext/B' make[1]: *** No rule to make target `all'. Stop. make[1]: Leaving directory `/var/tmp/portage/perl-5.8.0-r7/work/perl-5.8.0/ext/B' make: *** [lib/auto/B/B.so] Error 2 !!! ERROR: sys-devel/perl-5.8.0-r7 failed. !!! Function src_compile, Line -83, Exitcode 2 !!! Unable to make The error is independent of perl version or CFLAGS
In your chroot, do you have /proc, etc, mounted?
um, etc as in etcetera, not just the /etc dir :)
I need to know your gcc version. There is a bug for gcc 3.2.1 systems, I can patch for 5.6.1 if necessary, but I want to confirm that you are running gcc 3.2.* (http://rt.perl.org/rt2/Ticket/Display.html?id=15510 for more details)
gcc 3.2 proc was mounted kindly Esben
OK, working on a patch. There is a note in the perl bugtrackers that one of the x2p makefiles (not Makefile, though) needs to be edited if you are running gcc 3.2.
OK, in a few hours I will need you to emerge sync. Check the HEADER in the perl- 5.6.1-r10 ebuild - it should be dated today, checked in by me (mcummings). The Fix: As stated in the perl bugtracker gcc-3.2X has a problem with the makefile generated in x2p. We had a fix in place for this - but not in enough places. Seems that the entire make/config/make steps we take end up having this file regenerated, losing our temporary fixes. I merely applied it again and again. Tested on a chroot tree running the 1.4_rc2 beta, gcc 3.2X. This problem will not occur again in perl 5.8 - it was corrected upstream for that release.
Is this fixed for you?
Please update
That did the trick :)
db fix