Можно ли скомпилировать библиотеку Android для ARMV6 и опционально с VFP?
Я сейчас пользуюсь -mfloat-abi=softfp -mfpu=vfp
Я думаю, что вышеупомянутая линия требует устройства ARMV6 с реальной поддержкой VFP.
Что делать, если я использую -mfloat-abi=soft
? Будет ли это работать на устройствах ARMV6 без реальной поддержки VFP, но будет быстрее, чем даже не указывать mfloat-abi
?
(Я не хочу создавать толстый двоичный файл с 2 .so файлами)
1 ответ
Информационная страница gcc гласит:
Определение
soft
заставляет GCC генерировать вывод, содержащий библиотечные вызовы для операций с плавающей точкой.softfp
позволяет генерировать код с использованием аппаратных инструкций с плавающей запятой, но все еще использует соглашения о вызовах с плавающей запятой.hard
позволяет генерировать инструкции с плавающей запятой и использует специфичные для FPU соглашения о вызовах.
Итак, используя soft
не то, что вы хотите для целей с FPU.
Большинство устройств, поставляемых в настоящее время, имеют процессор ARMv7-A или выше, поэтому, если вы не ориентируетесь на конкретное устройство, я не уверен, насколько ценным является создание двух общих библиотек.
Обновление: на самом деле много устройств поставляются со старыми процессорами. Все высококлассное оборудование - ARMv7-A, но в бюджетных устройствах много громкости.
ARMv6 + VFP - это не конфигурация, поддерживаемая Play Store - целью было сохранить как можно меньший набор конфигураций. Вам нужно будет использовать толстый двоичный файл или (как кажется, вы это делаете) тщательно сконфигурировать свою сборку и перечислить конкретные устройства в Play Store.