Как найти все версии EABI, которые поддерживает GCC, и как найти версию EABI целевой системы? - PullRequest
2 голосов
/ 20 января 2012

Два вопроса здесь:

  1. При переносе общей библиотеки на многие системы Linux-или-Android-на-ARM желательно знать точные версии EABI кросс-компилятора GCCподдерживает и какая версия EABI по умолчанию.Как это сделать?

  2. Как узнать, какой EABI имеет целевую систему Linux-или-Android?Я обычно беру любую системную библиотеку с целевой платы и звоню $ARM-GCC-PREFIX-readelf -h $LIBNAME | grep Flags, которая возвращает мне что-то.как Version4 EABI.Но есть ли какой-нибудь красивый способ, чтобы мне не нужно было копировать системную библиотеку из целевого на хост для запуска readelf?

1 Ответ

1 голос
/ 20 января 2012

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

Аналогично, readelf, вероятно, является лучшим способом определения ABI по умолчанию, используемого компилятором.

Компилятор фактически не позволяет вам выбирать какую-либо конкретную версию ABI. Это только позволяет вам выбирать между различными вариантами ABI. Компилятор просто реализует любой текущий ABI на момент его написания. В любом случае EABI должен быть обратно совместимым.

Возможно, реальный вопрос в том, какая архитектура поддерживается? Или что такое float-abi? Эти важны при сборке для конкретного устройства.

...