Кросс-компиляция 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: @rxlinux
URL: https://radix-linux.su/
Post #114
219
