LINUX.ORG.RU

Как собрать статический qemu c uclibc?

 , , , ,


0

1

Потребовалось запустить проприетарный x86 бинарник на не-x86.
Причём не для личного использования (т.е какой-нибудь exagear не катит). Бинарник будет выкачиваться из интернета на конечной системе без каких либо нарушений.
Нужно, чтобы всё получилось наиболее компактно.
Решил собрать qemu (статический linux-userspace транслятор) на какой-нибудь минималистичной библиотеке C.
Готовые варианты не подходят т.к мне потребуется внести несколько изменений в qemu.
Как мне собрать минимальный sysroot с uclibc?
crossdev и embtoolkit пробовал - даже до glib дело не дошло (а эта гадость используется в qemu всюду).
Может быть, где-нибудь есть уже готовые sysroot?
Нужен всего лишь набор хедеров и статических библиотек.
Кончено можно какой-нибудь stage3 взять, но тащить громоздкий glibc не хочется.
Так же хотелось бы какую-нибудь минималистичную elibc-систему для гостя, но это уже проще собрать - ведь там нужен только libc да libgcc.

★★★★★

Нужно, чтобы всё получилось наиболее компактно.

Т.е. user?

Решил собрать qemu (статический linux-userspace транслятор) на какой-нибудь минималистичной библиотеке C.

Но что ты выигрываешь? qemu всё равно нужна хост-система, в которой уже есть libc.

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

Линуусовый или андройдовый. Второе нежелательно из-за ограничений pic/no-pic в линкере. Это qemu. А бинарник линуксовый

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

Смеёшься?
Эмулировать всю систему?

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

Уже нашёл и даже собрал, но они armv7 все, либо 2005-2008 года.
Нужно и на armv7 на armv5 запускать.
Производительность не имеет значения.

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

Достаточно будет мелкого статическогг бинарника.
Это для гостевой отдельный libc нужен

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

А sysroot делается одной командой при помощи debootstrap или yum. Опять же, если без ненужных выкрутасов.

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

Нужно и на armv7 на armv5 запускать.
Производительность не имеет значения.

Что-то ты не договариваешь. Что за задача стоит?

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

Кто хочет, чтобы его мозг остался мягким и шолковистым тут не сидит.
А я же хочу свести оверхед к минимуму, жертвуя своим и вашим временем. Ибо пока никто не торопит, а задача поставлена вполне выполнимая.

По этому даже под гостевую готовый glibc меня не устраивает и его я тоже буду пытаться компилировать. Чтобы включить static nss как минимум. Но пока что используется обычный

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

Достаточно будет мелкого статическогг бинарника.

Он будет больше, чем бинарник, динамически слинкованный с системной libc.

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

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

У меня есть плохие предчувствия по поводу steamcmd, qemu и armv5. Мне кажется, оно будет настолько феерически медленно выполняться.... Что скажете, коллега, tailgunner?

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

выполняется оно с приемлемой скоростью

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

В android линкер поломали. В любой момент могут поломать снова. Не хочу связваться с динамической линковкой с android.

mittorn ★★★★★
() автор топика

Нужно, чтобы всё получилось наиболее компактно.

тогда уж musl лучше брать:
http://www.etalabs.net/compare_libcs.html
в uclibc не всё так бело и пушисто. там не полная поддержка математики. в общем, это весьма специфическая реализация под эмбеддед и на некоторых архитектурах попадаются весьма жёсткие тараканы (например, проблемы с позиксовскими потоками). конкретно под АРМ я с ней не собирала ничего, не могу сразу сказать, есть там тараканы или нет. но лучше сразу погуглить заранее на предмет возможных кривостей.

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

Главное - собрать с ним qemu. Он сейчас достаточно тяжёлая и непортабельная штука, завязан на glib.
Но тем не менее спасибо за ещё один вариант с dietlibc.
Попробую со старым qemu, который полегче был, может что выйдет.

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

Гм. Это не musl, это я поспешил. Ну и пусть будет 2008. Правда до актуального обновиться будет проблематично, да.

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

musl есть актуальный, но только armv7 hardfloat.

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