[gccsdk] Unable to build trunk gcc on debian

John Tytgat John.Tytgat at aaug.net
Wed Sep 7 16:57:00 PDT 2011


In message <SNT136-ds4922B983682D8AE329620F01F0 at phx.gbl>
          "Alan Buckley" <alan_baa at hotmail.com> wrote:

> I’ve tried today to build the trunk GCC after doing an svn update
> on Debian and it failed. After retrying a make I get:
> 
> libtool: link: ( cd ".libs" && rm -f "libcloog.la" && ln -s "../libcloog.la" "li
> bcloog.la" )
> gcc -DHAVE_CONFIG_H -I. -I/home/alanb/gccsdk/gcc4/srcdir/cloog -I./include/cloog
> -I./include -I/home/alanb/gccsdk/gcc4/srcdir/cloog/include  -I/home/alanb/gccsd
> k/gcc4/builddir/installed-libs-for-cross-gcc/include -I/home/alanb/gccsdk/gcc4/b
> uilddir/installed-libs-for-cross-gcc/include  -Wall -fomit-frame-pointer -g -O2
> -MT cloog.o -MD -MP -MF .deps/cloog.Tpo -c -o cloog.o `test -f 'source/cloog.c'
> || echo '/home/alanb/gccsdk/gcc4/srcdir/cloog/'`source/cloog.c
> mv -f .deps/cloog.Tpo .deps/cloog.Po
> /bin/bash ./libtool --tag=CC   --mode=link gcc -Wall -fomit-frame-pointer -g -O2
>   -L/home/alanb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib -L/home/al
> anb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib  -o cloog cloog.o libc
> loog.la -lgmp -lppl_c -lppl -lgmpxx -Wl,-lstdc++
> libtool: link: gcc -Wall -fomit-frame-pointer -g -O2 -o cloog cloog.o -Wl,-lstdc
> ++  -L/home/alanb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib ./.libs/
> libcloog.a /home/alanb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib/lib
> ppl_c.a /home/alanb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib/libppl
> .a /home/alanb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib/libgmpxx.a
> /home/alanb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib/libgmp.a
> /usr/bin/ld: cannot find -lstdc++
> 
> It looks like this cloog item can’t find –lstdc++. How do I fix this?
> 
> As a test I did manage to link it by using g++ in the makefile, but this is
> overwritten once I tried to remake gcc4 again.

First of all, CLooG-PPL is optional, so you can dance around this
problem by setting GCC_USE_PPL_CLOOG to no in gcc4/Makefile.

Secondly, CLooG's Makefile is in fact wrong by using gcc to link libraries
which do require C++ libraries (the confusion is that CLooG itself is C
only).  The real trouble is that the PPL version of CLooG is a bit hacked
by its developers and not really going to be maintained in future (in
gcc 4.7 this will be switched to CLooG-ISL instead).

Perhaps the following is better workaround: locate CROSS_GCC_CONFIG_ARGS in
gcc4/Makefile which specifies --with-host-libstdcxx, change its value into:

  --with_host-libstdcxx=/usr/lib/libstdc++.so.6

Does that solve your problem ?

If we really want to know why libstdc++ does not get found on your
system, try:

  $ cd builddir/cross-cloog
  $ gcc -v -Wall -fomit-frame-pointer -g -O2 -o cloog cloog.o -Wl,-lstdc++  -L/home/alanb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib ./.libs/ libcloog.a /home/alanb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib/lib ppl_c.a /home/alanb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib/libppl .a /home/alanb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib/libgmpxx.a /home/alanb/gccsdk/gcc4/builddir/installed-libs-for-cross-gcc/lib/libgmp.a

I.e. add the -v option to gcc and look at the -L options specified with
the collect2 line (last line).  In my case I have one which says
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../.. and in /usr/lib I do have
libstdc++.so.6 file.

John.
-- 
John Tytgat, in his comfy chair at home                                 BASS
John.Tytgat at aaug.net                             ARM powered, RISC OS driven




More information about the gcc mailing list