Сборка для Android
После выполнения команды Ninja должен создать двоичные файлы, совместимые с Android. Вы можете заменить «armeabi-v7a» на «arm64-v8a» и использовать API уровня 21 или выше для создания двоичных файлов aarch64.
Для других опций см. документацию в файле набора инструментов.
Чтобы отладить полученные двоичные файлы на устройстве Android с помощью gdb, выполните следующие команды. Замените ARCH архитектурой целевого устройства, например, arm или arm64.
adb push ${ANDROID_NDK}/prebuilt/android-ARCH/gdbserver/gdbserver /data/local/tmp
adb forward tcp:5039 tcp:5039
adb shell /data/local/tmp/gdbserver :5039 /path/on/device/to/binary
Затем запустите следующее в отдельной оболочке. Замените HOST операционной системой и архитектурой хост-машины, например, linux-x86_64.
${ANDROID_NDK}/prebuilt/HOST/bin/gdb
target remote :5039 # в gdb
Сборка для iOS
Чтобы собрать для iOS, передайте -DCMAKE_OSX_SYSROOT=iphoneos и -DCMAKE_OSX_ARCHITECTURES=ARCH в CMake, где ARCH — желаемая архитектура, соответствующая значениям, используемым в флаге -arch в наборе инструментов Apple.
Поддержка передачи нескольких архитектур для сборки с несколькими архитектурами не поддерживается.
Сборка с префиксом символов
Система сборки BoringSSL экспериментально поддерживает добавление пользовательского префикса ко всем символам. Это может быть полезно при связывании нескольких версий BoringSSL в одном проекте, чтобы избежать конфликтов символов.
Чтобы создать сборку с префиксными символами, переменная CMake BORINGSSL_PREFIX должна указывать префикс, добавляемый ко всем символам, а переменная CMake BORINGSSL_PREFIX_SYMBOLS должна указывать путь к файлу, содержащему список символов, которые должны быть префиксированы (по одному на строку; комментарии поддерживаются с помощью #). Другими словами, cmake .. -DBORINGSSL_PREFIX=MY_CUSTOM_PREFIX -DBORINGSSL_PREFIX_SYMBOLS=/path/to/symbols.txt настроит сборку так, чтобы добавить префикс MY_CUSTOM_PREFIX ко всем символам, перечисленным в /path/to/symbols.txt.
В настоящее время ответственность за создание и ведение списка символов, подлежащих префиксу, лежит на вызывающем объекте. В качестве альтернативы util/read_symbols.go считывает список экспортированных символов из файла .a и может использоваться в сценарии сборки для динамического создания списка символов (путем сборки без префикса, использования read_symbols.go для построения списка символов и последующей сборки снова с префиксом).
Этот механизм находится в стадии разработки и со временем может измениться. Пожалуйста, свяжитесь с сопровождающими BoringSSL, если вы его используете.
Известные ограничения для Windows
Встроенный ARM
ARM, в отличие от Intel, не имеет инструкции, позволяющей приложениям определять возможности процессора. Вместо этого информация о возможностях должна каким-то образом предоставляться операционной системой.
По умолчанию в системах на базе Linux BoringSSL будет пытаться использовать getauxval и /proc для обнаружения возможностей. Но некоторые среды не поддерживают такого рода вещи, и для них можно настроить возможности ЦП во время компиляции.
На iOS или сборках, определяющих OPENSSL_STATIC_ARMCAP, функции будут определяться на основе ARM_NEON и ARM_FEATURE_CRYPTO, сообщаемых компилятором. Эти значения обычно контролируются флагом -march. Вы также можете определить любое из следующих значений для включения соответствующей функции ARM.
Реализация некоторых алгоритмов требует компромисса между размером двоичного файла и производительностью. Например, самая быстрая реализация P-256 в BoringSSL использует заранее вычисленную таблицу размером 148 КиБ. Чтобы оптимизировать размер двоичного файла, передайте -DOPENSSL_SMALL=1
в CMake или определите препроцессорный символ OPENSSL_SMALL
.
Существует два набора тестов: тесты на C/C++ и тесты чёрного ящика. Первые создаются с помощью Ninja и могут быть запущены из каталога верхнего уровня с помощью команды go run util/all_tests.go
. Последние должны запускаться отдельно с помощью команды go test
из папки ssl/test/runner
.
Оба набора тестов также можно запустить с помощью команды ninja -C build run_tests
, но для того, чтобы избежать буферизации вывода Ninja, требуется использовать CMake версии 3.2 или выше.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )