gcc install fails silently (AVR build)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm tying to compile gcc for AVR. configure, make and make install went smoothly (i.e.: without any /visible/ error) - but I noticed that 'g++' was installed but not 'gcc'. I spend a lot of time trying and googling without much progress.

I have all the required dependencies and a working gcc/binutils/libc for my platform (Debian Squeeze x86_64). Here is my setting:

sh$ export VERSION=4.7.1
sh$ wget "ftp://ftp.gnu.org/gnu/gcc/gcc-${VERSION}/gcc-${VERSION}.tar.bz2";
sh$ tar xjf gcc-${VERSION}.tar.bz2
sh$ mkdir gcc-${VERSION}-build
sh$ cd gcc-${VERSION}-build/
sh$ ../gcc-${VERSION}/configure --prefix=/tmp/gcc-${VERSION} \
--program-prefix=avr- --program-suffix=-${VERSION} \
                           --target=avr \
                           --enable-languages=c,c++
 sh$ make -j9
 sh$ make install


At this point, when looking in the installation directory, I notice that 'g++' is there, but not 'gcc':
 sh$ ls /tmp/gcc-4.7.1/bin/
avr-c++-4.7.1  avr-g++-4.7.1     avr-gcc-nm-4.7.1      avr-gcov-4.7.1
avr-cpp-4.7.1  avr-gcc-ar-4.7.1  avr-gcc-ranlib-4.7.1

*But*, the cross compiler are present in the build directory:
 sh$ ls -l gcc/*cross*
-rwxr-xr-x 1 sylvain sylvain 1667242 Jul 17 19:52 gcc/gcc-cross
-rwxr-xr-x 1 sylvain sylvain 1680692 Jul 17 19:52 gcc/g++-cross


By looking at the output of 'make install' I notice an error while copying gcc-cross:

-------8<----------
rm -f /tmp/gcc-4.7.1/bin/avr-gcc-4.7.1
/usr/bin/install -c xgcc /tmp/gcc-4.7.1/bin/avr-gcc-4.7.1
rm -f /tmp/gcc-4.7.1/bin/avr-gcc-4.7.1
( cd /tmp/gcc-4.7.1/bin && \
           ln avr-gcc-4.7.1 avr-gcc-4.7.1 )       <<<<<<<  STRANGE ???
ln: accessing `avr-gcc-4.7.1': No such file or directory
make[2]: [install-driver] Error 1 (ignored)       <<<<<<<  ERROR !!!
if [ -f gcc-cross ] ; then \
if [ -d /tmp/gcc-4.7.1/lib/gcc/avr/4.7.1/../../../../avr/bin/. ] ; then \ rm -f /tmp/gcc-4.7.1/lib/gcc/avr/4.7.1/../../../../avr/bin/gcc; \ /usr/bin/install -c gcc-cross /tmp/gcc-4.7.1/lib/gcc/avr/4.7.1/../../../../avr/bin/gcc; \
          else true; fi; \
        else \
          rm -f /tmp/gcc-4.7.1/bin/avr-gcc-tmp; \
          ( cd /tmp/gcc-4.7.1/bin && \
            ln avr-gcc-4.7.1 avr-gcc-tmp && \
            mv -f avr-gcc-tmp avr-avr-gcc-4.7.1 ); \
        fi
-------8<----------

There is something strange here: the script try to link gcc on itself (ln avr-gcc-4.7.1 avr-gcc-4.7.1) in the destination folder just after having removed it if present (rm -f /tmp/gcc-4.7.1/bin/avr-gcc-4.7.1) and before actually copying it ???

Obviously something went bad there. I suspect I was doing the wrong way at configure-time: while I reconfigure without ''--program-prefix=avr-'', ''make install'' install ''avr-gcc-4.7.1'' in the destination directory, but all the other binaries are without the ''avr-'' prefix (like ''g++-4.7.1'').

Anyway, the really puzzling thing here is that in on case it works for g++ (''avr-g++-4.7.1'') but not gcc - and the other case this is the opposite... Is there any way to have all the executables installed with their name rewritten as ''avr-XXXX-4.7.1''?


I would be very grateful for any help or pointer with this issue,
Thanks in advance,
- Sylvain.


PS/I tried the same configuration with 4.6.3 and obtained the exact same result...


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux