LINUX.ORG.RU

LLVM ASM и компиляция ядра

 , , , ,


0

1

В llvm есть встроенный ассемблер. Насколько я понимаю, llvm-as — это не то, что мне нужно, а интересовать меня должен llvm-mc. Я могу им компилировать ASM так:

llvm-mc filename.S -filetype=obj -o filename.o
А как использовать его для компиляции ядра? Пытаюсь сделать make AS=llvm-mc, а мейк пытается запустить as. Открываю мейкфайл, нахожу переменную AS, изменяю её значение на «llvm-mc», а мейк всё равно пытается запустить as. ЧЯДНТ?

(не мучиться и использовать as из состава binutils не предлагать)

★★★★★

Угадал автора по заголовку.

Deleted
()

Попробуй задать префикс кросс-компилятора и написать соответствующие обёртки на sh.

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

Так этот префикс задаётся почти для всех используемых бинарников (это же кучу заглушек придётся писать), я хотел бы только вместо as использовать обёртку.

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

Ну вообще, я хотел бы всё-таки явно указывать, какой AS использовать. Для AR я просто сделал симлинк llvm-ar на ar, для LLD прекрасно работает make LD="ld.lld" (кстати make AR="llvm-ar" тоже нормально подхватывает переменную). Значит, что-то не так с переменной AS в Makefile (похоже, до меня никто и не думал подменять GAS на что-то другое).
В итоге я написал такой простой скрипт:

#!/bin/sh

OPT="-filetype=obj $(echo $@ | sed 's/--64/-arch=x86-64/')"
llvm-mc $OPT

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

Потом получится ненужникс.

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

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

Уже собирали. С патчами и определённым безопасным конфигом, используя GAS и gold. Я же хочу пойти дальше и собрать, используя встроенный ассемблер LLVM и LLD.

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

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

Да и зачем это вообще нужно? Смысл какой в этом?

SZT ★★★★★
()

А зачем тебе в ненужниксе вяленый? Не лучше ли по умолчанию оставить голую консоль и дать потенциальным пользователям возможность выбирать?

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

А зачем во всём искать смысл?

А я во всём не ищу смысл. Я в данный момент ищу смысл в твоих действиях. Ты ведь понимаешь, что тебе придется патчить clang или ядро Linux? Будешь поддерживать свой набор патчей для ядра или компилятора, и обновлять его с выходом новых версий? Ты правда хочешь этим заняться?

А вообще будет система, свободная от гнёта GNU.

В чем же заключается этот гнет GNU? Столлман заставляет всех пользоваться только свободным GNU софтом, а несогласных отправляет на исправительные работы?

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

Как минимум, между консолью и вяленым. Желательно ещё добавить иксы. Как бы ни хотелось отказаться от них, вяленый ещё не готов:

  • готового тайлового WM нет;
  • в Weston полно свистоперделок, в конце концов это «reference implementation»;
  • приложения, работающие через XWayland, выглядят мыльно при использовании дисплея с HiDPI.
Deleted
()
Ответ на: комментарий от Deleted

готового тайлового WM нет

Мне лично loliwm нравится (или как он там называется).

в Weston полно свистоперделок, в конце концов это «reference implementation»

А он и будет использоваться в качестве reference implementation.

приложения, работающие через XWayland, выглядят мыльно при использовании дисплея с HiDPI

XWayland в состав дистрибутива включён не будет.

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

Кстати, скастуй меня, пожалуйста, когда что-нибудь получится. И тег создать не забудь, если дело пойдёт.

Deleted
()
Последнее исправление: romeo250501 (всего исправлений: 1)

Тулзы из состава llvm (в узком смысле; lld, например, это отдельный проект, хотя и из того же семейства) не являются заменой binutils, такой цели перед ними никогда не стояло. Тебе нужен elftoolchain из фряхи и какой-нибудь линкер. Но лучше, конечно, взять binutils и не париться.

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

Цели не стояло, но вполне заменяют же. ELF Toolchain у меня собран (и даже линкер с ним в комплекте идёт с недавних пор).

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

Интересно, думал, ее не хватает на замену.

anonymous
()
Ответ на: комментарий от gag

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

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