some more detail: Embedded APM system. We have a kernel with a flash file system and serial console, user programs (ls, cp, mv, The-big-app) are run from flash. We don't program the MMU except to configure memory to be flat. All user programs are relocated on load, under GCC the elf file contains special global offset table sections which must be fixed-up, GreenHills actually compiles code into crt0 to do this in every executable. Data is referenced via a single register that contains the offset of the start of data. User progs get access to kernel resources vla a jump table they are passed on the stack when they start. What I am really after is a nicer enviroment to work under than XP and Greenhills (GCC helps but still ties me to MSDOS). However my major concern is how much time I might spend getting this working, if its a few days then no problem... I guess I need to start looking at 5l, or understanding the MMU properly so all programs can run at the same virtual address. -Steve