T2 cross-compiling

I took off a couple of days to do some house renovating. Apart from that, I have been experimenting with doing a cross-compile build in T2.

So far, I have only used T2 in the "normal" way, which is to compile the source packages on a x86 PC, for an x86 PC. However, compiling on a x86 PC for an ARM CPU board is a "cross-compile", which is very different, and much more difficult for T2 -- T2 can only compile a sub-set of it's package collection.

What I soon discovered, after hitting many compile failures, is that it has been awhile since anyone has done a cross-compile with T2. I have been reporting bugs and supplying fixes to the T2 email list:
http://news.gmane.org/gmane.comp.t2.devel

...I have been a busy boy!

In the T2 development system, there is a package/*/*/*.desc file for each package, and this has an entry that states whether the source can be cross-compiled. When I say "can", it is a matter of the T2 developers having ironed out the wrinkles if any, and possibly other packages not-so-marked could be also made cross-compilable.

An example that cannot currently be cross-compiled is Firefox, but as I see it, the main purpose of the T2 cross-compile is to create a working toolchain that can be booted into, then apps can be compiled.


Posted on 5 Nov 2011, 6:59


Comments:

Posted on 5 Nov 2011, 9:25 by bigpup
Shutdown problem
Barry,

Something you may want to look at concerning rc.shutdown.
http://www.murga-linux.com/puppy/viewtopic.php?t=73122


Posted on 5 Nov 2011, 11:32 by BarryK
Re shutdown problem
bigpup,
That forum post is referring to an old version of rc.shutdown.

The code in the latest rc.shutdown (in recent Woof-built puppies, Racy, Wary, Slacko) may have fixed the problem mentioned in the forum post.



Posted on 5 Nov 2011, 13:17 by Ted Dog
T2 cross compile
Back in the day when I cross compiled using T2 for the PPC family It was helpful to see the uncompleted work done for the PPC by others. Its very doable. Took me a day or two. If you could/would set up woof & T2 to work with 64bit and write a few pages on how to do it would be great. FatDog64 is too fat for use in my iPup project. With our first freeze today time to setup my space-heater/compiler server-farm.


Posted on 5 Nov 2011, 13:23 by Ted Dog
T2 cross compile part B
May not have made it clear, I will be using a whole group of dinosaur 32bit non-mac computers to compile for a 64bit mac-tel. So its a 32 bit cross compile for 64 bit target.


Posted on 5 Nov 2011, 13:41 by linuxcbon
lose time T2
Dont lose your time with T2.
Find something that works already.
Not sure which, don't have time to look.


Posted on 5 Nov 2011, 18:52 by Iguleder1
crosstool-ng
I like crosstool-ng better for cross-toolchains.

You can generate a perfect cross-toolchain with it, then use that toolchain to bootstrap a native ARM toolchain in T2, Buildroot or whatever you use (e.g you give it the cross-compiler prefix instead of using "gcc").

This way, you skip the problematic part of bootstrapping a cross-toolchain - you build it with a tool dedicated for that task. It makes life easier ... and you have a toolchain you can work with while it's compilin' :)


Posted on 5 Nov 2011, 21:33 by LarryHenry
Lucid Puppy in full 64bit?
Barry I think Lucid Puppy 5.2.8 is the best Os i have ever used. I would love a 64bit compile of Lucid with all the features of the 32 bit Lucid...and I do not mean Fat Dog 64...i mean a 64 bit version of Lucid Puppy....Please? I want a 64bit that is just like Lucid but 64bit instead of 32.


Posted on 6 Nov 2011, 5:04 by Dougal
ARM Distros
Barry, jcm wrote an article for LWN about the creation of the Fedora ARM port, which might give you some insight into the complexities involved...
http://lwn.net/Articles/463506/
http://lwn.net/Articles/463507/

As for a build environment, you might want to use OpenEmbedded (http://www.openembedded.org/) or Yocto (http://www.linuxfoundation.org/collaborate/workgroups/yocto) .