Gentoo Archives: gentoo-embedded

From: Tommy B <gentoo@×××××.com>
To: gentoo-embedded@l.g.o
Subject: Re: [gentoo-embedded] Building native arm gcc toolchain
Date: Sat, 25 Jun 2005 05:07:26
Message-Id: 42BCE663.8090407@nc.rr.com
In Reply to: Re: [gentoo-embedded] Building native arm gcc toolchain by Kumba
1 Kumba wrote:
2
3 > Brian Koropoff wrote:
4 >
5 >> As far as I know, crossdev only builds a cross compiler which runs on
6 >> your build system but generates executables for another
7 >> processor/architecture. I've already used crossdev sucessfully to
8 >> generate such a compiler for arm. What I want to do now is build a
9 >> compiler that *runs* on arm and creates arm executables (that is, both
10 >> the host and target platform is arm, not just the target). This should
11 >> be as simple as using portage with my crossdev-built cross-compiler and
12 >> emerging it, but the build fails. Is there any trick to getting portage
13 >> to build a native gcc to be included in the arm root fs?
14 >
15 >
16 > If I'm reading this right, then what you want to do is impossible.
17 > You can't build a gcc that runs on arm, and builds for arm, on a
18 > cross-host. gcc has a rather strange build phase, wherein it rebuilds
19 > itself 2-3 times (if you watch a gcc build closely, you'll see an
20 > "xgcc" and references to stage1 and stage2 bootstraps). As such, if
21 > you want to build a native compiler, you have to build on the native
22 > architecture. This is because when the initial bootstrap completes,
23 > and gcc kicks off it's stage1 xgcc run, that xgcc is an arm binary,
24 > and it tries to build a stage2 xgcc arm binary. If performed on a
25 > fast x86 box, this will fail.
26 >
27 >
28 > --Kumba
29 >
30 Sorry to but in here, however I've been building the armv5teb (IXP4xx
31 chip) like this for months. Unfortunately, it's with open embedded (OE).
32
33 Not only that, but I've natively built the following with the tools
34 generated:
35 Linux 2.6.11.2
36 Apache 2.0.5
37 Perl 5.8.7 ran make test Failed 1 test script out of 878, 99.89%
38 okay which is a known coreutils bug
39 Python 2.4.1 make test 244 OK 3 tests failed: test_mimetools
40 test_random test_urllib2
41
42 OE is pretty libc neutral so this can usually be done for both glibc and
43 uClibc.
44
45 The hardened and PIE parts are missing from OE. Also the package are
46 constantly changing and some packages build but don't work. It's a lot
47 of chaos. And there are not nearly the number of packages as in Gentoo.
48 Hopefully in the not to distant future will I'll have everything
49 required to a stage1 build straight from the target. We may have
50 everything now, but the finishing touches are being done to the native
51 development environment. Currently, OE and the nslu2-linux project are
52 in the middle of the SCM switch from BK to something else. Things are
53 in flux right now and this squares the chaos. I'm sure it'll die down in
54 a couple weeks.
55
56 See
57 http://www.nslu2-linux.org/wiki/HowTo/OpenSlugNativeCompileEnvironment.
58 The following for all the packages that are cross built
59 http://www.nslu2-linux.org/wiki/HowTo/OpenSlugDevInst
60
61 Best Regards,
62
63 Tommy B.
64 [g2]
65
66
67
68
69
70
71
72
73
74
75
76 --
77 gentoo-embedded@g.o mailing list