>> Ядро 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 часов, не реально.