I have fixed at least the initial problems on userspace arm support
upstream in NetBSD. Note they are not yet in the buildrump source tree
- I tried to cherrypick the fixes and it was giving me merge
conflicts, so I guess it is time to do an update world. The examples
below assume you have a current NetBSD source tree in ~/src.

Frankenlibc now has Linux arm userspace support (NetBSD, FreeBSD will
be available shortly), which is tested natively (armv7, hardfloat) and
under qemu.

It also has a qemu-arm baremetal target. This is very minimal (no
memory detection, fake clock, no devices) - it is not a very
interesting target, other than for testing softfloat and that
baremetal works, or as a basis for other ports.

Instructions for Ubuntu/Debian:

checkout current netbsd source tree
git clone https://github.com/justincormack/frankenlibc.git
cd frankenlibc

Build baremetal qemu-arm and run hello world under qemu-system emulation
sudo apt-get install qemu gcc-arm-none-eabi
./buildc.sh -s ~/src qemu-arm
(qemu will not terminate, you need to kill it; other compilers may
work but this is default and tested one)

Cross build userspace and run under qemu-user emulation
sudo apt-get install gcc-4.8-arm-linux-gnueabihf
sudo apt-get install binfmt-support qemu-user-static
export CC=arm-linux-gnueabihf-gcc-4.8
export NM=arm-linux-gnueabihf-nm
export AR=arm-linux-gnueabihf-ar
export OBJCOPY=arm-linux-gnueabihf-objcopy
export LDSTATIC=-static
./buildc.sh -s ~/src

Native build userspace on arm machine
./buildc.sh -s ~/src

Reply via email to