Arm Compiling Howto


Sphinxter said:
Compiling on device worst possible suggestion ever, puh-leeze. Almost spit beer at the word, 'moments', ROFL.


ai@TouchBook:~/hak/tbWakeBreaker$ wc *cpp *h
[..]
22405 41501 1199213 total


ai@TouchBook:~/hak/tbWakeBreaker$ make clean && time make
[...]

real 1m5.114s
user 0m43.930s
sys 0m6.227s

Summary: my Touchbook with less RAM than the Pandora compiles 22405 line of code in 1m5secs.

Moment: http://en.wikipedia.org/wiki/Moment_(time)

A moment is a medieval unit of time equal to 1.5 minutes or 1/40 of an hour [1].


0wned.
 
Last edited by a moderator:
There are other reasons for building for Pandora using a separate PC, not just performance. The most important is space. Take my N800, for example. I have built software for it for three years now, and over time I have accumulated a large amount of software and libraries. All these appications I build takes room. Not to mention the SDK itself. In fact my laptop got so full I had to replace its harddisk. I don't want to 'make clean' a lot of stuff just to temporarily save space. My N800 has two full-size SD slots (like the Pandora), but am I supposed to keep swapping cards all the time to get access to my development and build environment? Much better to have everthing available all the time, on my other, larger computer.

Then there's the additional tools. However much I find or build for my N800, or for the Pandora when it gets here, I still have more on my laptop computer. I have Git, without having to build and install for the N800, I have full-blown XEmacs with everything, I have _lots_ of other stuff that I would never need to have installed on the N800. Instead I have the mobile applications I want on the N800, then I keep the development environment I want on the laptop computer.
 
Tor said:
There are other reasons for building for Pandora using a separate PC, not just performance.

Space? I have 64gigs of disk space on my Touchbook, and 48gigs on my Beagle. This is more than adequate. Advantage: I don't have any space wasted on a cross-compiler ..

The most important is space. Take my N800, for example. I have built software for it for three years now, and over time I have accumulated a large amount of software and libraries. All these appications I build takes room. Not to mention the SDK itself.

A cross-compiling environment will *never* be as slim as an onboard compiler. The space requirements for an onboard compiler are always going to be less than that for the cross-compiler, for the simple fact that you have to have a copy of the libs on your cross-compiler environment machine ..

In fact my laptop got so full I had to replace its harddisk. I don't want to 'make clean' a lot of stuff just to temporarily save space.

The only time 'make clean' makes sense in my environment is when I want to build something fresh. I don't have any 'old forgotten trees' for the Pandora/Touchbook/Beagle, since I'm doing compiling-on-board, but for other systems like the Wiz and GP2X, god help me if I ever lose that configuration or for some reason want to wipe the disk its all stored on .. was a really big hassle to set up and get working properly, and so that PC is now hindered by the install of cross-compiler environments..

My N800 has two full-size SD slots (like the Pandora), but am I supposed to keep swapping cards all the time to get access to my development and build environment? Much better to have everthing available all the time, on my other, larger computer.

Use what works for you, but don't be so ignorant to try out compiler-onboard as a methodology before you write it off, is all I'm saying. For me as a developer with over 30 years experience, cross-compiling has rarely paid off in favour of a proper onboard development configuration .. There have been times when its necessary and required (such as my current job, for example, where I build embedded systems for safety-critical applications and *all* our toolchains have to be hosted elsewhere for validation purpose) but in general, for the development-for-fun I do in my spare time, cross-compiling is a hassle with little true reward beyond a sense that I'm finally getting a use for my multi-$1000 mega-PC.

Then there's the additional tools. However much I find or build for my N800, or for the Pandora when it gets here, I still have more on my laptop computer. I have Git, without having to build and install for the N800, I have full-blown XEmacs with everything, I have _lots_ of other stuff that I would never need to have installed on the N800.

Thats all quite luxurious, no question about it. Nobody said you should *EDIT* on the platforms .. just that you should *BUILD* .. I know, I know, in these days of IDE-addled new-school coders, such a concept is entirely foreign, but you know what I use to build software? cscope+vim+make+svn. Good enough for me!

Instead I have the mobile applications I want on the N800, then I keep the development environment I want on the laptop computer.

Thats all very clean and nice for you .. so use it! It works for you!

My reaction is mostly to the knee-jerk ("oh god, I would *never* compile onboard, what a shameful and hopelessly un-fashionable thing to do, goodness") responses to the point I made, which is this: you *can* be productive with compiler-onboard as a methodology, especially for Pandora, Touchbook, Beagleboard, and now N900 too (just got an N900 a few days ago to set it up as a build target ..)
 
Last edited by a moderator:
So, you're basically saying that cross-compiling is a hassle, and compiling on the Pandora is entirely feasible, so it's easier to just compile on the Pandora.

Well, setting up an entire compilation-toolchain does take up quite a lot of space, something that not all of us are willing to sacrifice. Could be put on a network-mount or an usb-disk though.
And once set up properly, a cross-compilation-environment on any non-ancient machine is still quite a bit faster than the Pandora will be. The Pandora is powerful enough to compile most software in a decent amount of time though.
Finally, Gentoo does make cross-compilation quite a bit easier. It's also what Neuvoo is doing.

So, both ways have their pros and cons, both are entirely viable and possible, and it's everyone's own choice which way to go.
 
Use portage? For what, exactly? I want to develop games and other user-software, not spend all my time building a base operating system out of some other distribution "for fun". Sure, use cross-compiling to build the base OS if you need to (I question the fatness that this brings to the system, though) .. but don't forget: one of the reasons for bloat over the years has been an over-dependence on fast systems rather than better code.

Use what you like, but don't discount onboard-compiling as "lame", because it most certainly is not. A properly organized set of sources will build just fine, in good time, on the Pandora itself ..
 
Laurencevde said:
So, you're basically saying that cross-compiling is a hassle, and compiling on the Pandora is entirely feasible, so it's easier to just compile on the Pandora.

Well, setting up an entire compilation-toolchain does take up quite a lot of space, something that not all of us are willing to sacrifice. Could be put on a network-mount or an usb-disk though.
And once set up properly, a cross-compilation-environment on any non-ancient machine is still quite a bit faster than the Pandora will be. The Pandora is powerful enough to compile most software in a decent amount of time though.
Finally, Gentoo does make cross-compilation quite a bit easier. It's also what Neuvoo is doing.

So, both ways have their pros and cons, both are entirely viable and possible, and it's everyone's own choice which way to go.

Cannot remember the last time I bought a hard drive but it's about 12.5 CENTS per gigabyte looking at Frys weekly special of a 320GB Samsung for $39.99, if space is any real issue one can always clean all the packages after the libraries are built or delete them completely. Complete my /usr/local/gp2xdev is a little over 9 gigs including half a dozen games, actual compiled toolset and librarys is a little under 5. So that'd be about $.75 worth of disk space cleaned or $1.25 for the whole hog. I would think that renders the point rather moot and your argument well made.

As for portage I simply cannot wait to hear his experience. Mine is running it a 5.0ghz on 2 cores in the background while browsing, checking my mail, watching tv, playing mp3's or editing a file so I hardly ever notice it, doubt it'll be any where near as pleasant running it on the pandora and still wonder about the benefit over a binary imaged copied in a few minutes, well with any luck shortly I'll probably be playing games on my pandora while my weekly emerge wizzes by on the console.
 
Last edited by a moderator:
Back
Top