Spec-Zone.ru › MariaDB

Кросс-компиляция MariaDB

Buildroot

Buildroot — это способ кросс-компиляции MariaDB и других пакетов в корневую файловую систему. В меню конфигурации menuconfig необходимо сначала включить "Enable C++ Support" в разделе "Toolchain". После включения C++ MariaDB будет доступен в "Target Packages" -> "Libraries" -> "Databases" -> "mysql support" -> "mysql variant" -> "mariadb". Также включите "mariadb server" ниже опции "mysql support".

Детали

Для кросс-компиляции с помощью cmake вам потребуется файл цепочки инструментов. См., например, здесь. Помимо специфичных для cmake переменных, он должен содержать, по меньшей мере

  SET(STACK_DIRECTION -1)
  SET(HAVE_IB_GCC_ATOMIC_BUILTINS 1)

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

Обратите внимание, что во время сборки несколько вспомогательных инструментов компилируются, а затем сразу используются для генерации дополнительных исходных файлов для этой же сборки. При кросс-компиляции эти инструменты, естественно, должны быть скомпилированы для архитектуры хоста, а не для целевой архитектуры. Сделайте это так (предполагая, что вы находитесь в дереве исходных кодов MariaDB):

$ mkdir host
$ cd host
$ cmake ..
$ make import_executables
$ cd ..

Теперь помощники скомпилированы, и вы можете выполнить кросс-компиляцию:

$ mkdir target
$ cd target
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain/file.cmake -DIMPORT_EXECUTABLES=../host/import_executables.cmake
$ make

Здесь вы вызываете cmake, указывая путь к файлу вашей цепочки инструментов и путь к import_executables.cmake, который вы только что скомпилировали на предыдущем шаге. Конечно, вы также можете указать любые другие параметры cmake, которые могут быть необходимы для этой сборки, например, включить или отключить определенные движки хранения.

См. также https://lists.launchpad.net/maria-discuss/msg02911.html

Содержание, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают позицию MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/cross-compiling-mariadb/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API