Re: Trouble building cross-compiler i686-pc-linux-gnu => mipsel-elf

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

 



Hello!

Andrew Haley wrote:
Ralf Jahr wrote:

I try to build a cross-compiler for a mips-target. My goal is not to run
the code but to get an idea of how gcc performs optimizations as for
example modulo scheduling. The target I am actually working with is the
PISA architecture used by SimpleScalar. This is not supported but
similar to the mips4 architecture. So far...

I used this tutorial [1] and GCC 4.3.2, binutils 2.18. Compiling the
binutils and gcc worked fine, it did not throw any errors. You can see
my log here: [2]

[1] http://wiki.osdev.org/GCC_Cross-Compiler#Step_1_-_Bootstrap
[2] http://www.informatik.uni-augsburg.de/~jahrralf/gcc.php

Well, i assumed that I would get a compiler which can build executables.
Unfortunately but this does not work; I get the following error message:

/usr/cross-mips/lib/gcc/mipsel-elf/4.3.2/../../../../mipsel-elf/bin/ld:
crti.o: No such file: No such file or directory
collect2: ld returned 1 exit status

More logging information can be seen here:

http://www.informatik.uni-augsburg.de/~jahrralf/gcc.php#testing

Should this normally have worked? Do you have any ideas how in can make
it working or what I did wrong?

crti.o is part of the C library.  You haven't installed a C library, so
your programs won't link.

If you don't need to run your programs, you can simply use the -S option
to gcc to produce source code.

OK, thanks for the inspiration. :-) I got newlibc to compile even without being able to generate executables. Then I saw that "make all" works with GCC although I thought it would not... Then some steps later I can now generate executables and use objdump on them. But I get a warning message:

./mipsel-elf-gcc -O3 hello.c -msoft-float -static
/usr/cross-mips/lib/gcc/mipsel-elf/4.3.2/../../../../mipsel-elf/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400050

I think I can live with this. But if I want to use printf I get another error:

./mipsel-elf-gcc -O3 hello.c -msoft-float -static

hello.c: In function 'main':
hello.c:16: warning: incompatible implicit declaration of built-in function 'printf' /usr/cross-mips/lib/gcc/mipsel-elf/4.3.2/../../../../mipsel-elf/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400050
/tmp/ccqMFE2F.o: In function `main':
(.text+0xd4): undefined reference to `printf'
collect2: ld returned 1 exit status

Even adding the compiled libc.a does not help: [1]

[1] http://www.informatik.uni-augsburg.de/~jahrralf/liberrors.txt

Do you have any ideas how I can get rid of this error, too?

Thanks again!

Ralf


[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