Опции, которые вы предоставляете в NDK, влияют только на то, как компилируется ваш код. Это не изменит библиотеки GL или что-то еще, что является частью платформы, которые всегда генерируются соответствующим образом. Если вы просто бросаете геометрию на оборудование GL, вы не увидите никакой разницы.
Если вы хотите увидеть, влияют ли ваши параметры, загрузите (или создайте) простой тест, который выполняет ряд операций с значениями с плавающей запятой двойной точности, а также время, необходимое для выполнения до и после.
Аргумент -mfloat-abi = softp определяет, как значения с плавающей точкой передаются между функциями. softfp означает, что они всегда передаются в целочисленных регистрах или в стеке. Если бы Android не указывал softfp, версия библиотеки ARMv7-A ожидала, что числа с плавающей запятой будут отображаться в аппаратных регистрах, и любой код, созданный для ARMv5TE, сломается.
«softfp» добавляет некоторые накладные расходы к некоторым функциям, но инструкции по перемещению значений в и из регистров fp дешевы в ARM, и обеспеченная совместимость с ABI делает это целесообразным.
«-mthumb» позволяет генерировать код Thumb / Thumb2. Thumb-код имеет тенденцию быть немного медленнее, но немного меньше, чем эквивалентный ARM; иногда меньше означает, что вы лучше поместитесь в i-кеш процессора и будете работать быстрее. Размер всегда важен для этих устройств, поэтому Thumb включен по умолчанию.
В случае сомнений «arm-eabi-objdump -d what.o» покажет вам разборку вашего кода.
Обновление: NDK r9b добавлена поддержка -mhard-float. Это позволяет вам создавать библиотеки NDK с жесткими соглашениями API для целей armeabi-v7a.