When I try to emerge guile with either ppc or ~ppc (corresponding to guile versions 1.6.4-r1 and 1.6.7), I get a failure right at the end of the build with the following messages (in actual results). It's the exact same message in both ppc and ~ppc cases (excepting the version numbers, of course). Reproducible: Always Steps to Reproduce: 1. emerge guile 2. (or ACCEPT_KEYWORDS="~ppc" emerge guile) 3. Actual Results: rm -f .libs/guile.nm .libs/guile.nmS .libs/guile.nmT creating .libs/guileS.c (cd .libs && powerpc-unknown-linux-gnu-gcc -c -fno-builtin "guileS.c") rm -f .libs/guileS.c .libs/guile.nm .libs/guile.nmS .libs/guile.nmT powerpc-unknown-linux-gnu-gcc -O3 -mcpu=powerpc -Wall -Wmissing-prototypes -fno-strict-aliasing -o .libs/guile .libs/guileS.o guile.o -Wl,--export-dynamic ./.libs/libguile.so /var/tmp/portage/guile-1.6.7/work/guile-1.6.7/libguile/.././libguile-ltdl/.libs/libguile-ltdl.so -lcrypt -lm creating guile cat alist.doc arbiters.doc async.doc backtrace.doc boolean.doc chars.doc continuations.doc debug.doc dynl.doc dynwind.doc environments.doc eq.doc error.doc eval.doc evalext.doc extensions.doc feature.doc fluids.doc fports.doc gc.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc init.doc ioext.doc iselect.doc keywords.doc lang.doc list.doc load.doc macros.doc mallocs.doc modules.doc numbers.doc objects.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc properties.doc random.doc rdelim.doc read.doc root.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc stackchk.doc stacks.doc stime.doc strings.doc strop.doc strorder.doc strports.doc struct.doc symbols.doc throw.doc values.doc variable.doc vectors.doc version.doc vports.doc weaks.doc symbols-deprecated.doc ramap.doc unif.doc filesys.doc posix.doc net_db.doc socket.doc regex-posix.doc | GUILE="/var/tmp/portage/guile-1.6.7/work/guile-1.6.7/pre-inst-guile" ../scripts/snarf-check-and-output-texi --manual > guile.texi || { rm guile.texi; false; } cat: write error: Broken pipe make[2]: *** [guile.texi] Error 1 make[2]: Leaving directory `/var/tmp/portage/guile-1.6.7/work/guile-1.6.7/libguile' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/guile-1.6.7/work/guile-1.6.7' make: *** [all] Error 2 !!! ERROR: dev-util/guile-1.6.7 failed. !!! Function src_compile, Line 59, Exitcode 2 !!! make failed !!! If you need support, post the topmost build error, NOT this status message. Expected Results: successful merge. hermes blackdown-jdk # emerge info Portage 2.0.51.19 (default-linux/ppc/2004.1, gcc-3.4.3-20050110, glibc-2.3.4.20041102-r1, 2.6.9-gentoo-r1kf ppc) ================================================================= System uname: 2.6.9-gentoo-r1kf ppc 7450, altivec supported Gentoo Base System version 1.4.16 Python: dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb 24 2005, 15:41:27)] distcc 2.18.3 powerpc-unknown-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] dev-lang/python: 2.3.4-r1 sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.8.5-r3, 1.5, 1.6.3, 1.7.9-r1, 1.4_p6, 1.9.4 sys-devel/binutils: 2.15.90.0.3-r3 sys-devel/libtool: 1.5.10-r4 virtual/os-headers: 2.4.22 ACCEPT_KEYWORDS="ppc" AUTOCLEAN="yes" CFLAGS="-O3 -mcpu=powerpc" CHOST="powerpc-unknown-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /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 -mcpu=powerpc" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="http://gentoo.mirrors.pair.com/ http://gentoo.ccccom.com" LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="X Xaw3d aac aalib acl adns alsa altivec apache2 apm arts artworkextra audiofile bash-completion bcmath berkdb bidi bitmap-fonts blas bonobo bzlib calendar caps cdb cddb cdparanoia cdrom chipcard cpdflib crypt cscope ctype cups curl curlwrappers dba dbase dbm dbx dga dio directfb divx4linux dlloader doc dvb dvd dvdread edl emacs emboss emoticon empress empress-bcs encode esd ethereal evo exif f2c fam fastcgi fbcon fftw filepro flac flash flatfile font-server foomatic foomaticdb fortran fpx freetds frontbase ftp gatos gb gcj gd gdbm ggi gif gimpprint ginac gmp gnome gnustep gnutls gphoto2 gpm graphviz gsnd gstreamer gtk gtk2 gtkhtml guile hardened hardenedphp hbci hyperwave-api iconv idea imagemagick imap imlib informix inifile innodb iodbc ipv6 jabber jack java jbig jikes jpeg junit kde kerberos krb4 ladcca lapack lcms ldap leim libcaca libclamav libgda libwww lirc live lzo m17n-lib mad maildir mailwrapper matroska mbox mcal mcve memlimit mhash mikmod milter mime ming mng motif mozilla mp3 mpatrol mpeg mpi msession mssql mysql mythtv nas ncurses network nis nls nntp oav objc oci8 odbc offensive ofx oggvorbis openal opengl oracle7 oss ovrimos pam pam-mysql pcmcia pcntl pcre pda pdflib perl pfpro php pic pie plotutils png pnp portaudio posix postgis ppc ppds prelude profile proj python qdbm qt quicktime quotes readline recode rtc ruby samba sapdb sasl scanner sdl session shared sharedmem simplexml skey slang slp sndfile snmp soap sockets socks5 solid speex spell spl sqlite ssl svg sybase sybase-ct sysvipc szip tcltk tcpd tetex tga theora tidy tiff tokenizer truetype truetype-fonts trusted type1-fonts uim unicode usb v4l v4l2 vda vhosts wddx winbind wmf wxwindows xanim xface xim xine xinerama xml xml2 xmlrpc xmms xosd xpm xprint xscreensaver xsl xv xvid yaz zeo zlib video_cards_radeon" Unset: ASFLAGS, CBUILD, CTARGET, LDFLAGS
To further explore this issue, I cd'd to the build directory where the failed command was executed during the emerge process and tried to execute the command myself by hand. Here's the result: hermes libguile # cat alist.doc arbiters.doc async.doc backtrace.doc boolean.doc chars.doc continuations.doc debug.doc dynl.doc dynwind.doc environments.doc eq.doc error.doc eval.doc evalext.doc extensions.doc feature.doc fluids.doc fports.doc gc.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc init.doc ioext.doc iselect.doc keywords.doc lang.doc list.doc load.doc macros.doc mallocs.doc modules.doc numbers.doc objects.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc properties.doc random.doc rdelim.doc read.doc root.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc stackchk.doc stacks.doc stime.doc strings.doc strop.doc strorder.doc strports.doc struct.doc symbols.doc throw.doc values.doc variable.doc vectors.doc version.doc vports.doc weaks.doc symbols-deprecated.doc ramap.doc unif.doc filesys.doc posix.doc net_db.doc socket.doc regex-posix.doc | GUILE="/var/tmp/portage/guile-1.6.7/work/guile-1.6.7/pre-inst-guile" ../scripts/snarf-check-and-output-texi --manual > guile.texi || { rm guile.texi; false; } Segmentation fault Looking further, I tried this: hermes libguile # /var/tmp/portage/guile-1.6.7/work/guile-1.6.7/pre-inst-guile --help Segmentation fault So the binary "pre-inst-guile" seems to be broken. Any ideas here? I've read about another similar bug report (long time ago) that I believe was resolved and closed, but this problem is obviously still affecting me. I've just synced yesterday and have current portage installed.
When I simply untar the tarball in a directory and do a ./configure; make it builds fine. When I copy and paste the ./configure line from the config.log file in the emerge working directory (/var/tmp/portage/...) and execute it and then do a make, it builds fine. Here is the step that failed when done in the ebuild but succeeds when done from the command line: cat alist.doc arbiters.doc async.doc backtrace.doc boolean.doc chars.doc continuations.doc debug.doc dynl.doc dynwind.doc environments.doc eq.doc error.doc eval.doc evalext.doc extensions.doc feature.doc fluids.doc fports.doc gc.doc goops.doc gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc init.doc ioext.doc iselect.doc keywords.doc lang.doc list.doc load.doc macros.doc mallocs.doc modules.doc numbers.doc objects.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc procs.doc properties.doc random.doc rdelim.doc read.doc root.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc stackchk.doc stacks.doc stime.doc strings.doc strop.doc strorder.doc strports.doc struct.doc symbols.doc throw.doc values.doc variable.doc vectors.doc version.doc vports.doc weaks.doc symbols-deprecated.doc ramap.doc unif.doc filesys.doc posix.doc net_db.doc socket.doc regex-posix.doc | GUILE="/opt/data/guile/guile-1.6.7/pre-inst-guile" ../scripts/snarf-check-and-output-texi > guile-procedures.texi || { rm guile-procedures.texi; false; }
In a PORTDIR_OVERLAY, I'm working my way through the ebuild for 1.6.7 and eliminating anything that changes the original sources (or trying to), and trying to see what's causing this to fail. What are these econf lines here doing? >>> Source unpacked. * econf: updating guile-1.6.7/config.guess with /usr/share/gnuconfig/config.guess * econf: updating guile-1.6.7/config.sub with /usr/share/gnuconfig/config.sub ./configure --prefix=/usr --host=powerpc-unknown-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --with-threads --with-modules --enable-deprecation=no
Resolved by changing CFLAGS from -O3 to -O2