Also worth considering - compiling nim to C source code, which you then build later under linux.
Also if cross-compiling binaries to linux (eg: docker), make sure you use the exact same glibc/etc, otherwise dynamic lib link failures when you copy the binary over. (this is one thing that Go lang tries to fix). I think you can compile and statically link an alternate libc, so your binary can work in far more environments. eg: musl-libc or diet-libc
