I'm having a MAJOR headache emerging expect-5.40.0-r1. See also the thread on the user mailinglist at http://thread.gmane.org/gmane.linux.gentoo.user/89463 & http://thread.gmane.org/gmane.linux.gentoo.user/89569. Let me recap. I am able to emerge EVERYTHING except expect. When I run configure and autoconf manually (with the same configure options and the same CFLAGS), the configuration works just fine. However, when I do "emerge expect", I'm getting errors. emerge is giving me this error message: Code: Rebuilding configure... if [ x"." = x"." ] ; then \ srcdir=. ; export srcdir ; \ else true ; fi ; \ (cd ${srcdir}; autoconf) Rebuilding config.status... /bin/sh ./config.status --recheck running /bin/sh ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --with-tcl=/usr/lib --with-tclinclude=/usr/lib/tcl8.4/include/generic --with-tk=/usr/lib --enable-shared --no-create --no-recursion configuring Expect 5.40.0 checking for autoconf... yes checking configure up to date... yes checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking build system type... i686-pc-linux-gnu checking shell to use within Make... checking for gcc... gcc -pipe checking whether the C compiler (gcc -pipe -O3 -fomit-frame-pointer -march=athlon-xp -pipe ) works... no configure: error: installation or configuration problem: C compiler cannot create executables. make: *** [config.status] Error 1 !!! ERROR: dev-tcltk/expect-5.40.0-r1 failed. !!! Function src_compile, Line 59, Exitcode 2 !!! emake failed I had a look at the .ebuild file, and found that the error is occuring at this step: Code: econf $myconf --enable-shared || die "econf failed" emake || die "emake failed" The error is occuring at the emake step. I do not understand at all, what's going on here. emake is /usr/lib/portage/bin/emake, isn't it? If so, why is it running this: Code: Rebuilding configure... if [ x"." = x"." ] ; then \ srcdir=. ; export srcdir ; \ else true ; fi ; \ (cd ${srcdir}; autoconf) Rebuilding config.status... /bin/sh ./config.status --recheck In my emake file, there's hardly more than 'make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"'. Also, why is "/bin/sh ./config.status --recheck" failing? When I run this manually in the expect source directory, it works just fine. What is emerge doing here? I also searched b.g.o for ALL missing terminating , as this is the error message I found in config.log. This turns up some bugs/patches which all suggest that "newer" versions of gcc (ie. >= 3.3) don't accept "multi-line string literals". Uhm? Here's the output in config.log: Code: configure:758: checking for gcc configure:871: checking whether the C compiler (gcc -pipe -O3 -fomit-frame-pointer -march=athlon-xp -pipe ) works configure:887: gcc -pipe -o conftest -O3 -fomit-frame-pointer -march=athlon-xp -pipe -I. -I. -I/usr/lib/tcl8.4/include/generic -I/usr/X11R6/include -DEXP_VERSION=\"5.40.0\" -DSCRIPTDIR=\"/var/tmp/portage/expect-5.40.0-r1/image//usr/lib/expect5.40\" -DEXECSCRIPTDIR=\"/var/tmp/portage/expect-5.40.0-r1/image//usr/lib/expect5.40\" -DTCL_DEBUGGER -DUSE_NON_CONST conftest.c 1>&5 <command line>:4:14: missing terminating " character <command line>:5:12: missing terminating " character <command line>:6:16: missing terminating " character configure: failed program was: #line 882 "configure" #include "confdefs.h" main(){return(0);} What's <command line>:5:12 supposed to mean? What's the command line, what's char char 12 of line 5? Where's there a " missing, or a multi-line string? Reproducible: Always Steps to Reproduce:
Stan, you're up
<quote> What is emerge doing? It is doing something differently then I do. I did: ################################################################################ tar xfvz /usr/portage/distfiles/expect-5.40.0.tar.gz cd expect-5.40 CFLAGS=" -O3 -fomit-frame-pointer -march=athlon-xp -pipe " export CFLAGS ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man \ --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc \ --localstatedir=/var/lib --with-tcl=/usr/lib \ --with-tclinclude=/usr/lib/tcl8.4/include/generic --with-tk=/usr/lib \ --enable-shared autoconf /bin/sh ./config.status --recheck ################################################################################ </quote> I assume this completes without error? The 5.40.0-r1 ebuild modifies Makefile.in (in src_unpack) which triggers some implicit rules (though i haven't found what they are) in make to run the explicit rules configure:, config.status: and Makefile:. This is where the "Rebuilding configure..." and "Rebuilding config.status..." messages come from (not from the ebuild directly). You can simulate what the ebuild does by doing: tar zxf... cd expect... touch Makefile.in ./configure ... make -j2 (where ... means as above) Does that get the same error? (which i can't seem to reproduce here) If yes then add a "touch configure" and "touch config.status" after the "touch Makefile.in". Does it build then? Otherwise you might find "emerge -d expect" useful (maybe put with http://stuff.alexander.skwar.name/emerge-expect.output.txt) and please add the output of "emerge info".
Created attachment 35532 [details] Output of "emerge info" Hi. Yes, the "code" between the "###" works just fine. I now also did: ########### tar xfvz expect cd expect cat /var/tmp/portage/expect-5.40.0-r1/work/expect-5.40/Makefile.in > Makefile.in ./configure ... make -j2 ########### Two observations: 1) "Rebuilding configure..." is not run 2) No error - emerge info at http://stuff.alexander.skwar.name/emerge_info.txt - emerge -d expect at http://stuff.alexander.skwar.name/emerge_-d_expect.txt Both are also attached to this bug now.
Created attachment 35533 [details] Output of "emerge -d expect" As requested. Also available on http://stuff.alexander.skwar.name/emerge_-d_expect.txt
Created attachment 35535 [details] work directory of expect 5.40 That's the directory /var/tmp/portage/expect-5.40.0-r1/work after I ran "emerge -d expect". Files like config.log might be interesting.
Created attachment 35540 [details] expect-5.40.0-r1.ebuild Do you think it's likely that avoiding the re-running of ./configure will help? (even though it isn't obvious why this works manually but not via portage) If so try setting up a portage overlay with this in it.
I now completely reinstalled my system with ~x86 and also kernel 2.6.x. Now I also cannot reproduce this bug anymore. -> Closing bug: WFM