Мне нужно развернуть коробку Red Hat 4.1.2 (которая имеет gcc 4.1.2). Я использую GCC 4.6.1 на Ubuntu 11.10 для разработки. К сожалению, некоторые из двоичных файлов, которые создает мой процесс сборки, непригодны для использования на машине RedHat. Причина, по-видимому, заключается в изменении ABI, которое согласно another Stackoverflow question было результатом введения символов STT_GNU_IFUNC. Есть ли способ предотвратить экспорт любых таких символов, чтобы мой двоичный файл мог использовать старый ABI? Я использовал nm для поиска любых символов типа «i» в своем двоичном формате, но не нашел их.Как избежать символов STT_GNU_IFUNC в двоичном формате?
Я спрашиваю об этом, потому что некоторые из моих других двоичных файлов, а также некоторые сторонние библиотеки, которые я строю (tbb, boost), не используют новый ABI и поэтому отлично работают на компьютере RedHat.
Надеюсь, что это ясно. Заранее спасибо.
Спасибо, это то, чего я боялся. Проблема в том, что моя среда сборки использует относительно новые возможности python и gcc. Мне нужно будет это смягчить. – samwise
Обычно вы можете * создать новый Python и GCC на старой машине, а затем использовать их. Версия GCC не имеет большого значения для переносимости полученной библиотеки; только версия glibc делает. –