the "plop into compiler" kind of guy... sync is probably written in c/c++ (I guess). When porting to mips, the first thing you need to do for all these routers: compatibility with uclibc. The routers usually have not a lot of memory and so forth, so they use uclibc instead of the regular libc. uclibc doesn't have everything that libc has, but it's a lot more compact. Next up is busybox, which provides a small posix kind of system. Just like with uclibc, it has a lot of functions of a full size linux desktop, but not everything. Kernel might be an issue as well... some routers are still running kernel 2.4 (ancient) and some newer broadcom routers run 2.6.22 (also quite ancient). Many issues to overcome, and many ifdefs I think Didn't even mention architecture differences. Some algorithms might get tangled on a different architecture.