Кросс-компиляция NGINX (для случая GCC)NGINX – это HTTP‑сервер и обратный прокси‑сервер, почтовый прокси‑сервер, а также TCP/UDP прокси‑сервер общего назначения, изначально написанный
Игорем Сысоевым. Уже длительное время он обслуживает серверы многих высоконагруженных сайтов.
Однако кросс‑компиляция
NGINX практически невозможна, поскольку разработанные Игорем Сысоевым скрипты конфигурирования исходного кода в большинстве случаев используют так называемую процедуру "
Try Run".
Те кто знаком с утилитами
Autoconf,
Automake знают, что проверки необходимых параметров системы и кросс‑компилятора осуществляются различными процедурами, которые, в свою очередь, могут применять попытки сборки исходного кода (
Try compile), компоновки объектных файлов (
Try link) и, наконец, попытки запуска тестовых программ (
Try Run).
Естественно, если речь идет о кросс‑сборке, операции "
Try Run" недопустимы, ведь мы не можем запустить программу, собранную под целевую архитектуру отличающуюся от архитектуры машины сборки на самой машине сборки.
В
Autotools проблемы, связанные с невозможностью запуска целевых программ на сборочной машине в некоторых случаях решаются кешированием переменных, которые могу быть переопределены пользователем в файле
‑‑cache‑file или заданы в командной строке вызова скрипта
./configure.
Скрипты
Игоря Сысоева не предусматривают такого переопределения машинно‑зависимых величин. Однако величин, которые необходимо задать во время конфигурирования исходных кодов
NGINX достаточно много. К ним, в первую очередь, относятся размеры типов данных. Именно с них мы и начнем.
Читать далее »Telegram:
@rxlinuxURL:
https://radix-linux.su/