* Cross Compiler and loads of issues
@ 2008-06-12 17:52 Shaz
2008-06-12 18:19 ` Wolfgang Denk
` (7 more replies)
0 siblings, 8 replies; 28+ messages in thread
From: Shaz @ 2008-06-12 17:52 UTC (permalink / raw)
To: linux-embedded
Hi,
I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
felt like asking that is there one good way to get a cross compiler
work. I tried buildroot, scratchbox and even openMoko with
openEmbedded but all of them had lots of issues and don't know which
will be the best alternative.
I also went through the material provided freely by Free Electron but
still I am not successful to build a custom kernel. Next I am trying
MontaVista's kit. I just wish I don't get lost.
Anyways, I liked the idea of Qemu based cross compiler. Is it possible
for the inexperienced to get it working and emulate the exact model
and devices.
--
Shaz
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 17:52 Cross Compiler and loads of issues Shaz
@ 2008-06-12 18:19 ` Wolfgang Denk
2008-06-14 9:44 ` Shaz
2008-06-12 18:26 ` Matthias Kaehlcke
` (6 subsequent siblings)
7 siblings, 1 reply; 28+ messages in thread
From: Wolfgang Denk @ 2008-06-12 18:19 UTC (permalink / raw)
To: Shaz; +Cc: linux-embedded
In message <7b740b700806121052n2f98dfa4hc96ebfc1be5b6bbf@mail.gmail.com> you wrote:
>
> I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
> felt like asking that is there one good way to get a cross compiler
> work. I tried buildroot, scratchbox and even openMoko with
> openEmbedded but all of them had lots of issues and don't know which
> will be the best alternative.
>
> I also went through the material provided freely by Free Electron but
> still I am not successful to build a custom kernel. Next I am trying
> MontaVista's kit. I just wish I don't get lost.
For completeness, there is also the (free) ELDK. Some people are using it.
[And yes, I'm obviously biased :-) ]
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
A list is only as strong as its weakest link. -- Don Knuth
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 17:52 Cross Compiler and loads of issues Shaz
2008-06-12 18:19 ` Wolfgang Denk
@ 2008-06-12 18:26 ` Matthias Kaehlcke
2008-06-12 18:39 ` Bill Traynor
` (5 subsequent siblings)
7 siblings, 0 replies; 28+ messages in thread
From: Matthias Kaehlcke @ 2008-06-12 18:26 UTC (permalink / raw)
To: Shaz; +Cc: linux-embedded
El Thu, Jun 12, 2008 at 10:52:44PM +0500 Shaz ha dit:
> I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
> felt like asking that is there one good way to get a cross compiler
> work. I tried buildroot, scratchbox and even openMoko with
> openEmbedded but all of them had lots of issues and don't know which
> will be the best alternative.
crosstool-ng looks like a promising option:
http://ymorin.is-a-geek.org/dokuwiki/projects/crosstool
--
Matthias Kaehlcke
Embedded Linux Engineer
Barcelona
Nationalism is an infantile disease. It is the measles of mankind
(Albert Einstein)
.''`.
using free software / Debian GNU/Linux | http://debian.org : :' :
`. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `-
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 17:52 Cross Compiler and loads of issues Shaz
2008-06-12 18:19 ` Wolfgang Denk
2008-06-12 18:26 ` Matthias Kaehlcke
@ 2008-06-12 18:39 ` Bill Traynor
2008-06-12 18:49 ` Enrico Weigelt
2008-06-13 13:52 ` Bill Traynor
2008-06-12 18:56 ` Bill Gatliff
` (4 subsequent siblings)
7 siblings, 2 replies; 28+ messages in thread
From: Bill Traynor @ 2008-06-12 18:39 UTC (permalink / raw)
To: Shaz; +Cc: linux-embedded
> Hi,
>
> I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
> felt like asking that is there one good way to get a cross compiler
> work. I tried buildroot, scratchbox and even openMoko with
> openEmbedded but all of them had lots of issues and don't know which
> will be the best alternative.
There is no "one good way". I've had decent success building Dan Kegel's
"crosstool" in the past: http://www.kegel.com/crosstool/
>
> I also went through the material provided freely by Free Electron but
> still I am not successful to build a custom kernel. Next I am trying
> MontaVista's kit. I just wish I don't get lost.
I'd continue the search for prebuilt toolchains. CodeSourcery has a Lite
version of it's ARM, Coldfire, MIPS, and Power toolchains.
>
> Anyways, I liked the idea of Qemu based cross compiler. Is it possible
> for the inexperienced to get it working and emulate the exact model
> and devices.
>
> --
>
> Shaz
> --
> To unsubscribe from this list: send the line "unsubscribe linux-embedded"
> in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 18:39 ` Bill Traynor
@ 2008-06-12 18:49 ` Enrico Weigelt
2008-06-12 19:02 ` Shaz
2008-06-13 13:52 ` Bill Traynor
1 sibling, 1 reply; 28+ messages in thread
From: Enrico Weigelt @ 2008-06-12 18:49 UTC (permalink / raw)
To: Linux Embedded Maillist
* Bill Traynor <wmat@naoi.ca> schrieb:
> There is no "one good way". I've had decent success building Dan Kegel's
> "crosstool" in the past: http://www.kegel.com/crosstool/
I'd also like to mention Yann's crosstool-ng :)
cu
--
---------------------------------------------------------------------
Enrico Weigelt == metux IT service - http://www.metux.de/
---------------------------------------------------------------------
Please visit the OpenSource QM Taskforce:
http://wiki.metux.de/public/OpenSource_QM_Taskforce
Patches / Fixes for a lot dozens of packages in dozens of versions:
http://patches.metux.de/
---------------------------------------------------------------------
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 17:52 Cross Compiler and loads of issues Shaz
` (2 preceding siblings ...)
2008-06-12 18:39 ` Bill Traynor
@ 2008-06-12 18:56 ` Bill Gatliff
2008-06-12 19:30 ` Glenn Henshaw
` (3 subsequent siblings)
7 siblings, 0 replies; 28+ messages in thread
From: Bill Gatliff @ 2008-06-12 18:56 UTC (permalink / raw)
To: Shaz; +Cc: linux-embedded
Shaz wrote:
> Hi,
>
> I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
> felt like asking that is there one good way to get a cross compiler
> work. I tried buildroot, scratchbox and even openMoko with
> openEmbedded but all of them had lots of issues and don't know which
> will be the best alternative.
I like running emdebian's toolchains on a Debian box, myself.
b.g.
--
Bill Gatliff
bgat@billgatliff.com
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 18:49 ` Enrico Weigelt
@ 2008-06-12 19:02 ` Shaz
2008-06-12 19:54 ` George G. Davis
0 siblings, 1 reply; 28+ messages in thread
From: Shaz @ 2008-06-12 19:02 UTC (permalink / raw)
To: weigelt; +Cc: Linux Embedded Maillist
On Thu, Jun 12, 2008 at 11:49 PM, Enrico Weigelt <weigelt@metux.de> wrote:
> * Bill Traynor <wmat@naoi.ca> schrieb:
>
>> There is no "one good way". I've had decent success building Dan Kegel's
>> "crosstool" in the past: http://www.kegel.com/crosstool/
>
> I'd also like to mention Yann's crosstool-ng :)
I guess I have to reconsider cross-tool because earlier I visited this
http://www.kegel.com/crosstool/crosstool-0.43/buildlogs/ and I want to
get the latest kernel up and running on OSK OMAP5912, arm9. The board
is in process of shipment but I started out with a qemu
(arm-generic/versatilepb) based test run.
I am in the middle of a confused experience :-)
>
>
> cu
> --
> ---------------------------------------------------------------------
> Enrico Weigelt == metux IT service - http://www.metux.de/
> ---------------------------------------------------------------------
> Please visit the OpenSource QM Taskforce:
> http://wiki.metux.de/public/OpenSource_QM_Taskforce
> Patches / Fixes for a lot dozens of packages in dozens of versions:
> http://patches.metux.de/
> ---------------------------------------------------------------------
> --
> To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Shaz
Security Engineering Research Group,
Institute of Management Sciences,
Peshawar, Pakistan
Group: http://serg.imsciences.edu.pk
Email: shazalive@gmail.com
cell: +92 300 5944647
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 17:52 Cross Compiler and loads of issues Shaz
` (3 preceding siblings ...)
2008-06-12 18:56 ` Bill Gatliff
@ 2008-06-12 19:30 ` Glenn Henshaw
2008-06-13 4:34 ` Robert Schwebel
` (2 subsequent siblings)
7 siblings, 0 replies; 28+ messages in thread
From: Glenn Henshaw @ 2008-06-12 19:30 UTC (permalink / raw)
To: Shaz; +Cc: linux-embedded
On 12-Jun-08, at 1:52 PM, Shaz wrote:
> Hi,
>
> I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
> felt like asking that is there one good way to get a cross compiler
> work. I tried buildroot, scratchbox and even openMoko with
> openEmbedded but all of them had lots of issues and don't know which
> will be the best alternative.
I've built compiler chains for clients using buildroot.
From my notes:
* download buildroot and expand it in your home directory
* make menuconfig - select kernel, compiler, and uclibc versions.
(2.4.27, 3.4.3, and 0.9.28 respectively), set target to final
destination ,i.e., /opt/armeb as you can't move the compiler once built
* make - this will download compiler, etc and build it. It will most
likely fail the first time.
* patches to apply (http://bugs.uclibc.org/view.php?id=51 - fix LFS
requirements)
* make - again to finish
... Glenn
--
Glenn Henshaw Logical Outcome Ltd.
e: thraxisp@logicaloutcome.ca w: www.logicaloutcome.ca
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 19:02 ` Shaz
@ 2008-06-12 19:54 ` George G. Davis
0 siblings, 0 replies; 28+ messages in thread
From: George G. Davis @ 2008-06-12 19:54 UTC (permalink / raw)
To: Shaz; +Cc: weigelt, Linux Embedded Maillist
On Fri, Jun 13, 2008 at 12:02:06AM +0500, Shaz wrote:
> On Thu, Jun 12, 2008 at 11:49 PM, Enrico Weigelt <weigelt@metux.de> wrote:
> > * Bill Traynor <wmat@naoi.ca> schrieb:
> >
> >> There is no "one good way". I've had decent success building Dan Kegel's
> >> "crosstool" in the past: http://www.kegel.com/crosstool/
> >
> > I'd also like to mention Yann's crosstool-ng :)
> I guess I have to reconsider cross-tool because earlier I visited this
> http://www.kegel.com/crosstool/crosstool-0.43/buildlogs/ and I want to
> get the latest kernel up and running on OSK OMAP5912, arm9. The board
> is in process of shipment but I started out with a qemu
> (arm-generic/versatilepb) based test run.
>
> I am in the middle of a confused experience :-)
I've used this to build cross compilers (which worked ok for me : ):
http://code.google.com/p/jicknan/source/browse/trunk/bin/toolchain-eglibc.sh
As usual, YMMV, good luck, HTH!
--
Regards,
George
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 17:52 Cross Compiler and loads of issues Shaz
` (4 preceding siblings ...)
2008-06-12 19:30 ` Glenn Henshaw
@ 2008-06-13 4:34 ` Robert Schwebel
2008-06-13 5:14 ` Wang, Baojun
2008-06-13 9:24 ` Wookey
2008-06-13 17:24 ` Firmware Linux (was Re: Cross Compiler and loads of issues) Rob Landley
7 siblings, 1 reply; 28+ messages in thread
From: Robert Schwebel @ 2008-06-13 4:34 UTC (permalink / raw)
To: Shaz; +Cc: linux-embedded
On Thu, Jun 12, 2008 at 10:52:44PM +0500, Shaz wrote:
> I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
> felt like asking that is there one good way to get a cross compiler
> work. I tried buildroot, scratchbox and even openMoko with
> openEmbedded but all of them had lots of issues and don't know which
> will be the best alternative.
There's also OSELAS.Toolchain:
http://www.pengutronix.de/oselas/toolchain/index_en.html
We try to be as close to mainline gcc/binutils as possible, and if there
are issues, please report or send patches :-)
> Anyways, I liked the idea of Qemu based cross compiler. Is it possible
> for the inexperienced to get it working and emulate the exact model
> and devices.
No.
rsc
--
Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
Pengutronix - Linux Solutions for Science and Industry
Handelsregister: Amtsgericht Hildesheim, HRA 2686
Hannoversche Str. 2, 31134 Hildesheim, Germany
Phone: +49-5121-206917-0 | Fax: +49-5121-206917-9
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-13 4:34 ` Robert Schwebel
@ 2008-06-13 5:14 ` Wang, Baojun
0 siblings, 0 replies; 28+ messages in thread
From: Wang, Baojun @ 2008-06-13 5:14 UTC (permalink / raw)
To: Shaz, linux-embedded
[-- Attachment #1: Type: text/plain, Size: 1882 bytes --]
在 2008-06-13五的 06:34 +0200,Robert Schwebel写道:
> On Thu, Jun 12, 2008 at 10:52:44PM +0500, Shaz wrote:
> > I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
> > felt like asking that is there one good way to get a cross compiler
> > work. I tried buildroot, scratchbox and even openMoko with
> > openEmbedded but all of them had lots of issues and don't know which
> > will be the best alternative.
If you only need to use the cross toolchain, I think ELDK is a good choice. other alternatives would be gentoo cross toolchain (using crossdev ie crossdev -t powerpc64-unknownlinux-gnu) and emdebian/slind.
Gentoo cross toolchain is my favorite, it very simple to (e)merge (just
crossdev -t arch-vendor-platform-libc) and the toolchain is managed by
gentoo package manager (portage) so all packages in the toolchain is
upgradable. I've installed about 12 different (gentoo) cross toolchain
on one machine for cross compiling.
Personally I don't use emdebian/slind but still I think they're also a
good choice.
> There's also OSELAS.Toolchain:
> http://www.pengutronix.de/oselas/toolchain/index_en.html
>
> We try to be as close to mainline gcc/binutils as possible, and if there
> are issues, please report or send patches :-)
>
> > Anyways, I liked the idea of Qemu based cross compiler. Is it possible
> > for the inexperienced to get it working and emulate the exact model
> > and devices.
>
> No.
>
> rsc
--
Wang, Baojun Lanzhou University
Distributed & Embedded System Lab http://dslab.lzu.edu.cn
School of Information Science and Engeneering wangbj@dslab.lzu.edu.cn
Tianshui South Road 222. Lanzhou 730000 .P.R.China
Tel: +86-931-8912025 Fax: +86-931-8912022
[-- Attachment #2: 这是信件的数字签名部分 --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 17:52 Cross Compiler and loads of issues Shaz
` (5 preceding siblings ...)
2008-06-13 4:34 ` Robert Schwebel
@ 2008-06-13 9:24 ` Wookey
2008-06-13 12:00 ` Shaz
2008-06-13 17:24 ` Firmware Linux (was Re: Cross Compiler and loads of issues) Rob Landley
7 siblings, 1 reply; 28+ messages in thread
From: Wookey @ 2008-06-13 9:24 UTC (permalink / raw)
To: Shaz; +Cc: linux-embedded
On 2008-06-12 22:52 +0500, Shaz wrote:
> Hi,
>
> I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
> felt like asking that is there one good way to get a cross compiler
> work. I tried buildroot, scratchbox and even openMoko with
> openEmbedded but all of them had lots of issues and don't know which
> will be the best alternative.
'issues' are generally par for the course. It's a difficult problem.
I've generally found buildroot the least-painful of the above, largely
because it targets a relatively small section of the problem-space.
For completeness I should also mention that Embedded Debian provides
yet another option. I will not claim that it will have fewer issues
than the above. http://www.emdebian.org/emdebian/intro.html
I'm not sure if you are really asking about toolchains or build-systems?
The former is fairly reliably solved. For a debian-based box just
install pre-built cross toolchians from emdebian:
http://www.emdebian.org/tools/crosstools.html
(from i386, amd64, powerpc; to: nearly all debian-supported
architectures, gcc3.3, 3.4, 4.1, 4.2, 4.3)
http://www.emdebian.org/toolchains/search.php?section=devel gives more
details.
emdebian-tools also provides the debian equivalent of crosstool
('emchain' to build your own version of current current toolchain,
should a suitable pre-built one not exist.
For non-debian boxes other people seem to have listed the options so I
won't repeat (and it's not my area of expertise).
Wookey (Emdebian 'Chief bullshitter' - bias alert. The toolchains are
great though, really.)
--
Principal hats: Balloonz - Toby Churchill - Aleph One - Debian
http://wookware.org/
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-13 9:24 ` Wookey
@ 2008-06-13 12:00 ` Shaz
2008-06-13 14:13 ` Bill Traynor
0 siblings, 1 reply; 28+ messages in thread
From: Shaz @ 2008-06-13 12:00 UTC (permalink / raw)
To: linux-embedded
It's nice to see we have so many options and related people and pros
to it are available around.
IMO there should be some sort of effort to standardize the tool-chains
and build environments coherently with the kernel. I think its a prime
time to work around all the possibilities and standardize so that a
collaborative effort similar to Linux kernel can be set ahead. I think
thats the objective of this list too. Any plans yet sorted out?
On Fri, Jun 13, 2008 at 2:24 PM, Wookey <wookey@wookware.org> wrote:
>
> On 2008-06-12 22:52 +0500, Shaz wrote:
> > Hi,
> >
> > I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
> > felt like asking that is there one good way to get a cross compiler
> > work. I tried buildroot, scratchbox and even openMoko with
> > openEmbedded but all of them had lots of issues and don't know which
> > will be the best alternative.
>
> 'issues' are generally par for the course. It's a difficult problem.
> I've generally found buildroot the least-painful of the above, largely
> because it targets a relatively small section of the problem-space.
>
> For completeness I should also mention that Embedded Debian provides
> yet another option. I will not claim that it will have fewer issues
> than the above. http://www.emdebian.org/emdebian/intro.html
>
> I'm not sure if you are really asking about toolchains or build-systems?
> The former is fairly reliably solved. For a debian-based box just
> install pre-built cross toolchians from emdebian:
> http://www.emdebian.org/tools/crosstools.html
> (from i386, amd64, powerpc; to: nearly all debian-supported
> architectures, gcc3.3, 3.4, 4.1, 4.2, 4.3)
> http://www.emdebian.org/toolchains/search.php?section=devel gives more
> details.
>
> emdebian-tools also provides the debian equivalent of crosstool
> ('emchain' to build your own version of current current toolchain,
> should a suitable pre-built one not exist.
>
> For non-debian boxes other people seem to have listed the options so I
> won't repeat (and it's not my area of expertise).
>
> Wookey (Emdebian 'Chief bullshitter' - bias alert. The toolchains are
> great though, really.)
> --
> Principal hats: Balloonz - Toby Churchill - Aleph One - Debian
> http://wookware.org/
--
Shaz
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 18:39 ` Bill Traynor
2008-06-12 18:49 ` Enrico Weigelt
@ 2008-06-13 13:52 ` Bill Traynor
1 sibling, 0 replies; 28+ messages in thread
From: Bill Traynor @ 2008-06-13 13:52 UTC (permalink / raw)
To: Bill Traynor; +Cc: Shaz, linux-embedded
>> Hi,
>>
>> I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
>> felt like asking that is there one good way to get a cross compiler
>> work. I tried buildroot, scratchbox and even openMoko with
>> openEmbedded but all of them had lots of issues and don't know which
>> will be the best alternative.
>
> There is no "one good way". I've had decent success building Dan Kegel's
> "crosstool" in the past: http://www.kegel.com/crosstool/
>>
>> I also went through the material provided freely by Free Electron but
>> still I am not successful to build a custom kernel. Next I am trying
>> MontaVista's kit. I just wish I don't get lost.
>
> I'd continue the search for prebuilt toolchains. CodeSourcery has a Lite
> version of it's ARM, Coldfire, MIPS, and Power toolchains.
I should have pointed this out before, but there is a useful Toolchains
wiki page here: http://elinux.org/Toolchains
Feel free to contribute findings to that page.
>
>>
>> Anyways, I liked the idea of Qemu based cross compiler. Is it possible
>> for the inexperienced to get it working and emulate the exact model
>> and devices.
>>
>> --
>>
>> Shaz
>> --
>> To unsubscribe from this list: send the line "unsubscribe
>> linux-embedded"
>> in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-embedded"
> in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-13 12:00 ` Shaz
@ 2008-06-13 14:13 ` Bill Traynor
2008-06-13 14:46 ` Jamie Lokier
2008-06-13 15:11 ` Shaz
0 siblings, 2 replies; 28+ messages in thread
From: Bill Traynor @ 2008-06-13 14:13 UTC (permalink / raw)
To: Shaz; +Cc: linux-embedded
> It's nice to see we have so many options and related people and pros
> to it are available around.
>
> IMO there should be some sort of effort to standardize the tool-chains
> and build environments coherently with the kernel. I think its a prime
> time to work around all the possibilities and standardize so that a
> collaborative effort similar to Linux kernel can be set ahead. I think
> thats the objective of this list too. Any plans yet sorted out?
I don't understand what you mean by "standardize the tool-chains and build
environments", can you provide specifics? Similarly, what does "work
around all the possibilities and standardize" mean?
Maybe I'm being dense, but what's specifically wrong with the current
toolchain universe?
>
> On Fri, Jun 13, 2008 at 2:24 PM, Wookey <wookey@wookware.org> wrote:
>>
>> On 2008-06-12 22:52 +0500, Shaz wrote:
>> > Hi,
>> >
>> > I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
>> > felt like asking that is there one good way to get a cross compiler
>> > work. I tried buildroot, scratchbox and even openMoko with
>> > openEmbedded but all of them had lots of issues and don't know which
>> > will be the best alternative.
>>
>> 'issues' are generally par for the course. It's a difficult problem.
>> I've generally found buildroot the least-painful of the above, largely
>> because it targets a relatively small section of the problem-space.
>>
>> For completeness I should also mention that Embedded Debian provides
>> yet another option. I will not claim that it will have fewer issues
>> than the above. http://www.emdebian.org/emdebian/intro.html
>>
>> I'm not sure if you are really asking about toolchains or build-systems?
>> The former is fairly reliably solved. For a debian-based box just
>> install pre-built cross toolchians from emdebian:
>> http://www.emdebian.org/tools/crosstools.html
>> (from i386, amd64, powerpc; to: nearly all debian-supported
>> architectures, gcc3.3, 3.4, 4.1, 4.2, 4.3)
>> http://www.emdebian.org/toolchains/search.php?section=devel gives more
>> details.
>>
>> emdebian-tools also provides the debian equivalent of crosstool
>> ('emchain' to build your own version of current current toolchain,
>> should a suitable pre-built one not exist.
>>
>> For non-debian boxes other people seem to have listed the options so I
>> won't repeat (and it's not my area of expertise).
>>
>> Wookey (Emdebian 'Chief bullshitter' - bias alert. The toolchains are
>> great though, really.)
>> --
>> Principal hats: Balloonz - Toby Churchill - Aleph One - Debian
>> http://wookware.org/
>
>
>
> --
> Shaz
> --
> To unsubscribe from this list: send the line "unsubscribe linux-embedded"
> in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-13 14:13 ` Bill Traynor
@ 2008-06-13 14:46 ` Jamie Lokier
2008-06-13 15:19 ` Enrico Weigelt
` (2 more replies)
2008-06-13 15:11 ` Shaz
1 sibling, 3 replies; 28+ messages in thread
From: Jamie Lokier @ 2008-06-13 14:46 UTC (permalink / raw)
To: Bill Traynor; +Cc: Shaz, linux-embedded
Bill Traynor wrote:
> Maybe I'm being dense, but what's specifically wrong with the current
> toolchain universe?
Back in ye olde days, you could download GCC and Binutils from
gnu.org, configure for whatever is your architecture, and most times
it just worked.
For some reason, that stopped a while ago, and you had to go to
different places to get working basic tools. And often, the place to
go wasn't clear. Different people advertised their "ARM toolchain",
"m68k toolchain" etc. and they were slightly different sets of
patches on top of mainline tools. Central authorities you might
believe in existed, but they were always a few patches behind what you
actually needed.
When I last needed a toolchain, Google led to confusing results, and I
had to try more than one. I still use mutiple GCC versions (from
different people) to compile different programs for the same
architecture: each one fails some things in a different way, including
run-time failures in the precompiled toolchains.
Just Google for "uclinux toolchain" and the top hits lead to very old
releases, with bugs that have long been fixed elsewhere. "uclinux arm
toolchain" is no better.
Perhaps current versions (e.g. from Codesourcery?) are more dependable
for embedded architectures, but I don't have the time to thoroughly
test them, and my last experience warns me to be careful.
It seems people release tools, release patches, publish on an obscure
web page, then forget about the page. More authoritative-sounding
uclinux web pages tend to be out of date. Google isn't finding good
current authorities in this area, which suggests the space is rather
fragmented with people pulling in different directions and not working
together enough to create stable, common places for these things.
Contrast with kernel.org: everyone knows where to get a good working
Linux kernel for the mainstream architectures, and the quality work
tends to be quite good at reaching mainline there nowadays.
-- Jamie
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-13 14:13 ` Bill Traynor
2008-06-13 14:46 ` Jamie Lokier
@ 2008-06-13 15:11 ` Shaz
1 sibling, 0 replies; 28+ messages in thread
From: Shaz @ 2008-06-13 15:11 UTC (permalink / raw)
To: Bill Traynor; +Cc: linux-embedded
On Fri, Jun 13, 2008 at 7:13 PM, Bill Traynor <wmat@naoi.ca> wrote:
>> It's nice to see we have so many options and related people and pros
>> to it are available around.
>>
>> IMO there should be some sort of effort to standardize the tool-chains
>> and build environments coherently with the kernel. I think its a prime
>> time to work around all the possibilities and standardize so that a
>> collaborative effort similar to Linux kernel can be set ahead. I think
>> thats the objective of this list too. Any plans yet sorted out?
>
> I don't understand what you mean by "standardize the tool-chains and build
> environments", can you provide specifics? Similarly, what does "work
> around all the possibilities and standardize" mean?
>
Well, to put it clearly, there are many solutions to toolchains and
development kits but there must be work that can be stabilized by
streamlining and sorting out similarities, especially with the kernel
and libc. Simply, getting things done as smoothly as it would have
been with building linux from scratch.
This might not make sense as I am a new comer to embedded world so
pardon for any waste of time and thought process.
>> Maybe I'm being dense, but what's specifically wrong with the current
>>toolchain universe?
>>
>> On Fri, Jun 13, 2008 at 2:24 PM, Wookey <wookey@wookware.org> wrote:
>>>
>>> On 2008-06-12 22:52 +0500, Shaz wrote:
>>> > Hi,
>>> >
>>> > I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
>>> > felt like asking that is there one good way to get a cross compiler
>>> > work. I tried buildroot, scratchbox and even openMoko with
>>> > openEmbedded but all of them had lots of issues and don't know which
>>> > will be the best alternative.
>>>
>>> 'issues' are generally par for the course. It's a difficult problem.
>>> I've generally found buildroot the least-painful of the above, largely
>>> because it targets a relatively small section of the problem-space.
>>>
>>> For completeness I should also mention that Embedded Debian provides
>>> yet another option. I will not claim that it will have fewer issues
>>> than the above. http://www.emdebian.org/emdebian/intro.html
>>>
>>> I'm not sure if you are really asking about toolchains or build-systems?
>>> The former is fairly reliably solved. For a debian-based box just
>>> install pre-built cross toolchians from emdebian:
>>> http://www.emdebian.org/tools/crosstools.html
>>> (from i386, amd64, powerpc; to: nearly all debian-supported
>>> architectures, gcc3.3, 3.4, 4.1, 4.2, 4.3)
>>> http://www.emdebian.org/toolchains/search.php?section=devel gives more
>>> details.
>>>
>>> emdebian-tools also provides the debian equivalent of crosstool
>>> ('emchain' to build your own version of current current toolchain,
>>> should a suitable pre-built one not exist.
>>>
>>> For non-debian boxes other people seem to have listed the options so I
>>> won't repeat (and it's not my area of expertise).
>>>
>>> Wookey (Emdebian 'Chief bullshitter' - bias alert. The toolchains are
>>> great though, really.)
>>> --
>>> Principal hats: Balloonz - Toby Churchill - Aleph One - Debian
>>> http://wookware.org/
>>
>>
>>
>> --
>> Shaz
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-embedded"
>> in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>
>
--
Shaz
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-13 14:46 ` Jamie Lokier
@ 2008-06-13 15:19 ` Enrico Weigelt
2008-06-14 1:46 ` Jamie Lokier
2008-06-13 15:28 ` Bill Traynor
2008-06-14 6:43 ` Greg Ungerer
2 siblings, 1 reply; 28+ messages in thread
From: Enrico Weigelt @ 2008-06-13 15:19 UTC (permalink / raw)
To: Linux Embedded Maillist
* Jamie Lokier <jamie@shareable.org> schrieb:
> For some reason, that stopped a while ago, and you had to go to
> different places to get working basic tools. And often, the place to
> go wasn't clear. Different people advertised their "ARM toolchain",
> "m68k toolchain" etc. and they were slightly different sets of
> patches on top of mainline tools. Central authorities you might
> believe in existed, but they were always a few patches behind what you
> actually needed.
That's because many embedded build their toolchains completely on
their own, instead of just using an generic toolkit like ct.
> Contrast with kernel.org: everyone knows where to get a good working
> Linux kernel for the mainstream architectures, and the quality work
> tends to be quite good at reaching mainline there nowadays.
ACK. But you perhaps remember the discussions on LKML where some
folks wanted to stop this and leave all the QM works to individual
distros. I'm glad this plan was dropped.
cu
--
---------------------------------------------------------------------
Enrico Weigelt == metux IT service - http://www.metux.de/
---------------------------------------------------------------------
Please visit the OpenSource QM Taskforce:
http://wiki.metux.de/public/OpenSource_QM_Taskforce
Patches / Fixes for a lot dozens of packages in dozens of versions:
http://patches.metux.de/
---------------------------------------------------------------------
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-13 14:46 ` Jamie Lokier
2008-06-13 15:19 ` Enrico Weigelt
@ 2008-06-13 15:28 ` Bill Traynor
2008-06-13 17:12 ` Enrico Weigelt
2008-06-14 1:57 ` Jamie Lokier
2008-06-14 6:43 ` Greg Ungerer
2 siblings, 2 replies; 28+ messages in thread
From: Bill Traynor @ 2008-06-13 15:28 UTC (permalink / raw)
To: Jamie Lokier; +Cc: Bill Traynor, Shaz, linux-embedded
> Bill Traynor wrote:
>> Maybe I'm being dense, but what's specifically wrong with the current
>> toolchain universe?
>
> Back in ye olde days, you could download GCC and Binutils from
> gnu.org, configure for whatever is your architecture, and most times
> it just worked.
Yes, the difficulty is in the "configure" step. But the GNU Toolchain is
a complex beast but the benefit is it flexibility and numerous supported
architectures. Ye olde days perhaps was less complex, but also less
flexible and supporting less archs.
>
> For some reason, that stopped a while ago, and you had to go to
> different places to get working basic tools. And often, the place to
> go wasn't clear. Different people advertised their "ARM toolchain",
> "m68k toolchain" etc. and they were slightly different sets of
> patches on top of mainline tools. Central authorities you might
> believe in existed, but they were always a few patches behind what you
> actually needed.
I disagree with respect to ARM. GNU toolchains for ARM have for the last
four or five years been relatively up to date for ARM hardware. This is a
direct result of ARM paying for this support to be added.
>
> When I last needed a toolchain, Google led to confusing results, and I
> had to try more than one. I still use mutiple GCC versions (from
> different people) to compile different programs for the same
> architecture: each one fails some things in a different way, including
> run-time failures in the precompiled toolchains.
You didn't have to try more than one, you chose to try more than one. You
could have just as easily chosen to use only the current mainline GNU
toolchain and worked through your issues with the community, thereby
allowing mainline to benefit from your fixes, and you to benefit by
getting to use the most current toolchain.
>
> Just Google for "uclinux toolchain" and the top hits lead to very old
> releases, with bugs that have long been fixed elsewhere. "uclinux arm
> toolchain" is no better.
The "fixed elsewhere" is the problem. If everyone used the most current
release and worked through issues with the community, this problem would
go away.
>
> Perhaps current versions (e.g. from Codesourcery?) are more dependable
> for embedded architectures, but I don't have the time to thoroughly
> test them, and my last experience warns me to be careful.
I know from experience, having worked for CodeSourcery that their
toolchains are exhaustively tested. And any problems reported to their
public mailing lists are fixed, if legitimate. These fixes are typically
submitted upstream to the FSF very quickly when the bugs exist in mainline
as well.
>
> It seems people release tools, release patches, publish on an obscure
> web page, then forget about the page. More authoritative-sounding
> uclinux web pages tend to be out of date. Google isn't finding good
> current authorities in this area, which suggests the space is rather
> fragmented with people pulling in different directions and not working
> together enough to create stable, common places for these things.
But isn't the FSF repositories for the GNU Tools, and the uClinux projects
repositories the stable, common place for these things?
>
> Contrast with kernel.org: everyone knows where to get a good working
> Linux kernel for the mainstream architectures, and the quality work
> tends to be quite good at reaching mainline there nowadays.
IMHO, the same is true for the GNU toolchain.
>
> -- Jamie
> --
> To unsubscribe from this list: send the line "unsubscribe linux-embedded"
> in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-13 15:28 ` Bill Traynor
@ 2008-06-13 17:12 ` Enrico Weigelt
2008-06-14 1:57 ` Jamie Lokier
1 sibling, 0 replies; 28+ messages in thread
From: Enrico Weigelt @ 2008-06-13 17:12 UTC (permalink / raw)
To: Linux Embedded Maillist
* Bill Traynor <wmat@naoi.ca> schrieb:
> The "fixed elsewhere" is the problem. If everyone used the most current
> release and worked through issues with the community, this problem would
> go away.
Yep, and here we're again at the point that opensource/community
development and just use open code to build something own are
different things ;-o
cu
--
---------------------------------------------------------------------
Enrico Weigelt == metux IT service - http://www.metux.de/
---------------------------------------------------------------------
Please visit the OpenSource QM Taskforce:
http://wiki.metux.de/public/OpenSource_QM_Taskforce
Patches / Fixes for a lot dozens of packages in dozens of versions:
http://patches.metux.de/
---------------------------------------------------------------------
^ permalink raw reply [flat|nested] 28+ messages in thread
* Firmware Linux (was Re: Cross Compiler and loads of issues)
2008-06-12 17:52 Cross Compiler and loads of issues Shaz
` (6 preceding siblings ...)
2008-06-13 9:24 ` Wookey
@ 2008-06-13 17:24 ` Rob Landley
2008-06-16 4:38 ` Enrico Weigelt
7 siblings, 1 reply; 28+ messages in thread
From: Rob Landley @ 2008-06-13 17:24 UTC (permalink / raw)
To: Shaz; +Cc: linux-embedded
On Thursday 12 June 2008 12:52:44 Shaz wrote:
> Hi,
>
> I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
> felt like asking that is there one good way to get a cross compiler
> work. I tried buildroot, scratchbox and even openMoko with
> openEmbedded but all of them had lots of issues and don't know which
> will be the best alternative.
Did you try my FWL project? :)
http://landley.net/code/firmware
To build from source, go to http://landley.net/code/firmware/downloads and
grab the latest version (firmware-0.4.0.tar.bz2). Extract it, cd into it,
and run "./build.sh". That should list the available platforms, and then run
with the platform you like as an argument (ala "./build.sh powerpc").
The build.sh wrapper runs the other scripts in sequence:
./download.sh - downloads source code if you haven't already got it.
./host-tools.sh - compiles stuff on the host platform, (mostly optional).
./cross-compiler.sh - build a cross compiler toolchain for your target.
./mini-native.sh - Compile a kernel and root filesystem for your target.
./package-mini-native.sh - Create an ext2 image out of mini-native.
The other interesting scripts in the directory are:
./forkbomb.sh - Build every target (--nofork in series, --fork in parallel).
Calling with --fork is faster, but needs about 4 gigabytes of ram.
./run-emulator.sh - Boot one of the system images you just built under qemu.
Also sets up the distcc trick (see below).
If you don't feel like compiling any of the above yourself, you can download
prebuilt binary images from the same downloads link. The cross-compiler
directory has the prebuilt cross compilers for each target (for i686 and
x86_64 hosts). The mini-native directory has the prebuilt root filesystem
images as tarballs. And the system-image.sh directory has a tarball with
that same mini-native root filesystem as an ext2 image, a kernel for qemu,
and shell scripts to invoke qemu appropriately for each one:
./run-emulator.sh - Run qemu, booting to a shell prompt.
./run-with-home.sh - Calls run-emulator with a second hard drive image
hooked up as /dev/hdb and mounted on /home. (If you haven't got an
hdb.img in the directory it'll create an empty 2 gigabyte image and
format it ext3.)
./run-with-distcc.sh - Calls run-with-home with the distcc trick set up.
The reason "mini-native" is called that is because it's a minimal native
development environment. It contains gcc, binutils, make, linux kernel
headers, uClibc for your C library, and standard susv3 command line tools
(provided by the busybox and toybox packages). This is theoretically enough
to build the whole of Linux From Scratch (http://www.linuxfromscratch.org) or
bootstrap your way up to being able to natively build gentoo or debian using
their package management systems. (If you don't _want_ development tools in
your root filesystem, set the environment variable "BUILD_SHORT=1" before
running ./mini-native.sh. That'll also move it out of /tools and up to the
top level.)
In practice, the environment is still missing seven commands (bzip2, find,
install, od, sort, diff, and wget) needed to rebuild itself under itself.
(The busybox versions were either missing or had a bug.) I'm working on that
for the next release.
The distcc trick is for speeding up native builds by using distcc to call out
to the cross compiler. Running the cross compiler on the host system is
faster, but cross compiling is very brittle. This approach does a native
build under the emulator, but escapes the emulator for the actual compiling
part. I did a quick bench test compling make 3.81 (I had it lying around)
and it sped up the actual compile by a factor of 7. (Alas, it didn't speed
up the "./configure" part at all, just the "make" part.)
The ./emulator-build.sh script sets up the distcc trick using the files left
in the "build" directory after you build it yourself. (The cross compiler is
left in there, and the kernel and ext2 system images that got tarred up are
also left in there.) The ./run-with-distcc.sh script does it for
cross-compiler and system-image tarballs. (It needs one argument: You have
to tell it the path where you extracted the cross-compiler tarball.)
> I also went through the material provided freely by Free Electron but
> still I am not successful to build a custom kernel. Next I am trying
> MontaVista's kit. I just wish I don't get lost.
I'm happy to answer any questions about the stuff I did... :)
> Anyways, I liked the idea of Qemu based cross compiler. Is it possible
> for the inexperienced to get it working and emulate the exact model
> and devices.
That's what I'm trying to do. I've got armv4l, armv5l, mips (big endian),
mipsel (little endian), powerpc (a prep variant), i586, i686, and x86_64
working. They all work fine. Run "./smoketest.sh $ARCH" on each $ARCH after
building it to see the sucker boot up and compile "hello world" using distcc.
That means qemu has bootable kernel, serial port, emulates a hard drive,
uClibc is configured right, there's a working native toolchain, working cross
toolchain, working virtual network...
I've also got sh4 building (but qemu doesn't quite have enough support to boot
it yet: it can't emulate any boards with a hard drive attached). And I've
got sparc building and mostly booting, but it hangs trying to read
from /dev/console for reasons I haven't been motivated to track down because
I don't really know anyone still using sparc. And I've got most of an m68k
build config together but gcc is giving me an "internal compiler error"
trying to build uClibc. I've also poked at Alpha and blackfin a bit, but
again lack of sufficient qemu support takes some of the fun out of it.
Oh, and the powerpc emulated prep board/kernel don't agree how to shutdown the
power to the virtual board, so the qemu process doesn't exit. You have to
kill it. :P
I can has TODO items...
Rob
--
"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson.
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-13 15:19 ` Enrico Weigelt
@ 2008-06-14 1:46 ` Jamie Lokier
0 siblings, 0 replies; 28+ messages in thread
From: Jamie Lokier @ 2008-06-14 1:46 UTC (permalink / raw)
To: Enrico Weigelt; +Cc: Linux Embedded Maillist
Enrico Weigelt wrote:
> > Contrast with kernel.org: everyone knows where to get a good working
> > Linux kernel for the mainstream architectures, and the quality work
> > tends to be quite good at reaching mainline there nowadays.
>
> ACK. But you perhaps remember the discussions on LKML where some
> folks wanted to stop this and leave all the QM works to individual
> distros. I'm glad this plan was dropped.
I'm glad too. I've had to do the reverse: cherry-pick through 2000
patches from distro kernel source packages, to find the good ones for
my kernel - bug fixes, driver fixes. It took a long time, and I had
to give up before finishing, it was simply too much work.
That was 2.4, back when distros did a lot of their own patches, kept
outside the mainline kernel. Thankfully, the 2.6 process is much better.
-- Jamie
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-13 15:28 ` Bill Traynor
2008-06-13 17:12 ` Enrico Weigelt
@ 2008-06-14 1:57 ` Jamie Lokier
2008-06-14 6:57 ` Greg Ungerer
1 sibling, 1 reply; 28+ messages in thread
From: Jamie Lokier @ 2008-06-14 1:57 UTC (permalink / raw)
To: Bill Traynor; +Cc: Shaz, linux-embedded
Bill Traynor wrote:
> > For some reason, that stopped a while ago, and you had to go to
> > different places to get working basic tools. And often, the place to
> > go wasn't clear. Different people advertised their "ARM toolchain",
> > "m68k toolchain" etc. and they were slightly different sets of
> > patches on top of mainline tools. Central authorities you might
> > believe in existed, but they were always a few patches behind what you
> > actually needed.
>
> I disagree with respect to ARM. GNU toolchains for ARM have for the last
> four or five years been relatively up to date for ARM hardware. This is a
> direct result of ARM paying for this support to be added.
I believe you, but they were difficult to _find_. A couple of years
ago I looked for up to date ARM GNU tools. The first few pages from
Google lead to a small number of places where you could download
toolchains at least a year out of date, possibly more, and none to get
anything current in a straightforward format (i.e. not an entire dev
kit with IDEs etc.).
That situation has improved greatly since then.
But, to be honest, ARM-nommu toolchain support is still second class.
There's no shared library / dynamic loader support for ARM-nommu, and
no apparent plans to implement it. (I'd help but I don't have time to
do it all). NPTL threads are coming along, but not yet ready; it's
been quite slow. C++ sometimes crashes at the linking stage.
> > When I last needed a toolchain, Google led to confusing results, and I
> > had to try more than one. I still use mutiple GCC versions (from
> > different people) to compile different programs for the same
> > architecture: each one fails some things in a different way, including
> > run-time failures in the precompiled toolchains.
>
> You didn't have to try more than one, you chose to try more than one.
I found significant problems with the first. Fixing obscure looking
register allocation crash bugs in the compiler was more than I thought
I had time for - looking for another was less work than that,
therefore I rationally chose it.
I figured that bug was fixed in a newer version, and it was. Then I
found run-time problems with threads (crashing and impossible to trap
in GDB - probably distributed libc mismatched my kernel - wtf?), and
incompatibilities with binary libraries I had to link with. (That's
why I use two different toolchain versions in my project now).
Eventually, for some applications, what worked was a combination:
tools from one place but headers and libraries from the other.
To solve this properly, requires that I delve into the toolchain code,
or find _another_ newer one which might fix these problems.
It's a substantial time sink to do any of these things.
> You could have just as easily chosen to use only the current
> mainline GNU toolchain and worked through your issues with the
> community, thereby allowing mainline to benefit from your fixes, and
> you to benefit by getting to use the most current toolchain.
I agree that is good. However, my issues were rather specific to my
application setup and third party commercial dependencies (typical of
some embedded projects), and depended on older tools and kernels, so I
wouldn't expect the community to have much interest. The lack of
interest in 2.4 kernels is pretty explicit (understandably - I don't
like using it either), and for GCC 2.old/3.old I'm assuming it.
The lack of backed-by-action interest in making ARM-nommu tools
support current GCC features like C++ properly, shared libraries, and
modern threads, adds to the sense that, while it's good to be in touch
with the community, there isn't a lot of readiness to work on obscure
things which don't affect a lot of people, and on hardware which isn't
the future.
Eventually I might forward port enough to follow mainline kernels and
tools. But that's a substantial time sink too - don't underestimate
it. I'm told that mainline current 2.6 doesn't build let alone work
on ARM-nommu (yet); that does not make forward-porting including local
drivers and architecture quirks sound like it will be quick. If slow,
it's not worth the effort to me alone.
> > Just Google for "uclinux toolchain" and the top hits lead to very old
> > releases, with bugs that have long been fixed elsewhere. "uclinux arm
> > toolchain" is no better.
>
> The "fixed elsewhere" is the problem. If everyone used the most current
> release and worked through issues with the community, this problem would
> go away.
I agree. I would like to do that, and with a thriving, interested
community I will. I'm hoping linux-embedded@vger.kernel.org might
help catalyse it - perhaps by creating the perception of it to people
like me.
It only really works if lots of people do that together, and it seems
to be particularly _not_ the culture in some segments of the embedded
development community.
I base this on Google leading to lots of pages with old announcements
of compilers, cross-compilation scripts and so on. Why aren't those
pages links to a few standard "good" places which are actively kept up
to date? It appears to be (or have been) a fragmented community - and
so who to work with, that's a question.
> > Perhaps current versions (e.g. from Codesourcery?) are more dependable
> > for embedded architectures, but I don't have the time to thoroughly
> > test them, and my last experience warns me to be careful.
>
> I know from experience, having worked for CodeSourcery that their
> toolchains are exhaustively tested. And any problems reported to their
> public mailing lists are fixed, if legitimate. These fixes are typically
> submitted upstream to the FSF very quickly when the bugs exist in mainline
> as well.
I know from experience that "bugs" are fixed, but feature requests
like reliable C++, shared libraries and NPTL threads are long in
coming to some architectures, if they ever will be before those
architectures are no longer manufactured.
> > It seems people release tools, release patches, publish on an obscure
> > web page, then forget about the page. More authoritative-sounding
> > uclinux web pages tend to be out of date. Google isn't finding good
> > current authorities in this area, which suggests the space is rather
> > fragmented with people pulling in different directions and not working
> > together enough to create stable, common places for these things.
>
> But isn't the FSF repositories for the GNU Tools, and the uClinux projects
> repositories the stable, common place for these things?
You can't even build an ARM-nommu executable with GNU tools from FSF!
It needs an extra tool. I'm not even sure which version of that is
the recommended one - the C one or the shell script both have issues
outstanding. By the way, neither work with some C++ programs on
ARM-nommu: they crash with messages about unfixable relocations. More
often with GCC 4 than GCC 3. See what I mean about things not being
in great shape?
> > Contrast with kernel.org: everyone knows where to get a good working
> > Linux kernel for the mainstream architectures, and the quality work
> > tends to be quite good at reaching mainline there nowadays.
>
> IMHO, the same is true for the GNU tool.
If that's true for ARM-nommu support, it has improved dramatically. I
will try again, in time, but prior experience tells me not to spend
too long on it. It's much better use of time to find some patched
combination that is working well for someone else. But who to
ask/trust? Even the pre-built toolchains don't always work right.
(See my earlier mention of undebuggable thread problems in executables
built with a googd-distributed.)
-- Jamie
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-13 14:46 ` Jamie Lokier
2008-06-13 15:19 ` Enrico Weigelt
2008-06-13 15:28 ` Bill Traynor
@ 2008-06-14 6:43 ` Greg Ungerer
2 siblings, 0 replies; 28+ messages in thread
From: Greg Ungerer @ 2008-06-14 6:43 UTC (permalink / raw)
To: Jamie Lokier; +Cc: Bill Traynor, Shaz, linux-embedded
Jamie Lokier wrote:
> Bill Traynor wrote:
>> Maybe I'm being dense, but what's specifically wrong with the current
>> toolchain universe?
>
> Back in ye olde days, you could download GCC and Binutils from
> gnu.org, configure for whatever is your architecture, and most times
> it just worked.
>
> For some reason, that stopped a while ago, and you had to go to
> different places to get working basic tools. And often, the place to
> go wasn't clear. Different people advertised their "ARM toolchain",
> "m68k toolchain" etc. and they were slightly different sets of
> patches on top of mainline tools. Central authorities you might
> believe in existed, but they were always a few patches behind what you
> actually needed.
>
> When I last needed a toolchain, Google led to confusing results, and I
> had to try more than one. I still use mutiple GCC versions (from
> different people) to compile different programs for the same
> architecture: each one fails some things in a different way, including
> run-time failures in the precompiled toolchains.
>
> Just Google for "uclinux toolchain" and the top hits lead to very old
> releases, with bugs that have long been fixed elsewhere. "uclinux arm
> toolchain" is no better.
The uClinux arm toolchain case can be put down to noone
having an interest in actually doing the work. There has been
some work over the years, but no coordinated effort for quite
a while now.
> Perhaps current versions (e.g. from Codesourcery?) are more dependable
> for embedded architectures, but I don't have the time to thoroughly
> test them, and my last experience warns me to be careful.
>
> It seems people release tools, release patches, publish on an obscure
> web page, then forget about the page. More authoritative-sounding
> uclinux web pages tend to be out of date. Google isn't finding good
> current authorities in this area, which suggests the space is rather
> fragmented with people pulling in different directions and not working
> together enough to create stable, common places for these things.
Yep, there is a lack of "working together" when it comes to the
uclinux tool chains. You can't force people to work together.
At the very least the packages on uclinux.org give you the build
instructions, and scripts used to build them. You can try to get
newer tool versions working (with fixes if required).
> Contrast with kernel.org: everyone knows where to get a good working
> Linux kernel for the mainstream architectures, and the quality work
> tends to be quite good at reaching mainline there nowadays.
I don't know that comparison exactly holds. kernel.org is source,
just like gnu.org is the source of gcc/binutils/etc. Are you not
talking about binary toolchain packages above?
Regards
Greg
--
------------------------------------------------------------------------
Greg Ungerer -- Chief Software Dude EMAIL: gerg@snapgear.com
SnapGear -- a Secure Computing Company PHONE: +61 7 3435 2888
825 Stanley St, FAX: +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-14 1:57 ` Jamie Lokier
@ 2008-06-14 6:57 ` Greg Ungerer
0 siblings, 0 replies; 28+ messages in thread
From: Greg Ungerer @ 2008-06-14 6:57 UTC (permalink / raw)
To: Jamie Lokier; +Cc: Bill Traynor, Shaz, linux-embedded
Jamie Lokier wrote:
> Bill Traynor wrote:
>>> For some reason, that stopped a while ago, and you had to go to
>>> different places to get working basic tools. And often, the place to
>>> go wasn't clear. Different people advertised their "ARM toolchain",
>>> "m68k toolchain" etc. and they were slightly different sets of
>>> patches on top of mainline tools. Central authorities you might
>>> believe in existed, but they were always a few patches behind what you
>>> actually needed.
>> I disagree with respect to ARM. GNU toolchains for ARM have for the last
>> four or five years been relatively up to date for ARM hardware. This is a
>> direct result of ARM paying for this support to be added.
>
> I believe you, but they were difficult to _find_. A couple of years
> ago I looked for up to date ARM GNU tools. The first few pages from
> Google lead to a small number of places where you could download
> toolchains at least a year out of date, possibly more, and none to get
> anything current in a straightforward format (i.e. not an entire dev
> kit with IDEs etc.).
>
> That situation has improved greatly since then.
>
> But, to be honest, ARM-nommu toolchain support is still second class.
>
> There's no shared library / dynamic loader support for ARM-nommu, and
> no apparent plans to implement it. (I'd help but I don't have time to
> do it all). NPTL threads are coming along, but not yet ready; it's
> been quite slow. C++ sometimes crashes at the linking stage.
Nobody is willing to put in the new effort here required to
make this work. So the "no plans" really means no person power
to make it happen.
>>> When I last needed a toolchain, Google led to confusing results, and I
>>> had to try more than one. I still use mutiple GCC versions (from
>>> different people) to compile different programs for the same
>>> architecture: each one fails some things in a different way, including
>>> run-time failures in the precompiled toolchains.
>> You didn't have to try more than one, you chose to try more than one.
>
> I found significant problems with the first. Fixing obscure looking
> register allocation crash bugs in the compiler was more than I thought
> I had time for - looking for another was less work than that,
> therefore I rationally chose it.
>
> I figured that bug was fixed in a newer version, and it was. Then I
> found run-time problems with threads (crashing and impossible to trap
> in GDB - probably distributed libc mismatched my kernel - wtf?), and
> incompatibilities with binary libraries I had to link with. (That's
> why I use two different toolchain versions in my project now).
>
> Eventually, for some applications, what worked was a combination:
> tools from one place but headers and libraries from the other.
>
> To solve this properly, requires that I delve into the toolchain code,
> or find _another_ newer one which might fix these problems.
>
> It's a substantial time sink to do any of these things.
>
>> You could have just as easily chosen to use only the current
>> mainline GNU toolchain and worked through your issues with the
>> community, thereby allowing mainline to benefit from your fixes, and
>> you to benefit by getting to use the most current toolchain.
>
> I agree that is good. However, my issues were rather specific to my
> application setup and third party commercial dependencies (typical of
> some embedded projects), and depended on older tools and kernels, so I
> wouldn't expect the community to have much interest. The lack of
> interest in 2.4 kernels is pretty explicit (understandably - I don't
> like using it either), and for GCC 2.old/3.old I'm assuming it.
>
> The lack of backed-by-action interest in making ARM-nommu tools
> support current GCC features like C++ properly, shared libraries, and
> modern threads, adds to the sense that, while it's good to be in touch
> with the community, there isn't a lot of readiness to work on obscure
> things which don't affect a lot of people, and on hardware which isn't
> the future.
>
> Eventually I might forward port enough to follow mainline kernels and
> tools. But that's a substantial time sink too - don't underestimate
> it. I'm told that mainline current 2.6 doesn't build let alone work
> on ARM-nommu (yet); that does not make forward-porting including local
I am down to 3 or 4 patches for mainline to work on arm non-mmu.
It could be made to work on almost all 2.6.x kernels with only a
few patches - and those have always been available from uclinux.org.
That is not a barrier. I am working out the wrinkles in these last
changes, they will get in sooner or later.
> drivers and architecture quirks sound like it will be quick. If slow,
> it's not worth the effort to me alone.
>>> Just Google for "uclinux toolchain" and the top hits lead to very old
>>> releases, with bugs that have long been fixed elsewhere. "uclinux arm
>>> toolchain" is no better.
>> The "fixed elsewhere" is the problem. If everyone used the most current
>> release and worked through issues with the community, this problem would
>> go away.
>
> I agree. I would like to do that, and with a thriving, interested
> community I will. I'm hoping linux-embedded@vger.kernel.org might
> help catalyse it - perhaps by creating the perception of it to people
> like me.
>
> It only really works if lots of people do that together, and it seems
> to be particularly _not_ the culture in some segments of the embedded
> development community.
>
> I base this on Google leading to lots of pages with old announcements
> of compilers, cross-compilation scripts and so on. Why aren't those
> pages links to a few standard "good" places which are actively kept up
> to date? It appears to be (or have been) a fragmented community - and
> so who to work with, that's a question.
>
>>> Perhaps current versions (e.g. from Codesourcery?) are more dependable
>>> for embedded architectures, but I don't have the time to thoroughly
>>> test them, and my last experience warns me to be careful.
>> I know from experience, having worked for CodeSourcery that their
>> toolchains are exhaustively tested. And any problems reported to their
>> public mailing lists are fixed, if legitimate. These fixes are typically
>> submitted upstream to the FSF very quickly when the bugs exist in mainline
>> as well.
>
> I know from experience that "bugs" are fixed, but feature requests
> like reliable C++, shared libraries and NPTL threads are long in
> coming to some architectures, if they ever will be before those
> architectures are no longer manufactured.
>
>>> It seems people release tools, release patches, publish on an obscure
>>> web page, then forget about the page. More authoritative-sounding
>>> uclinux web pages tend to be out of date. Google isn't finding good
>>> current authorities in this area, which suggests the space is rather
>>> fragmented with people pulling in different directions and not working
>>> together enough to create stable, common places for these things.
>> But isn't the FSF repositories for the GNU Tools, and the uClinux projects
>> repositories the stable, common place for these things?
>
> You can't even build an ARM-nommu executable with GNU tools from FSF!
Thats true of any of the non-mmu architectures that rely on
elf2flt. So arm is no different.
Like many open source projects uClinux isn't a finished "thing".
It is actively being developed. Not everything works, not everything
works well. The quality of what is there now depends very much
on the amount of effort input...
> It needs an extra tool. I'm not even sure which version of that is
> the recommended one - the C one or the shell script both have issues
> outstanding. By the way, neither work with some C++ programs on
> ARM-nommu: they crash with messages about unfixable relocations. More
> often with GCC 4 than GCC 3. See what I mean about things not being
> in great shape?
Well, what can I say, you are welcome to fix them :-)
Sometimes you need to be the one to step up and make
things better, especially if you want to use them :-)
>>> Contrast with kernel.org: everyone knows where to get a good working
>>> Linux kernel for the mainstream architectures, and the quality work
>>> tends to be quite good at reaching mainline there nowadays.
>> IMHO, the same is true for the GNU tool.
>
> If that's true for ARM-nommu support, it has improved dramatically. I
> will try again, in time, but prior experience tells me not to spend
> too long on it. It's much better use of time to find some patched
> combination that is working well for someone else. But who to
> ask/trust? Even the pre-built toolchains don't always work right.
> (See my earlier mention of undebuggable thread problems in executables
> built with a googd-distributed.)
Regards
Greg
--
------------------------------------------------------------------------
Greg Ungerer -- Chief Software Dude EMAIL: gerg@snapgear.com
SnapGear -- a Secure Computing Company PHONE: +61 7 3435 2888
825 Stanley St, FAX: +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Cross Compiler and loads of issues
2008-06-12 18:19 ` Wolfgang Denk
@ 2008-06-14 9:44 ` Shaz
0 siblings, 0 replies; 28+ messages in thread
From: Shaz @ 2008-06-14 9:44 UTC (permalink / raw)
To: Wolfgang Denk; +Cc: linux-embedded
On Thu, Jun 12, 2008 at 11:19 PM, Wolfgang Denk <wd@denx.de> wrote:
> In message <7b740b700806121052n2f98dfa4hc96ebfc1be5b6bbf@mail.gmail.com> you wrote:
>>
>> I have been following "Re: [PATCH 0/1] Embedded Maintainer(s)" and
>> felt like asking that is there one good way to get a cross compiler
>> work. I tried buildroot, scratchbox and even openMoko with
>> openEmbedded but all of them had lots of issues and don't know which
>> will be the best alternative.
>>
>> I also went through the material provided freely by Free Electron but
>> still I am not successful to build a custom kernel. Next I am trying
>> MontaVista's kit. I just wish I don't get lost.
>
> For completeness, there is also the (free) ELDK. Some people are using it.
>
I got a toolchain giving an output. Going to test some stuff with
Qemu. I hope it works. ELDK seems to be a smooth tool. Now got to get
it working with my kernel, eclipse and target board :)
> [And yes, I'm obviously biased :-) ]
>
> Best regards,
>
> Wolfgang Denk
>
> --
> DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
> A list is only as strong as its weakest link. -- Don Knuth
>
--
Shaz
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Firmware Linux (was Re: Cross Compiler and loads of issues)
2008-06-13 17:24 ` Firmware Linux (was Re: Cross Compiler and loads of issues) Rob Landley
@ 2008-06-16 4:38 ` Enrico Weigelt
2008-06-25 1:49 ` Rob Landley
0 siblings, 1 reply; 28+ messages in thread
From: Enrico Weigelt @ 2008-06-16 4:38 UTC (permalink / raw)
To: linux-embedded
* Rob Landley <rob@landley.net> schrieb:
> Did you try my FWL project? :)
>
> http://landley.net/code/firmware
hmm, doesnt look like supporting sysroot ...
cu
--
---------------------------------------------------------------------
Enrico Weigelt == metux IT service - http://www.metux.de/
---------------------------------------------------------------------
Please visit the OpenSource QM Taskforce:
http://wiki.metux.de/public/OpenSource_QM_Taskforce
Patches / Fixes for a lot dozens of packages in dozens of versions:
http://patches.metux.de/
---------------------------------------------------------------------
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Firmware Linux (was Re: Cross Compiler and loads of issues)
2008-06-16 4:38 ` Enrico Weigelt
@ 2008-06-25 1:49 ` Rob Landley
0 siblings, 0 replies; 28+ messages in thread
From: Rob Landley @ 2008-06-25 1:49 UTC (permalink / raw)
To: weigelt; +Cc: linux-embedded
On Sunday 15 June 2008 23:38:12 Enrico Weigelt wrote:
> * Rob Landley <rob@landley.net> schrieb:
> > Did you try my FWL project? :)
> >
> > http://landley.net/code/firmware
>
> hmm, doesnt look like supporting sysroot ...
It doesn't use sysroot. It makes the compiler relocatable using an updated
version of the old uClibc wrapper script, which rewrites each glibc command
line to start with --nostinc --nostdlib and then adds the correct paths back
in from the ground up.
Have you ever run gcc under strace? Or worse, looked at the gcc path logic
source code? It's a mess. It gets paths from ./configure options, it gets
paths from spec files, it adds hardwired paths in the C source code, it
checks enviroment variables to get more paths, and this isn't counting the
paths you tell it on the command line. Every time they gave up on the
previous approach because it was obviously unworkable, they NEVER REMOVED
ANYTHING. They just added yet another layer on top of it, falling back to
the previous one each time. It never occurred to them that people would want
to make it NOT check paths like /usr/include. They just keep piling on more
and more, appending to a big vararray and never removing anything.
Do you know how sysroot is implemented? It still hardwires absolute paths
into the binary, but then it does a string compare with the start of the
hardwired path so it knows how much to trim off when substituting another
path instead.
I once tried to work up a patch to remove the obsolete or clearly defective
parts of the gcc path logic, but when my patch got large than 10,000 lines I
gave up and went to a wrapper script. The only way to make the gcc path
logic reliable is to NOT USE IT. Hence the wrapper script to tell it to
ignore all the paths it _thinks_ it knows, and check in exactly these places
(and only those places) instead. Then you can run the result under strace
without wanting to throw up quite so much.
> cu
Rob
--
"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson.
^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2008-06-25 1:49 UTC | newest]
Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-12 17:52 Cross Compiler and loads of issues Shaz
2008-06-12 18:19 ` Wolfgang Denk
2008-06-14 9:44 ` Shaz
2008-06-12 18:26 ` Matthias Kaehlcke
2008-06-12 18:39 ` Bill Traynor
2008-06-12 18:49 ` Enrico Weigelt
2008-06-12 19:02 ` Shaz
2008-06-12 19:54 ` George G. Davis
2008-06-13 13:52 ` Bill Traynor
2008-06-12 18:56 ` Bill Gatliff
2008-06-12 19:30 ` Glenn Henshaw
2008-06-13 4:34 ` Robert Schwebel
2008-06-13 5:14 ` Wang, Baojun
2008-06-13 9:24 ` Wookey
2008-06-13 12:00 ` Shaz
2008-06-13 14:13 ` Bill Traynor
2008-06-13 14:46 ` Jamie Lokier
2008-06-13 15:19 ` Enrico Weigelt
2008-06-14 1:46 ` Jamie Lokier
2008-06-13 15:28 ` Bill Traynor
2008-06-13 17:12 ` Enrico Weigelt
2008-06-14 1:57 ` Jamie Lokier
2008-06-14 6:57 ` Greg Ungerer
2008-06-14 6:43 ` Greg Ungerer
2008-06-13 15:11 ` Shaz
2008-06-13 17:24 ` Firmware Linux (was Re: Cross Compiler and loads of issues) Rob Landley
2008-06-16 4:38 ` Enrico Weigelt
2008-06-25 1:49 ` Rob Landley
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).