The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Представлен новый компактный компилятор 8cc"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Представлен новый компактный компилятор 8cc" +/
Сообщение от seyko2email (ok), 06-Мрт-15, 09:03 
>> Ядро 2.4.26 (минимальная конфигурация) собирает за 30 секунд.
> Собери ним x86_64-ядро, а потом приходи.

Вообще-то текущий tcc и x86 ядро 2.4.26 собирает только при наложении патча:
Patches are necessary for the following reasons:

- unsupported assembly directives: .rept, .endr, .subsection
- '#define __ASSEMBLY__' needed in assembly sources
- static variables cannot be seen from the inline assembly code
- typing/lvalue problems with '? :'
- no long long bit fields
- 'aligned' attribute not supported for whole structs, only for fields
- obscur preprocessor bug

Some of these problems could easily be fixed, but I am too lazy
now. It is sure that there are still many bugs in the kernel generated
by TinyCC/TCCBOOT, but at least it can boot and launch a shell.

tcc-0.9.23 собирал это ядро, потом его немного порушили и только сейчас tcc вновь может повторить этот подвиг. Возможно некоторые перечисленные выше проблемы в текушем tcc уже решены, но более интересно ядро 2.4.37. Для сборки 2.4.26 нужен gcc не моложе 2.95, более новые gcc с ним не справляются. А вот с ядром 2.4.37 уже можно использовать любые новые версии gcc (3.4.6, 4.1, ...). Так что допиливать tcc интересно именно для 2.4.37. Если получится, то можно будет попробовать его на версии 2.6.9. Ну и далее 2.6.18, 2.6.32, 3.10, ... А вообще-то и clang не очень-то справляется со сборкой ядра без патчей (по слухам)

Что касается x86_64, то у меня 2.6.18 в этом варианте не может работать с WiFI-сетью (в версии x86 всё нормально). Так что можно не заморачиваться с x86_64, пока tcc не научится собирать 2.6.32 И да, меня вполне устроит возможность собирать только x86. Ядро 2.6.9 достаточно быстро (в пределе получаса, но не за 10 секунд) собирается и gcc Ядро 2.6.32 у меня собирается в пределах часа, а вот для сброки 3.10 уже приходится ждать более 2 часов (конфиги от соответствующих ядер RHEL). Для окончательного варианта это не проблема. А вот в процессе разработки такая тягомотина достаёт. Возможность быстро пересобрать ядро в частности сильно бы помогла отладить систему "make menuconfig". Ибо сейчас так правят ядро, что собриается оно только при сильно ограниченных вариантах конфигурации. Шаг в сторону и тут же вылезают проблемы с зависимостями. А перебирать варианты и отлавливать проблемы, когда на одну итерацию нужно от получаса до 2 часов, не реально.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Представлен новый компактный компилятор 8cc, opennews, 01-Мрт-15, 20:11  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру