[uClinux-dev] Creating a new arch

Ben Kloosterman bklooste at gmail.com
Wed May 5 02:40:06 EDT 2010


This worked but  the result was 

Compiler and binutils built with standards tools ( eg elf format) 
uCLibC as Nommu

I can build a no MMU  kernel by setting the env variable.

So I really needs my own toolchain which I have been fighting with. 

Now am I right in saying that the compiler and binutils don't really care
about the MMU and if I can manage to install elf2bin in binutils , I would
have a no mmu x86 toolchain ?

Getting PIC/ELF PIC too work would probably require changing the linker (
and loader !)  or writing a new elf2bin ( and loader) . 




 >-----Original Message-----
 >From: uclinux-dev-bounces at uclinux.org [mailto:uclinux-dev-
 >bounces at uclinux.org] On Behalf Of David McCullough
 >Sent: Tuesday, April 13, 2010 12:29 PM
 >To: uClinux development list
 >Subject: Re: [uClinux-dev] Creating a new arch
 >
 >
 >Jivin Ben Kloosterman lays it down ...
 >> I have been working on uCLinux on Arm, since Mono has Arm with the
 >idea of a
 >> prototype for a ucLinx + Mono base kernel to start with.
 >>
 >> I got it booting in an emulator but now have some issue loading the
 >root rom
 >> file system (not a Question I will work it out) I'm quite impressed by
 >the
 >> functionality in the lib/toolkit though.
 >>
 >> I just want to get a feel of how hard it will be to create an x86_64
 >arch eg
 >> if I copy the latest kernel , apply the ucLinux kernel patch will it
 >compile
 >> the Kernel ? How much work is in the libs or will these mostly compile
 >to
 >> x86_64 ?  Obviously mono will be easier to compile under x86_64.
 >
 >Building the uClinux-dist for x86/x86_64 is easy, you just need a good
 >uClibc config and a kernel config.
 >
 >I am not sure there are any x86_64 targets in the tree,  but plenty
 >of systems are x86:
 >
 >	grep -l i386 vendors/*/*/config.arch
 >
 >so that may be a good start.  You can just override the compiler options
 >in your config.arch to get a 64bit build happening.  I have done it but
 >don't seem to have it hanging around any more and can't really recall
 >the
 >gotchs.  An example might look something like (with a big dose of
 >maybe):
 >
 >	...
 >	CPUFLAGS       =  -m64
 >	CPU_CFLAGS     =  -m64
 >	TARGETARCH     =  x86_64-linux
 >	CONFIGURE_HOST =  x86_64-linux
 >	CROSS_COMPILE  := some-tools-chain-prefix-here-
 >
 >	include $(ROOTDIR)/vendors/config/i386/config.arch
 >	...
 >
 >You may need to tweak vendors/config/i386/config.arch to get the
 >settings
 >right for x86_64 builds though.
 >
 >Cheers,
 >Davidm
 >
 




More information about the uClinux-dev mailing list