Ports to other architectures was Re: Fedora Core on the Alpha

Lennert Buytenhek buytenh at wantstofly.org
Wed Aug 11 09:10:50 UTC 2004


On Wed, Aug 11, 2004 at 09:21:46AM +0100, David Woodhouse wrote:

> > > I'm reasonably far with the xscale big endian (armv5teb) port.  Most
> > > things just work, it just takes a lot of time to compile-test things
> > > as I only have one 600MHz processor to work with (and crosscompiling
> > > is not an option because a lot of packages are simply broken with
> > > respect to that, hardcoding CC=gcc, etc.)
> 
> I spent a lot of time trying to get the distro to cross-compile, a
> couple of years ago. The problem wasn't so much hardcoding CC, it was
> mostly the plethora of autocrap scripts which prevented portable
> cross-compilation. They'd run some test on the _host_ and make
> inferences about the behaviour/wordsize/etc of the _target_. 

Yeah, seen that, although I can't remember where.

gtk+'s autoconf at least asks you to manually specifiy some parameters
that it cannot determine by itself in a cache file, and invoke it with
that.

I never really saw the point of auto*, it's not as if it makes things
like crosscompiling actually any easier.  I mean, it doesn't prevent
people being ignorant.


> > They apparently used binfmt_misc to recognise non-native binaries (I think it 
> > was ARM from memory) on an i386 class build machine.  The "interpreter" for 
> > the binaries was a script that used ssh to login to an ARM server and launch 
> > them (the ARM server NFS mounted the file systems from the i386 machine at 
> > the same locations).  This meant that all the autoconf tests which rely on 
> > compiling a test program and executing it worked.  I expect that you could do 
> > the same.
> 
> You can also use qemu for this. In fact I use qemu with binfmt_misc all
> the time on my Fedora/ppc box, for running stuff like acroread. Build
> yourself an ARM chroot, then do cunning things like replacing the
> toolchain with a 'native' i386->arm compiler so it goes nice and fast...

Something just popped into my head: what about using distcc on the ARM
machine, and then making the distcc client machines be fast x86 boxen
where gcc is an x86->ARM crosscompiler?  That would work, no?


> (OK, we have to fix qemu-arm first but...)

Want that too :(

(It looks like it's not all that hard to fix, though.  Once you factor
noexecstack out of the equation, it seems like there's only a few
opcodes missing.  These opcodes only get generated when you compile
for armv5 (armv4 works okay), and give qemu a nice and clean sig4
if you use Paul Brook's three qemu-arm patches he posted.)


--L





More information about the fedora-devel-list mailing list