У источника и цели разные версии EABI

Я пытаюсь скомпилировать файл.so, используя ARM toolchain. Однако я продолжаю получать эту ошибку

ошибка: исходный объект имеет версию EABI 0, а цель имеет версию 5 EABI

Я не могу ничего изменить в цепочке инструментов, так как я должен использовать данный. Я никогда не видел эту ошибку раньше.

Я использовал этот флаг компилятора -
-Wl,--no-warn-mismatch
Но пришлось вынуть его, так как он сломал много других вещей.

Флаги компилятора, которые я использую:
-fPIC -O2 -marm -march=armv7-a

1 ответ

использованиеas -meabi=5

Я не собираюсь утверждать, что полностью понимаю это...:-), но это решило проблему.

То, что я пытался сделать, не удалось:

  • собрать с GNU AS, скомпилированным из master в 4de5434b694fc260d02610e8e7fec21b2923600a с настройкой --target arm-elf
  • связь с Ubuntu 16.04 arm-linux-gnueabihf-gcc версия 5.3.1

Я думаю, что значение, упомянутое в спецификациях EABI, говорит кое-что об этом http://infocenter.arm.com/help/topic/com.arm.doc.ihi0044f/IHI0044F_aaelf.pdf

Таблица 4-2, специфичные для ARM e_flags

Это маскирует 8-битный номер версии, версию ABI, которой соответствует этот файл ELF. Это ABI версии 5. Значение 0 обозначает неизвестное соответствие.

хотя я не знаю, почему именно 0 вообще появился.

Другие вопросы по тегам