Building a cross-compiler for a Raspberry Pi

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

 



Hello,

I have already built successfully a working cross-compiler for several machines: i686-w64-mingw32 and avr.
Now, I would like to build a cross-compiler for a Raspberry Pi.

The programs I am using are:
- binutils-2.26
- gcc-5.3.0

I start by building binutils for my target machine:
---
$ ./configure --prefix=/usr --target=arm-unknown-linux-gnueabi --disable-nls
$ make
---

As you can see, I am using the "arm-unknown-linux-gnueabi" machine name.
I don't know exactly how we determine the correct machine name.
I have done a first try with "arm-linux-gnu" then I got an error later while building gcc:
---
$ ../gcc-5.3.0/configure --prefix=/usr --target=arm-linux-gnu --enable-languages=c --disable-nls --disable-multilib --disable-threads --disable-shared
$ make
[...]
checking if mkdir takes one argument... no
*** Configuration arm-unknown-linux-gnu not supported
make[1]: *** [configure-gcc] Error 1
make[1]: Leaving directory `/tmp/build/arm-unknown-linux-gnueabi/gcc-5.3.0-tmp'
make: *** [all] Error 2
---
But as I have read some web pages [1, 2, 3] where "arm-unknown-linux-gnueabi" is the machine name, I have used this machine name.
With this new machine name, the error above disappears.
It seems that the machine name matters while building the cross-compiler and I can't use any value for that.

After building binutils successfully, I continue by building gcc for my target machine:
$ ../gcc-5.3.0/configure --prefix=/usr --target=arm-unknown-linux-gnueabi --enable-languages=c,c++ --disable-nls --disable-multilib --disable-threads --disable-shared
$ make
[...]
checking dynamic linker characteristics... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
make[1]: *** [configure-target-libssp] Error 1
make[1]: Leaving directory `/tmp/build/arm-unknown-linux-gnueabi/gcc-5.3.0-tmp'
make: *** [all] Error 2

The error above means that glibc is missing (at least that's what I read in [4]).
So, I need to cross-compile glibc.
But for doing that, I have to build a minimal cross-compiler first.
I probably need to disable other things in order to build the cross-compiler without glibc.

My questions:
1) How we determine the correct machine name?
2) How to build my cross-compiler without glibc?

Thank you.
Best regards.

[1] http://www.bootc.net/archives/2012/05/26/how-to-build-a-cross-compiler-for-your-raspberry-pi/
[2] http://blog.felipe.rs/2015/01/20/how-to-build-a-gcc-cross-compiler-for-the-raspberrypi/
[3] https://gcc.gnu.org/gcc-5/buildstat.html
[4] https://gcc.gnu.org/ml/gcc-help/2012-07/msg00015.html



[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