When trying to upgrade my system from stable to unstable portage tree I can't emerge libperl. It gives invalid preprocessing errors. I receive the same errors when trying to compile libperl-5.8.2, 5.8.1 and 5.8.0. I've tried adding threads to my USE line. I also tried modifying my cflags down to almost nothing and I still get the same error. Reproducible: Always Steps to Reproduce: 1. Change ACCEPT_KEYWORDS="~x86" in make.conf 2. emerge libperl 3. Actual Results: make[2]: Entering directory `/var/tmp/portage/libperl-5.8.2/work/perl-5.8.2/x2p' echo Makefile.SH cflags.SH | tr ' ' '\n' >.shlist make[2]: Leaving directory `/var/tmp/portage/libperl-5.8.2/work/perl-5.8.2/x2p' Updating makefile... make[1]: Leaving directory `/var/tmp/portage/libperl-5.8.2/work/perl-5.8.2/x2p' `sh cflags "optimize='-fPIC -march=pentium3 -O2 -pipe -fomit-frame-pointer -fforce-mem -fforce-addr -s'" perl.o` -fPIC perl.c `sh cflags "optimize='-fPIC -march=pentium3 -O2 -pipe -fomit-frame-pointer -fforce-mem -fforce-addr -s'" gv.o` -fPIC gv.c CCCMD = gcc -DPERL_CORE -c -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -march=pentium3 -O2 -pipe -fomit-frame-pointer -fforce-mem -fforce-addr -s -Wall CCCMD = gcc -DPERL_CORE -c -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -march=pentium3 -O2 -pipe -fomit-frame-pointer -fforce-mem -fforce-addr -s -Wall In file included from perl.h:37, from perl.c:17: config.h:2135:3: invalid preprocessing directive #I_STDARG config.h:2136:3: invalid preprocessing directive #I_VARARGS config.h:3103:9: invalid preprocessing directive #NEED_VA_COPY In file included from perl.h:37, from gv.c:26: config.h:2135:3: invalid preprocessing directive #I_STDARG config.h:2136:3: invalid preprocessing directive #I_VARARGS config.h:3103:9: invalid preprocessing directive #NEED_VA_COPY make: *** [gv.o] Error 1 make: *** Waiting for unfinished jobs.... make: *** [perl.o] Error 1 !!! ERROR: sys-devel/libperl-5.8.2 failed. !!! Function src_compile, Line 206, Exitcode 2 !!! Unable to make libperl.so Expected Results: duh Portage 2.0.49-r18 (default-x86-1.4, gcc-3.3.2, glibc-2.3.3_pre20031222-r0, 2.6. 0) ================================================================= System uname: 2.6.0 i686 Intel(R) Celeron(TM) CPU 1000MHz Gentoo Base System version 1.4.3.12 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-fPIC -march=pentium3 -Os -pipe -fomit-frame-pointer -fforce-mem -fforce -addr -s" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1 /share/config /usr/kde/3/share/config /usr/share/config /var/qmail/alias /var/qm ail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-fPIC -march=pentium3 -Os -pipe -fomit-frame-pointer -fforce-mem -ffor ce-addr -s" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linu x/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="3dfx X apm arts avi berkdb crypt cups encode foomaticdb gdbm gif gpm gtk2 i mlib jpeg kde libg++ libwww mad mikmod motif mpeg mysql ncurses nls oggvorbis op engl oss pam pdflib png python qt quicktime readline samba sdl slang spell ssl s vga tcpd truetype x86 xml2 xmms xv zlib"
Please try more conservative CFLAGS. Try getting rid of -s and -fforce-addr at a minimum.
Closing due to lack of response.
I'm getting the same errors (near enough). This is what I get with CFLAGS="-O2 -pipe" MAKEOPTS="-j1". I tried it with CFLAGS="-O3 -march=pentium4 -fomit-frame-pointer -pipe" MAKEOPTS="-j3", as well and I still get the same errors (near enough). =============================================================================== ...... Finding dependencies for perlmain.o. make[1]: Entering directory `/tmp/portage/libperl-5.8.4-r1/work/perl-5.8.4' echo Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH makedir.SH myconfig.SH writemain.SH pod/Makefile.SH | tr ' ' '\n' >.shlist make[1]: Leaving directory `/tmp/portage/libperl-5.8.4-r1/work/perl-5.8.4' Updating makefile... test -s perlmain.c && touch perlmain.c cd x2p; make depend make[1]: Entering directory `/tmp/portage/libperl-5.8.4-r1/work/perl-5.8.4/x2p' sh ../makedepend MAKE=make make[2]: Entering directory `/tmp/portage/libperl-5.8.4-r1/work/perl-5.8.4/x2p' echo hash.c str.c util.c walk.c | tr ' ' '\n' >.clist make[2]: Leaving directory `/tmp/portage/libperl-5.8.4-r1/work/perl-5.8.4/x2p' Finding dependencies for hash.o. Finding dependencies for str.o. Finding dependencies for util.o. Finding dependencies for walk.o. make[2]: Entering directory `/tmp/portage/libperl-5.8.4-r1/work/perl-5.8.4/x2p' echo Makefile.SH cflags.SH | tr ' ' '\n' >.shlist make[2]: Leaving directory `/tmp/portage/libperl-5.8.4-r1/work/perl-5.8.4/x2p' Updating makefile... make[1]: Leaving directory `/tmp/portage/libperl-5.8.4-r1/work/perl-5.8.4/x2p' `sh cflags "optimize='-O3 -march=pentium4 -fomit-frame-pointer -pipe'" perl.o` -fPIC perl.c CCCMD = gcc -DPERL_CORE -c -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O3 -march=pentium4 -fomit-frame-pointer -pipe -Wall In file included from perl.h:37, from perl.c:76: config.h:2147:3: invalid preprocessing directive #I_STDARG config.h:2148:3: invalid preprocessing directive #I_VARARGS config.h:3120:9: invalid preprocessing directive #NEED_VA_COPY make: *** [perl.o] Error 1 !!! ERROR: sys-devel/libperl-5.8.4-r1 failed. !!! Function src_compile, Line 213, Exitcode 2 !!! Unable to make libperl.so ============================================================================= Portage 2.0.50-r11 (hardened-x86-2004.0, gcc-3.3.4, glibc-2.3.3.20040420-r1, 2.6.7-hardened-r7) ================================================================= System uname: 2.6.7-hardened-r7 i686 Intel(R) Xeon(TM) CPU 2.80GHz Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium4 -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /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/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox sfperms strict" GENTOO_MIRRORS="http://gentoo.osuosl.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="apache2 berkdb bzlib cdr chroot cpdflib crypt dbx dvdr erandom fdftk gd gdbm gif hardened hardenedphp imagemagick imap innodb jpeg ldap libwww memlimit mime mmx mng mysql mysqli pam pcre pdflib perl php pic pie png postgres python readline simplexml sse ssl svg tcpd tetex tidy vhosts x86 zlib"
(In reply to comment #3) I finally worked out what is causing this! Looking earlier on in output from emerge I had loads of errors like /sbin/grep : Permission Denied I turns out this was just a text file, not the grep binary. I think the perl build must fail to detect the error and assume grep ran fine. Deleted the file and perl builds fine now! :-)