Вероятно, ответ таков: зависит от того, как был создан файл ELF.
На основании этой статьи и этого предложения:
- Распространенным заблуждением является то, что файлы ELF предназначены только для исполняемых файлов ...
- Мы уже видели, что они могут быть использованы для частичных частей ...
Не все файлы ELF будут выполнены, даже если у вас есть правильная настройка.
Основываясь на этой статье, существует группа файлов ELF под названием FatELF:
- FatELF - это формат файла, который встраивает в один файл несколько двоичных файлов ELF для разных архитектур.
- Поставьте один файл, который работает в Linux и FreeBSD
На основе этой страницы от Apple
- Часть BSD ядра OS X в основном основана на FreeBSD
Итак, для Mac OS X FatELF - это "начало ответа".
И наконец, основываясь на этой странице:
Конвертер объектных файлов
Эта утилита может использоваться для преобразования объектных файлов между форматами COFF/PE, OMF, ELF и Mach-O для всех 32-разрядных и 64-разрядных платформ x86. Может изменять имена символов в объектных файлах. Может создавать, изменять и конвертировать библиотеки функций на разных платформах. Может дамп объектных файлов и исполняемых файлов. Также включает в себя очень хороший дизассемблер, поддерживающий наборы инструкций SSE4, AVX, AVX2, AVX512, FMA3, FMA4, XOP и Knights Corner. Исходный код включен (GPL).
У вас есть возможность активировать то, что вы хотите.
PS: есть еще одна страница о XBinary, я не анализировал ее.
В этом документе обсуждается XBinary, новое программное обеспечение, которое позволяет добавлять поддержку уровня ядра для выполнения файлов в произвольных двоичных форматах в Mac OS X