__riscos is defined by compilers (Norcroft and GCC) that are targeting RISC
OS. It doesn't matter what OS the compiler is running on, the code being
compiled can't tell.
Cross compiling systems (notably autotools) allow build/host/target systems
all to be different so you can distinguish between programs to run on the
build machine and those to run on the machine you're cross-compiling for,
but that's not relevant inside the compiler itself.
Theo