1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/shike-boringssl

Клонировать/Скачать
BUILDING.md 8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 14:16 972c04e

Сборка для 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

  • Версии CMake начиная с 3.0.2 имеют ошибку в генераторе Ninja, которая вызывает вывод предупреждений yasm. Эти предупреждения можно безопасно игнорировать. Ошибка cmake находится по адресу http://www.cmake.org/Bug/view.php?id=15253.
  • CMake может генерировать проекты Visual Studio, но сгенерированные файлы проекта не содержат шагов для сборки исходных файлов языка ассемблера, поэтому в настоящее время их нельзя использовать для создания BoringSSL.

Встроенный ARM

ARM, в отличие от Intel, не имеет инструкции, позволяющей приложениям определять возможности процессора. Вместо этого информация о возможностях должна каким-то образом предоставляться операционной системой.

По умолчанию в системах на базе Linux BoringSSL будет пытаться использовать getauxval и /proc для обнаружения возможностей. Но некоторые среды не поддерживают такого рода вещи, и для них можно настроить возможности ЦП во время компиляции.

На iOS или сборках, определяющих OPENSSL_STATIC_ARMCAP, функции будут определяться на основе ARM_NEON и ARM_FEATURE_CRYPTO, сообщаемых компилятором. Эти значения обычно контролируются флагом -march. Вы также можете определить любое из следующих значений для включения соответствующей функции ARM.

  • OPENSSL_STATIC_ARMCAP_NEON
  • OPENSSL_STATIC_ARMCAP_AES
  • OPENSSL_STATIC_ARMCAP_SHA1
  • OPENSSL_STATIC_ARMCAP_SHA256
  • OPENSSL_STATIC_ARMCAP_PMULL На самом деле поддерживается во время выполнения, BoringSSL, скорее всего, выйдет из строя.

Размер двоичного файла

Реализация некоторых алгоритмов требует компромисса между размером двоичного файла и производительностью. Например, самая быстрая реализация 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/shike-boringssl.git
git@api.gitlife.ru:oschina-mirror/shike-boringssl.git
oschina-mirror
shike-boringssl
shike-boringssl
master