Re: building gcc 4.9.0 cross compiler for msp430 fails - cannot compute suffix of object files

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

 



8.5.2014 20:10, Christoph K. kirjoitti:
Hi,

I still have the same problem, can anyone help, please?!

I want to compile gcc 4.9.0 as a cross compiler for the msp430 architecture.


About the prerequisites
-----------------------
Binutils 2.24 sources have been downloaded, a symbolic link
"binutils" has been created in the gcc source dir.

Normally binutils will be built separately, not in the same time with GCC, during the "bootstrap" (first time ever) build for the toolchain. And be updated separately, be
used with many GCC versions for the same target etc.

Then ...
cd /usr/local/src/gcc-4.9.0
./contrib/download_prerequisites

This was made for building native GCCs and forgets which extra prerequisite a cross
GCC has :(

mkdir /usr/local/src/gcc-4.9.0-build-msp430-elf
cd /usr/local/src/gcc-4.9.0-build-msp430-elf
../gcc-4.9.0/configure --target=msp430-elf \
   --prefix=/usr/local/msp430-elf --enable-languages=c,c++

The extra prerequisite for a cross GCC of course is having the target C library preinstalled! A native target system has it in '/lib', '/usr/include' and '/usr/lib' in an old Linux/32-bit case. The exception is an embedded target which uses 'newlib' as its C library and usually has only the newlib sources during the "bootstrap" phase. Later one of course has the earlier built newlib binaries and headers for the target. So when bootstraping one needs to tell that newlib will be used as the target C library via '--with-newlib' in the GCC configure.

The error
---------
make of gcc fails with the following error:
...
checking for msp430-elf-gcc... \
   /usr/local/src/gcc-4.9.0-build-msp430-elf/./gcc/xgcc \
   -B/usr/local/src/gcc-4.9.0-build-msp430-elf/./gcc/ \
   -B/msp430-elf/bin/ -B/msp430-elf/lib/ \
   -isystem /msp430-elf/include -isystem /msp430-elf/sys-include
checking for suffix of object files... configure: error: \
   in `/usr/local/src/gcc-4.9.0-build-msp430-elf/msp430-elf/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[1]: *** [configure-target-libgcc] Fehler 1
make[1]: Leaving directory `/usr/local/src/gcc-4.9.0-build-msp430-elf'
make: *** [all] Fehler 2

Probably building libgcc needs some headers from the target C library headers. If it was told being newlib, then the configury system would have known where they are : In the provided newlib sources, 'newlib' and 'libgloss' subdirs from them being symlinked into the GCC
sources...

So please try the normal build phases for a newlib-based (assuming 'msp430-elf' uses it)
cross GCC :

1. configure, build and install GNU binutils for the target

2. symlink the 'newlib' and 'libgloss' subdirs from the newlib-x.y.z sources into the main
    GCC source directory just like the 'gmp', 'mpfr' and 'mpc' sources...

3. configure, build and install GCC for the target, use '--with-newlib' in configure. And use exactly the same '--prefix=$prefix' and '--target=$target' switches as with the binutils
    configure!





[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