Влияние на обновление gcc или binutils

Я хочу использовать Red Hat Enterprise Linux 5.8 для компиляции folly, а gcc — 4.1.2. Но для глупости нужен gcc >= 4.6. Поэтому мне нужно обновить gcc до 4.6, возможно, binutils и т. д. Если новая цепочка инструментов генерирует двоичные файлы, такие как *.a *.so, вызовет ли их запуск на старой Red Hat Enterprise Linux 5.8 какие-либо проблемы или нестабильность?


person wande    schedule 11.01.2013    source источник
comment
Связанный вопрос: stackoverflow.com/questions/1726042 / и большую таблицу совместимости от osdev.org   -  person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 15.05.2015


Ответы (1)


Вероятно, это не проблема (поскольку GCC 4.1 и вскоре выпущенный GCC 4.8 создают совместимый код), по крайней мере, для кода C.

Я считаю, что для кода C++ существует несовместимость. Конечно, libstdc++ привязан к версии компилятора. Иногда это может быть совместимо на практике, иногда нет (но C++ ABI тоже немного изменился). И эта несовместимость может распространиться на каждую библиотеку C++.

Я считаю, что вы должны попробовать. Если вы перекомпилируете - с тем же новейшим GCC - все зависимости C++, вы, вероятно, будете в полной безопасности. Таким образом, вы можете скомпилировать новейший GCC, а затем скомпилировать folly и все его зависимости вместе с ним.

Кстати, я бы посоветовал перейти на последнюю версию GCC (сегодня 4.7, через несколько недель 4.8).

person Basile Starynkevitch    schedule 11.01.2013