Вы, вероятно, должны быть готовы к этому в любом случае. Это не новая проблема - вот почему мы используем, например, в сети бигендовские данные - и для этого есть инструменты, такие как DCE, MPI или CORBA.
Даже если вы используете одну и ту же версию GCC с обеих сторон, это не устранит архитектурные различия, такие как порядковый номер, доступные размеры данных (long может быть 64-битным, int может быть 16-битным - для фиксированных размеров используйте stdint.h ) и тому подобное. Использование разных наборов инструментов обычно не имеет значения, потому что вышеупомянутые различия между платформой и ABI существуют в любом случае.
Тем не менее, вы можете столкнуться с такими вещами, как соответствие стандартам и новыми функциями, которым вы хотите соответствовать, когда вы компилируете программу для нескольких платформ, и получить один и тот же набор инструментов - простой способ достичь этого. Во-первых, это одна из движущих сил GNU, поскольку несвободные поставщики иногда не только не успевают, но и хотят за это денег. Часто в форме принуждения вас к замене ваших машин тоже.