2013-04-27 2 views
4

Могу ли я скомпилировать приложение с новым x32 ABI, а затем запустить его в обычном ядре? Как насчет библиотеки времени выполнения? Есть ли какая-либо форма взаимодействия с предварительно скомпилированными библиотеками x86/x86_64?Что нужно перекомпилировать для запуска приложения x32 ABI?

ответ

3

Nope. x32 нуждается в собственном наборе библиотек, как и x86 и x86-64. Так же, как вы не можете запускать двоичные файлы x86 в системах, которые предоставляют только x86-64 libs, двоичные файлы x32 не будут работать на системах, предоставляющих только библиотеки x86 и/или x86-64. Как x86 и x86-64, x32 - это собственная архитектура.

Поддержка также должна быть включена в ядре, конечно. Ядро, которое было создано без поддержки поддержки x32, не сможет запускать двоичные файлы x32.

+0

Но вы можете иметь все библиотеки x86-64, x86 и x32 все существующие бок о бок, правда? Так же как 64/32-битное пользовательское пространство будет содержать каталоги/lib32,/lib64,/usr/lib32,/usr/lib64 и т. Д.? Благодаря! –

+2

@ ДаниэльСантос Да. Это архитектура, как и две другие. Я бы сделал ставку на то, что в многолистной системе libs будет в/usr/libx32, если только собственная арка системы не будет действительной x32, и в этом случае они могут быть в/usr/lib. –

+0

Если система имеет библиотеки x86-64 и x32, как она решает, какую использовать? Нужно ли перекомпилировать все приложения для использования библиотек x32 для экономии памяти? – jarno