You should probably be prepared for that anyway. It's not a new issue - this is why we use bigendian data on the 'net, for instance - and there are tools prepared to do it, like DCE, MPI or CORBA.
Even if you use the same release of GCC on both sides, it won't eliminate architectural differences like endianness, data sizes available (long may be 64 bit, int may be 16 bit - for fixed sizes, use stdint.h) and such. Using different toolchains will usually not matter, because the above mentioned platform and ABI differences are there either way.
That said, you may run into things like standards compliance and new features that you want to match when you compile the program for multiple platforms, and getting the same toolchain is an easy way to achieve it. This is one of the driving forces behind GNU in the first place, because non-free vendors sometimes not only do not keep up, when they do, they want money for it. Often in the form of forcing you to replace your machines too.