У источника и цели разные версии 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 вообще появился.