URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 112282
[ Назад ]

Исходное сообщение
"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."

Отправлено opennews , 19-Сен-17 22:29 
Инженеры из компании Google выступили на конференции Linux Plumbers Conference с докладом (http://www.linuxplumbersconf.net/2017/ocw//system/presentati...), в котором рассказали об инициативе переноса в основное ядро оставшихся патчей от заброшенного последние несколько лет проекта LLVMLinux (http://llvm.linuxfoundation.org). В результате проведённой работы предоставлена возможность сборки LTS-ядер Linux 4.4 и 4.9 с использованием компилятора Clang. Поддерживается сборка для архитектур x86_64 и ARM64. Перед сборкой требуется наложение одного патча (4.4 (https://chromium.googlesource.com/chromiumos/third_party/ker...),
4.9 (https://chromium.googlesource.com/chromiumos/third_party/ker...)). Работа проведена в рамках инициативы по переводу сборочного инструментария Android и Chrome OS на использование Clang/LLVM.  


Также можно отметить поддерживаемый одним из сотрудников Google репозиторий
clang-kernel-build (https://github.com/ramosian-glider/clang-kernel-build) и ветку в репозитории (https://chromium.googlesource.com/chromiumos/third_party/ker...) проекта Chromium с инструкциями и патчами для сборки ядра Linux 4.13 с использованием Clang.

URL: https://www.linuxplumbersconf.org/2017/ocw/events/LPC2017/tr...
Новость: http://www.opennet.me/opennews/art.shtml?num=47232


Содержание

Сообщения в этом обсуждении
"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 19-Сен-17 22:29 
Хорошая новость, по опыту разработки могу сказать, что clang имеет хороший статический анализатор (по сравнению с gcc). Например, в версии 3.9 он научился находить случаи использования variadic arguments с некорректными аргументами, которые были автоматически promoted до другого типа.
https://www.securecoding.cert.org/confluence/display/cpluspl...

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено kleem_head , 20-Сен-17 09:20 
>  clang имеет хороший статический анализатор (по сравнению с gcc)

то есть качество кода ядра такое хорошее, что этот компилятор теперь его может собрать? Улыбнуло. :)


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 20-Сен-17 12:55 
> clang имеет хороший статический анализатор (по сравнению с gcc)

Ну зачем же так, он не просто лучше чем никакой, он вообще довольно хороший.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 20-Сен-17 17:37 
То, что в GCC нет встроенного анализатора не отменяет того факта, что они существуют отдельно. Просто GCC не комбайн.

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 20-Сен-17 18:43 
Ошибаетесь, есть.
-Wall -Werror
Можно ещё много чего включить:
https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Warning-Options...

Помимо статического анализа он поддерживает динамический через ASAN, MSAN (не проверял), UBSAN и TSAN (этот не проверял).

Включается, соответственно, так:
-fsanitize=address
-fsanitize=memory
-fsanitize=undefined
-fsanitize=thread
Опция указывается и при компиляции в объектные файлы, и при линковке.

GCC не так уж сильно отстаёт от clang в этом плане.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 20-Сен-17 21:15 
Это батенька не статический анализатор у вас там в gcc, а так, уровень дотошности.
Вы бы тихонько там посмотрели что умеет Clang LLVM, а потом бы уже писали.

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Crazy Alex , 23-Сен-17 00:51 
Это вы, батенька, горячитесь.

Я тут уже несколько лет вожусь с одним монструозным легаси сишным проектом, причём сборка по ряду причин идёт и свежим GCC и свежим Clang. Выглядит так, что они выровнялись где-то с год назад - во всяком случае, предсказать, кто следующий выдаст осмысленную ругань, я примерно с тех пор не могу - то один с новой версией что-то находит, то другой.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено pavlinux , 25-Сен-17 02:50 
gcc 2.7.2 рулез форева!  Ядро в три раза тоще и в 10 раз быстрее.

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 19-Сен-17 22:48 
Разве gcc и clang не должны поддерживать стандартный C11 к которому и должен быть приведён код ядра линукс? Что ж там такое то в ядре и компиляторах твориться что ядро надо патчить чтобы оно собралось на другом компиляторе?!

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Ordu , 19-Сен-17 23:02 
Ну там же ссылка есть в новости, где можно посмотреть грядку патчей, которые нужны. Лень потыкать?

Там разные причины, где-то clang глубже оптимизирует, из-за чего UB вылезает; где-то дело в багах clang'а; где-то грязные хаки ядра надо сделать менее грязными, чтобы clang их проглатывал бы молча, так же как и gcc; где-то разница во взаимодействии компилятора с внешними программами, скажем, то какие опции компилятор по умолчанию передаёт или не передаёт в gas;... Это то, что я высмотрел, рандомно тыкая по патчам. Ты можешь тоже потыкать и дополнить список.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено anonymous , 19-Сен-17 23:03 
Я тебя удивлю, но ядро написано не только на С...

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено нэту , 20-Сен-17 07:02 
а на чём ещё? asm - не в счет - шланг в него нормально умеет

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено iZEN , 20-Сен-17 15:47 
Частично на perl, xml, mk, m4 и башизмах в sh-скриптах?

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 20-Сен-17 16:26 
И? Причем  здесь perl, xml, mk, m4 и баш к Clang?

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено номия , 20-Сен-17 20:54 
это скорее про сборочное окружение.. от него тоже куча проблем для сборки клангом

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 20-Сен-17 09:57 
Не удивил. Точнее удивил но по другой причине. Меня удивляет само существование людей думающих что они в состоянии судить об информированности собеседника по одному комментарию.
Уже не первый раз сталкиваюсь с подобным и каждый раз удивляюсь.

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено nobody , 20-Сен-17 09:19 
> стандартный C11 к которому и должен быть приведён код ядра линукс

Торвальдс с Вами категорически не согласен и срать хотел на C11 и другие стардарты


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Владимир , 20-Сен-17 09:22 
Там до сих пор C89, по той причине, что Торвальдс не хочет, чтобы кто-то случайно закоммитил код, смешивающий код и объявления.

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено nobody , 20-Сен-17 09:30 
Там не только C89. Там много компиляторной магии от gcc. Собственно "поддержка компиляции с помощью clang" главным образом сводится к добавлению всех этих gcc'измов в шланг.

Вот, допустим, начало мега-треда, где, кроме прочего, Торвальдса спрашивают, почему он не использует C11 атомики в ядре: https://gcc.gnu.org/ml/gcc/2014-02/msg00052.html


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 20-Сен-17 11:03 
Так было давно уже, что они начали принимать патчи на C99.

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 20-Сен-17 13:18 
На чистом C ядро написать невозможно.

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 21-Сен-17 07:03 
> На чистом C ядро написать невозможно.

Смотря что иметь ввиду под чистым С. Если отсутствие std библиотек - сложно, но возможно. Если же использование C++ - Там его нет.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 21-Сен-17 11:46 
Имелось ввиду, без использование Asm'а.

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 21-Сен-17 12:13 
${любой_драйвер} невозможно написать с помощью чистого C.

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено pavlinux , 25-Сен-17 02:52 
> На чистом C ядро написать невозможно.

Не удобно, но возможно.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено pavlinux , 25-Сен-17 02:51 
> к которому и должен быть приведён код ядра линукс?

С какого уя?  Ядро - STD C90 максимум.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Andrey Mitrofanov , 19-Сен-17 22:59 
> в котором рассказали об инициативе переноса в основное ядро оставшихся патчей
> от заброшенного последние несколько лет проекта LLVMLinux
>llvm.linuxfoundation.org).

Да! Хотелось бы услышать начальника транспортного цеха по ворпосу проблемы GPLinBase в этих самых --

>по переводу сборочного инструментария Android и
> Chrome OS на использование Clang/LLVM.

Что там эти Гугле, Линукс-фондейшен, Эппле и пр. микрософты думают себе об этой назревшей и опухшей Проблеме?1  Когда уже, в конце-то концов!, переход на ядро FreeBSD и яблочный ld? А то ж многовато в одичавшей природе linux-ов стало.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Ordu , 19-Сен-17 23:06 
>>по переводу сборочного инструментария Android и
>> Chrome OS на использование Clang/LLVM.
> Что там эти Гугле, Линукс-фондейшен, Эппле и пр. микрософты думают себе об
> этой назревшей и опухшей Проблеме?1  Когда уже, в конце-то концов!,
> переход на ядро FreeBSD и яблочный ld? А то ж многовато
> в одичавшей природе linux-ов стало.

Гугл пилит Fuchsia, чтобы избавиться от легаси-ядра в Android'е: https://en.wikipedia.org/wiki/Google_Fuchsia


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Andrey Mitrofanov , 19-Сен-17 23:19 
>>>по переводу сборочного инструментария Android и
>>> Chrome OS на использование Clang/LLVM.
>> Что там эти Гугле, Линукс-фондейшен, Эппле и пр. микрософты думают себе об
>> этой назревшей и опухшей Проблеме?1  Когда уже, в конце-то концов!,
>> переход на ядро FreeBSD и яблочный ld? А то ж многовато
>> в одичавшей природе linux-ов стало.
> Гугл пилит Fuchsia, чтобы избавиться от легаси-ядра в Android'е: https://en.wikipedia.org/wiki/Google_Fuchsia

Там написано, что это предположения, а рыба молчит об лёд с головы...

Впрочем, позитивно: у Гугле [возможно-вероятно] будет ядро под пермиссивной лицензией с эппловым компилятором к своим ос с пермиссивными лицензиями. Это жжж здорово:  станет _меньше_ смартфонов, микрософт снова станет делать телефоны...  Можно ж будет даже исходники совсем-обратно позакрывать.

Эх, старые _добрые_ времена!!  %-)


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено ввввв , 20-Сен-17 15:13 
>>>по переводу сборочного инструментария Android и
>>> Chrome OS на использование Clang/LLVM.
>> Что там эти Гугле, Линукс-фондейшен, Эппле и пр. микрософты думают себе об
>> этой назревшей и опухшей Проблеме?1  Когда уже, в конце-то концов!,
>> переход на ядро FreeBSD и яблочный ld? А то ж многовато
>> в одичавшей природе linux-ов стало.
> Гугл пилит Fuchsia, чтобы избавиться от легаси-ядра в Android'е: https://en.wikipedia.org/wiki/Google_Fuchsia

Удачи им, как там, кстати модульный телефон?

Linux ядро - лучшая часть андроида, без него очередной симбиан ос будет с понятной судьбой.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Ordu , 20-Сен-17 23:08 
> Linux ядро - лучшая часть андроида

Не знаю даже, чем вызвано такое заявление. Я пользуюсь Android'ом, и я конечно знаю, что там внутре неонка^W линукс, но это никак не сказывается на моём опыте общения с андроидом как пользователя. То есть, мне как пользователю совершенно фиолетово, какое там ядро, хоть ntoskrnl.exe. А как программисту мне опять же фиолетово, потому что насколько я знаю, программирование под андроид -- это общение с джавовыми API, вне зависимости от выбранного мною языка программирования. Какая разница, какое там ядро прячется в глубине?


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено qwerty123 , 22-Сен-17 11:52 
>Какая разница, какое там ядро прячется в глубине?

Стоимость.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Ordu , 22-Сен-17 19:02 
>>Какая разница, какое там ядро прячется в глубине?
> Стоимость.

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


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Crazy Alex , 23-Сен-17 00:55 
Большая. Потому что "глубина" сказывается на качестве работы.

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено pavlinux , 25-Сен-17 03:00 
> А как программисту мне опять же фиолетово, потому что насколько я знаю,
> программирование под андроид -- это общение с джавовыми API, вне зависимости
> от выбранного мною языка программирования. Какая разница, какое там ядро прячется
> в глубине?

Открой для себя Android NDK и прелести писанины на C/Asm под ARM/Linux

https://github.com/googlesamples/android-ndk/blob/master/nat...


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Ordu , 25-Сен-17 07:57 
>> А как программисту мне опять же фиолетово, потому что насколько я знаю,
>> программирование под андроид -- это общение с джавовыми API, вне зависимости
>> от выбранного мною языка программирования. Какая разница, какое там ядро прячется
>> в глубине?
> Открой для себя Android NDK и прелести писанины на C/Asm под ARM/Linux
> https://github.com/googlesamples/android-ndk/blob/master/nat...

Это бинды к жаба-коду, то есть способ запуска жабы из "нативного" кода. Вот уж удовольствие, писать на asm'е, чтобы вызывая любую апишную функцию, заниматься конвертацией каждого int'а в аргументах в жабовский формат, а потом дёргать jvm.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено pavlinux , 26-Сен-17 05:11 
>>> А как программисту мне опять же фиолетово
>> Открой для себя Android NDK
> Это бинды

Это примеры. Под андроед-ядро можно прекрасно писать на Ц/Ц++ и грузить свой бинарь/либу


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Ordu , 26-Сен-17 11:02 
>>>> А как программисту мне опять же фиолетово
>>> Открой для себя Android NDK
>> Это бинды
> Это примеры. Под андроед-ядро можно прекрасно писать на Ц/Ц++ и грузить свой
> бинарь/либу

Ну и? Допустим, что в андроеде сменилось ядро, как это отразится на написании этого кода?


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Пох , 20-Сен-17 09:57 
Дайте угадаю, будет как с ZFS. Cначала кpасноглазыe шипели и хвалились бтрфс, а потом дружненько перешли на ненавистную им ZFS. Да еще и зрадник красношапка положил болт на их любовь.

В ближайшее время ждем новостей в стиле "линукс только выиграл от перехода на clang. gcc не нужен."


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Антон Семенович Шпак , 20-Сен-17 10:17 
> Дайте угадаю, будет как с ZFS. Cначала кpасноглазыe шипели и хвалились бтрфс,
> а потом дружненько перешли на ненавистную им ZFS.

Вы говорите с голосами в своей голове


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено нах , 20-Сен-17 11:08 
> Дайте угадаю, будет как с ZFS.

но смисел?

> Дайте угадаю, будет как с ZFS. Cначала кpасноглазыe шипели и хвалились бтрфс,
> а потом дружненько перешли на ненавистную им ZFS.

хто, хто все ети льюди? Куда и когда они перешли?
редхат покупает пилильщиков тру олдскульных линуксных решений - и именно их пихает в свои рекомендации. Вечно жить с lvm, xfs и ext4 (которую редхат, кстати, почему-то не очень любит - видимо, потому что ее любит гугль),приделывая к ним дедап, сжатие и т д (а шифрование уже есть).


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 20-Сен-17 17:47 
> будет как с ZFS

А что с ним?

> а потом дружненько перешли на ненавистную им ZFS

Кто там перешёл? 1% серверов, хостерами которых являются энтузиасты? Ну да, ну да.

> Да еще и зрадник красношапка положил болт на их любовь.

Красношапка компашка похуже M$.

> линукс только выиграл от перехода на clang

Линус покажет известный жест шлангу и всё останется по старому.


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 20-Сен-17 19:48 
от бтрфс отказались только красношляпники, да и те только из-за NIH. Причем в пользу не ZFS, а какой-то своей хипстерской приблуды на Rust. Основные разработчики бтра (сусе, фейсбук и т.д.) продолжают его пилить.

"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Andrey Mitrofanov , 21-Сен-17 09:37 
> В ближайшее время ждем новостей в стиле "линукс только выиграл от перехода
> на clang. gcc не нужен."

тогда уж "торвальдс-ФоКо перешёл на цланг -- РХЕЛ переходит на Hurd"?

--нужно больше голосов в голове!


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено Аноним , 20-Сен-17 11:07 
>рассказали об инициативе переноса в основное ядро оставшихся патчей от заброшенного последние несколько лет проекта LLVMLinux

Как там поживает средний палец Торвальдса? ;)


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено pavlinux , 25-Сен-17 05:03 
> git clone https://chromium.googlesource.com/chromium/src/tools/clang

Шо, гугла свои трояны теперь прям в шланг пихает?


"Обеспечена возможность сборки ядер Linux 4.4 и 4.9 при помощ..."
Отправлено pavlinux , 25-Сен-17 05:35 
.