mezastel
@mezastel
Финансовая математика, программирование

Какова бинарная совместимость программ под Linux?

Тут внезапно возник вопрос, может кто поможет. Я использую RHEL и у меня очень экзотичные процессоры (32-ядерные ксеоны, все такое). Представим что я на корабле, и хочу писать на ноуте под Hyper-V. Вопрос такой: могу ли я, например, поставить CentOS (под Hyper-V) и получить при этом бинарную (!) совместимость, если учесть что набор инструкций серверного Xeon'а и ноутбучного i7 все-таки разные?

N.b.: для разработки используется Intel C++ Compiler.
  • Вопрос задан
  • 2663 просмотра
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Вообще есть такое понятие, как кросс-компиляция. Надо смотреть, какие архитектуры ваш компилятор поддерживает.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
32-ядерные ксеоны, все такое

архитектура процессора x86_64, набор инструкций нестандартный какой вы врят-ли будете использовать, а точнее врят-ли компилятор ваш будет использовать что-то другое не проверив есть ли оно.
Ответ написан
Комментировать
Gem
@Gem
Бинарная совместимость зависит скорее от библиотек и окружения, чем от процессора
в gcc есть опция mtune - нестрогая оптимизация
если собирать под усреднённый x86_64 и не усердствовать с SSE и подобным - работать будет везде
ну а потоки - это ваша работа, а не компилятора :-)
Ответ написан
Комментировать
donkaban
@donkaban
Умею рисовать тени
Кросскомпиляторы под все поддерживаемые платформы. Очевидно, что как минимум GLIBC и GLIBCXX вам придется тащить из целевой платформы в свой sysroot, несложно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы