gcc build fails "cannot compute suffix of object files"

Joel Sherrill joel.sherrill at OARcorp.com
Fri Dec 12 15:53:35 UTC 2008


Hi,

First if you updated to RHEL5, you could just use the prebuilt RPMs.


Second, dou are using binutils from the wrong place.
After it is installed, you should have /opt/rtems/bin in your PATH
based upon what I see in the log. The directory configure
found ranlib is in NOT for public use.

checking for arm-rtems4.10-ranlib...
/opt/rtems/rtems-4.10//arm-rtems4.10/bin/ranlib

Since these tools don't have the target in front of the tool
base name, gcc is probably confusing native and cross in horrible
ways.

chenyulongrtems wrote:
> Hi all !
> I'm building arm toolchain for rtems-4.10, when building gcc-4.3.2 I
> meet a problem .
> My pc is RHEL4 , and my sources is :
> binutils-2.19-rtems4.10-20081023.diff
> binutils-2.19.tar.bz2
> gcc-core-4.3.2-rtems4.10-20081119.diff
> gcc-core-4.3.2.tar.bz2
> newlib-1.16.0.cvs.20081127-rtems4.10-20081127.diff
> newlib-1.16.0.cvs.20081127.tar.gz
> when make gcc it fails as:
> make[1]: Entering directory `/opt/rtems/tools/b-gcc'
> make[2]: Entering directory `/opt/rtems/tools/b-gcc/libiberty'
> make[3]: Entering directory `/opt/rtems/tools/b-gcc/libiberty/testsuite'
> make[3]: Nothing to be done for `all'.
> make[3]: Leaving directory `/opt/rtems/tools/b-gcc/libiberty/testsuite'
> make[2]: Leaving directory `/opt/rtems/tools/b-gcc/libiberty'
> make[2]: Entering directory `/opt/rtems/tools/b-gcc/fixincludes'
> make[2]: Nothing to be done for `all'.
> make[2]: Leaving directory `/opt/rtems/tools/b-gcc/fixincludes'
> make[2]: Entering directory `/opt/rtems/tools/b-gcc/intl'
> make[2]: Nothing to be done for `all'.
> make[2]: Leaving directory `/opt/rtems/tools/b-gcc/intl'
> make[2]: Entering directory
> `/opt/rtems/tools/b-gcc/build-i686-pc-linux-gnu/libiberty'
> make[3]: Entering directory
> `/opt/rtems/tools/b-gcc/build-i686-pc-linux-gnu/libiberty/testsuite'
> make[3]: Nothing to be done for `all'.
> make[3]: Leaving directory
> `/opt/rtems/tools/b-gcc/build-i686-pc-linux-gnu/libiberty/testsuite'
> make[2]: Leaving directory
> `/opt/rtems/tools/b-gcc/build-i686-pc-linux-gnu/libiberty'
> make[2]: Entering directory
> `/opt/rtems/tools/b-gcc/build-i686-pc-linux-gnu/fixincludes'
> make[2]: Nothing to be done for `all'.
> make[2]: Leaving directory
> `/opt/rtems/tools/b-gcc/build-i686-pc-linux-gnu/fixincludes'
> make[2]: Entering directory `/opt/rtems/tools/b-gcc/libcpp'
> make[2]: Nothing to be done for `all'.
> make[2]: Leaving directory `/opt/rtems/tools/b-gcc/libcpp'
> make[2]: Entering directory `/opt/rtems/tools/b-gcc/libdecnumber'
> make[2]: Nothing to be done for `all'.
> make[2]: Leaving directory `/opt/rtems/tools/b-gcc/libdecnumber'
> make[2]: Entering directory `/opt/rtems/tools/b-gcc/gcc'
> make[2]: Leaving directory `/opt/rtems/tools/b-gcc/gcc'
> Checking multilib configuration for libgcc...
> Configuring in arm-rtems4.10/libgcc
> configure: loading cache ./config.cache
> checking for --enable-version-specific-runtime-libs... no
> checking for a BSD-compatible install... /usr/bin/install -c
> checking for gawk... gawk
> checking build system type... i686-pc-linux-gnu
> checking host system type... arm-unknown-rtems4.10
> checking for arm-rtems4.10-ar...
> /opt/rtems/rtems-4.10//arm-rtems4.10/bin/ar
> checking for arm-rtems4.10-lipo... arm-rtems4.10-lipo
> checking for arm-rtems4.10-nm... /opt/rtems/tools/b-gcc/./gcc/nm
> checking for arm-rtems4.10-ranlib...
> /opt/rtems/rtems-4.10//arm-rtems4.10/bin/ranlib
> checking for arm-rtems4.10-strip..
> /opt/rtems/rtems-4.10//arm-rtems4.10/bin/strip
> checking whether ln -s works... yes
> checking for arm-rtems4.10-gcc... /opt/rtems/tools/b-gcc/./gcc/xgcc
> -B/opt/rtems/tools/b-gcc/./gcc/ -nostdinc
> -B/opt/rtems/tools/b-gcc/arm-rtems4.10/newlib/ -isystem
> /opt/rtems/tools/b-gcc/arm-rtems4.10/newlib/targ-include -isystem
> /opt/rtems/tools/gcc-4.3.2/newlib/libc/include
> -B/opt/rtems/rtems-4.10//arm-rtems4.10/bin/
> -B/opt/rtems/rtems-4.10//arm-rtems4.10/lib/ -isystem
> /opt/rtems/rtems-4.10//arm-rtems4.10/include -isystem
> /opt/rtems/rtems-4.10//arm-rtems4.10/sys-include
> checking for suffix of object files... configure: error: cannot
> compute suffix of object files: cannot compile
> See `config.log' for more details.
> make[1]: *** [configure-target-libgcc] Error 1
> make[1]: Leaving directory `/opt/rtems/tools/b-gcc'
> make: *** [all] Error 2
> In config.log, I then see:
>
> configure:4083: g++ -c -g -O2 conftest.cc >&5
> conftest.cc: In function `int main()':
> conftest.cc:13: error: `exit' undeclared (first use this function)
> conftest.cc:13: error: (Each undeclared identifier is reported only
> once for each function it appears in.)
> configure:4089: $? = 1
> configure: failed program was:
> | /* confdefs.h. */
> |
> | #define PACKAGE_NAME ""
> | #define PACKAGE_TARNAME ""
> | #define PACKAGE_VERSION ""
> | #define PACKAGE_STRING ""
> | #define PACKAGE_BUGREPORT ""
> | /* end confdefs.h. */
> |
> | int
> | main ()
> | {
> | exit (42);
> | ;
> | return 0;
> | }
> Any ideas about what I need to fix?
>
> Thanks,
>
>
> ------------------------------------------------------------------------
> 网易免费邮,全球最大的中文免费邮箱 <http://www.yeah.net> 


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985





More information about the users mailing list