Hi,

I was able to cross compile Plan9 from MacOS which is probably quite similar
to cross compiling from Linux. 

The first thing was to compile the plan9 C compilers
on MacOS. I used https://code.google.com/p/ken-cc/ because this fork
of the Plan9 C compilers are easier to compile on non-plan9 OSes.

Then I installed plan9port which contained a few utilities that are used
when compiling the plan9 kernel (/bin/rc, /bin/mk). 

Then I setup a few symlinks at the root e.g.

/lib -> /home/pad/plan9/root/lib
/386 -> /home/pad/plan9/root/386
/sys -> /home/pad/plan9/sys

Finally I have a env.sh that I source that contains important environment variables:
export KENCC=/home/pad/kencc
# need to modify plan9/src/cmd/mk/shell.c and put rcshell as default shell
export PLAN9=/usr/local/plan9

export PATH=$PLAN9/bin:$KENCC/bin:$PATH

#for 8._cp to be found and called
PATH=$PATH:.

export objtype=386
#export objtype=arm
export cputype=386

Then I did a few modifications to plan9 Labs and was able to compile and run everything
under qemu.

My forks:
https://github.com/aryx/fork-kencc
https://github.com/aryx/fork-plan9


On Jul 5, 2014, at 7:02 AM, Charles Forsyth <charles.forsyth@gmail.com>
 wrote:


On 5 July 2014 14:13, Aleksandar Kuktin <akuktin@gmail.com> wrote:

Are there any pointers or short instructions or a HOWTO or something
similar on the art of cross-compiling Plan 9 from Linux?

It would be easier to compile using 9vx under Linux, or a virtual plan 9 machine in qemu under Linux.
It is possible to cross-compile directly, but I've only built and used that environment twice myself
(once for Solaris, once for Linux), and it isn't any longer in any distributable shape. It might reappear
as a side effect of some work on the compiler suite. It's similar to the way Inferno's kernel is cross
compiled using the Plan 9 compilers hosted by some other OS, but needs a few special twists to
deal with the Plan 9 source tree.