This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cannot build a gcc cross-compiler


'booleandomain',
All,

Please, please... The address for this mailing list is:
  crossgcc@sourceware.org

The one you're using is a legacy alias, drop using it, please...

On Thursday 23 July 2009 07:18:17 booleandomain wrote:
> I attached to this message the script I'm using for building my 
> toolchain. It is much more primitive than crosstool-ng (I still haven't 
> managed to run it properly) but also much easier to understand.

Much easier to understand, but much incomplete, see below...

> Another difference is that I'm trying to use the very latest releases 
> instead of using older ones.

Well, using gcc-4.4.1 the day it is released is asking for trouble... ;-)

I'm aiming at making crosstool-NG follow the latest versions, but I'm
lagging by a few... gcc-4.4.0 is already in, while glibc 2.10 will require
some changes (damned those fools that don't want to release tarballs...)

> The script runs successfully until the glibc is compiled: this one fails 
> with the following error message:

I just had a quick glance at your script. Here's the steps you're folowing:

install_binutils
install_gcc1
install_linux
install_glibc
install_gcc2

Total: 5 steps (plus gmp and mpfr done with gcc)
(Oh, BTW, no need for all these "|| exit 1", just use "set -e" at
 the top of your sccript.)

You almost got it right. But not quite so... Let me explain.
Here's what crosstool-NG does, with comments for each steps:

- libc_check_config
    -> unused for glibc/eglibc, used by uClibc

- kernel_headers
    -> install kernel headers, used by libc_headers, below

- gmp
- mpfr
- ppl
- cloog
- mpc
    -> those five are libraries that gcc _requires_ to correctly
       build (you can get away without some of those, but you'd
       lack features).

- binutils
- elf2flt
    -> binary utils, needed later by cc_core_pass_1, below;
       elf2flt is used for bare metal, skipped when building for Linux

- cc_core_pass_1
    -> bare-metal-like C-only compiler, used by libc_start_files, below

- libc_headers
- libc_start_files
    -> install C lilbrary headers, and so-called start files

- cc_core_pass_2
    -> second pass at a C-only compiler, using the previously built
       C library files, but thjis time with threading and TLS enabled;
       required to build the C library, below

- libc
    -> build the complete C library

- cc
    -> build a complete compiler: C, C++, java... with threading, TLS...
       and all the good stuff

- libc_finish
    -> used for legacy, non-NPTL glibc, now unused
       unused by uClibc

- gmp_target
- mpfr_target
- binutils_target
- tools
- debug
    -> forget those steps they are just goodies.

- finish
    -> internal step to finalise the toolchains directory structure

All in all, that gives 15 steps that are absolutely necessary. So, as
you can see, you're quite missing some of them... I didn't take time
to look at the ./configure options you're using, though...

Now, you said that you did not manage to make crosstool-NG work.
What was the problem you encountered?

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +0/33 662376056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| --==< ^_^ >==-- `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
`------------------------------^-------^------------------^--------------------'



--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]