Начальное примечание: в вопросе упоминается AIX, поскольку это исходный контекст, но вопрос действительно относится к самому gcc, скорее всего независимо от платформы.
Предполагается, что AIX обратно совместим с двоичными данными: программа на C, скомпилированная в AIX 5.1, будет работать как есть на 5.2, 5.3, 6.1 и 7.1.
В моем понимании gcc должен быть построен для целевой системы (будь то текущая или другая в случае кросс-компиляции). Итак, gcc, построенный на AIX 6.1, нацелен на AIX 6.1 и создает двоичные файлы, которые можно использовать как на 6.1, так и на 7.1 благодаря двоичной совместимости.
Тем не менее, сам gcc, созданный на AIX 6.1, является программой 6.1, поэтому он должен работать на 7.1 как есть. Конечно, если я скомпилирую программу с ее помощью в 7.1, эта программа может быть связана или использовать заголовки, специфичные для 7.1, что делает получающийся двоичный файл требующим 7.1. Итак, насколько я понимаю, я должен иметь возможность запускать gcc, созданный на AIX 6.1, на машине 7.1 и создавать, возможно, неоптимальные, но совершенно корректные двоичные файлы, хотя для них потребуется 7.1 в качестве побочного эффекта связывания.
Это слишком похоже на радугу и единорогов, танцующих в блестящем небе. Я чувствую что-то подозрительное, но мне не хватает знаний о внутренностях gcc. Пожалуйста, могучая толпа, просветите меня.
tl; dr : Может ли gcc, созданный и ориентированный на версию N ОС / платформы, запускаться и использоваться в версии N + 1 благодаря двоичной совместимости платформы для создания двоичных файлов, работающих в версии N + 1? Если нет, то какой механизм предотвратит это?