Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 57139 - Can't emerge expect-5.40.0-r1: 'missing terminating " character'
Summary: Can't emerge expect-5.40.0-r1: 'missing terminating " character'
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Seemant Kulleen (RETIRED)
URL: http://forums.gentoo.org/viewtopic.ph...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-07-15 01:08 UTC by Alexander Skwar
Modified: 2004-07-17 08:08 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Output of "emerge info" (emerge_info.txt,2.02 KB, text/plain)
2004-07-16 01:21 UTC, Alexander Skwar
Details
Output of "emerge -d expect" (emerge_-d_expect.txt,19.97 KB, text/plain)
2004-07-16 01:21 UTC, Alexander Skwar
Details
work directory of expect 5.40 (expect-5.40.work.tar.bz2,414.34 KB, application/octet-stream)
2004-07-16 02:24 UTC, Alexander Skwar
Details
expect-5.40.0-r1.ebuild (expect-5.40.0-r1.ebuild,2.61 KB, text/plain)
2004-07-16 04:33 UTC, stan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Skwar 2004-07-15 01:08:42 UTC
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:
Comment 1 Seemant Kulleen (RETIRED) gentoo-dev 2004-07-15 13:39:55 UTC
Stan, you're up
Comment 2 stan 2004-07-15 17:08:37 UTC
<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".
Comment 3 Alexander Skwar 2004-07-16 01:21:50 UTC
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.
Comment 4 Alexander Skwar 2004-07-16 01:21:55 UTC
Created attachment 35533 [details]
Output of "emerge -d expect"

As requested. Also available on
http://stuff.alexander.skwar.name/emerge_-d_expect.txt
Comment 5 Alexander Skwar 2004-07-16 02:24:49 UTC
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.
Comment 6 stan 2004-07-16 04:33:12 UTC
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.
Comment 7 Alexander Skwar 2004-07-17 08:08:55 UTC
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