Как отключить инструкции AVX в OpenSSL?

#ios #openssl #avx #robovm

#iOS #openssl #avx #robovm

Вопрос:

У меня проблема с запуском приложения iOS, созданного с помощью платформы RoboVM. Вероятно, это вызвано тем, что мой процессор не поддерживает инструкции AVX. Я нашел страницу: https://www.openssl.org/docs/manmaster/crypto/OPENSSL_ia32cap.html с информацией о том, что можно отключить AVX в OpenSSL с помощью переменных env. Я не понимаю, как рассчитать правильное значение, чтобы отключить все инструкции AVX. Не могли бы вы объяснить, как я должен это вычислить?

Комментарии:

1. Похоже, вы отлаживаете на симуляторе. Это правильно?

2. @jww нет, симулятор работает нормально. У меня проблема с отладкой на физическом устройстве.

3. Что-то звучит подозрительно, но, возможно, я упускаю что-то очевидное. Apple сейчас создает телефоны или планшеты на базе x86? Я рискну предположить и скажу, что RoboVM создал двоичный файл для вашего хост-компьютера OS X, который является x86_64. i386 было бы хорошо, если бы это было для симулятора, но вы заявили, что это не так. Вам нужен RoboVM для настройки и сборки OpenSSL для ARMv7 или ARMv8.

4. Чтобы ответить на ваш вопрос, не отвлекаясь на устройства Apple и ARM, используйте OPENSSL_ia32cap="~0x4000000000000000" .

5. Мой плохой… Я дал вам RDRAND и бит 62. Вам нужен AVX и бит 60. Используйте OPENSSL_ia32cap="~01000000000000000" . Биты основаны на 0. Вот двоичная строка: 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 .