LINUX.ORG.RU

Сборка glibc-программы под musl

 , ,


0

1

Есть такой игровой сервер, написанный на плюсах, который называется rehlds.

Задача состоит в том, чтобы скомпилировать данный сервер под систему с musl. Речь идет об Alpine Linux.

Как это делается? Какие этапы включает подобная сборка? Гугл подсказал, что нужен определенный тулчейн и как-то надо заставить GCC слинковать с musl-либой. И да, стоит ли использовать другой компилятор для этого? Есть ли подробные мануалы об этом?

a1batross.

Deleted

У меня есть подозрение что оно не соберётсябез правок. Пробуй собрать как обычно, а там уже разбирайся что отвалится.
hl.so/cs.so/metamod тоже придётся собирать

mittorn ★★★★★
()

Если ты собираешь уже на Linux с musl, то собирай как обычно.

Если ты хочешь собирать из под обычного Linux с glibc, то собери сначала тулчейн: https://github.com/richfelker/musl-cross-make

А потом собирай этим тулчейном свою прогу и зависимости для проги…

fsb4000 ★★★★★
()

Сделать докер образ на основе альпайн с гцц, системой сборки и т.д., и собрать?

invy ★★★★★
()
Ответ на: комментарий от Deleted

Если ты задаешься таким вопросом, значит имеешь планы запускать то, от чего сорцов возможно нет.

Так вот, всё оно собрано с glibc и с сервером с musl не заработает.

musl-сборка думаю возможна, но тебе из исходников придётся пересобирать каждый *.so файл от игрового сервера.

a1batross ★★★★★
()
Ответ на: комментарий от a1batross

Так вот, всё оно собрано с glibc и с сервером с musl не заработает.

не факт. есть gcompat. но я не увлекалась подобными экспериментами. просто знаю, что есть такая штука.

Iron_Bug ★★★★★
()
Ответ на: комментарий от mittorn

оно даже может собраться, но не заработать.

самая частая проблема при переносе - нечищенная память. musl её по дефолту не чистит. также бывают проблемы c устаревшими фичами glibc, которые уже выпилены из стандартов, но кое-где в старых библиотеках могут встречаться.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

А он позволяет в одном процессе смешивать разные libc? ТС хочет собрать сервер с musl, но сервер в свою очередь dlopen-ит игровую библиотеку.

a1batross ★★★★★
()
Ответ на: комментарий от a1batross

он предоставляет свой динамический линкер и библиотеку с заглушками или трансфером вызовов. можно дописывать туда что угодно, если нужно.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

Тогда можно и не париться и пускать весь сервер через него. Я этот проект знаю, там не должно быть glibc-специфичного или нестандартного кода.

a1batross ★★★★★
()

Задача состоит в том, чтобы скомпилировать данный сервер под систему с musl. Речь идет об Alpine Linux.

под систему с musl

musl

Зачем тебе оно? Если ты думаешь, что он быстрее/лучше - нет.

xiomar_georgios
()
$ cat /usr/bin/musl-gcc 
#!/bin/sh
exec "${REALGCC:-gcc}" "$@" -specs "/usr/lib/musl/lib/musl-gcc.specs"

Не оно?

sergej ★★★★★
()
Ответ на: комментарий от a1batross

я запускал tfc через custom-linker, надо всего то прокинуть все функции

mittorn ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.