Я так сильно ошибся что теперь не знаю что и делать.
Извините, если я выскажусь слишком резко, но на мой взгляд у Вас turbocat какой-то подростковый максимализм ...
TCC -это вполне хороший компилятор и он в духе KolibriOS, ибо
имеет размер сравнимый с FASM, но он и ассемблер (в стиле GNU), и компоновщик (linker), и компилятор
полноценного C,
и код выдаёт получше, чем тот, что при -O0. Если TCC считать игрушечным, то тогда можно и саму KolibriOS
считать игрушечной но тогдаь всё равно имеется адекватное соответствие между TCC и KolibriOS (:оба игрушечные).
(а
странный код выдаёт и clang при -Oz, поэтому и "прокатывает лозунг": "Операционная система, написанная на ассемблере" )
Другое дело, что
его не надо бы использовать в автосборке, ибо есть средства лучше . что автоматически
означает, что
C - код не должен быть специфическим для TCC, а ткже для MinGW, VisualC.
На мой взгляд, С - код
должен компилироваться OsDev кросскомпилятором без единого предупреждения.
Это обычный MinGW.
А вот с этим я Вас всех и поздравляю - MinGW является очень специфическим средством разработки
(поэтому в своё время отдельно отмечался как средство непригодное для OsDev,
но сейчас просто
строго рекомендуется gcc cross compiler, ибо для нужд дистрибутивов
gcc так кофигурируют,
что "
мама - не горюй", поэтому я и использую clang).
У меня даже
есть подозрения, что в ядре KolibriOS поддерживается COFF не полностью а в духе FASM/MinGW.
На мой взгляд,
TCC - это вообще не проблема ибо (из существенных ...) только Ваша, turbocat libc.obj собирается
при помощи TCC, но (я это дело пробовал) эта библиотека собирается и посредством kos32-gcc (и, если вписать на GNU asm, ту пару функций, что написаны на FASM) по прямой.
Поэтому, если отвечать на вопрос :"Что делать?", то надо просто
(1)
перевести всё, что сейчас в автосборке собирается посредством TCC,
на kos32-gcc,
(2) самым пристальным образом обратить внимание на OsDev кросс компилятор
(а вот это уже не просто, ибо похоже что у Вас всё сильно специфически "заточено под KolibriOS")
(3) в ядре требуется полноценная поддержка COFF (у меня есть подозрение, что тогда и SPE окажется не нужен)
однако по поводу COFF - это отдельный разговор, ибо COFF похоже безнадёжно устарел на i686.
Ещё раз повторяю: извините, если я выскался слишком резко ... Но и без резкой критики как-то не обойтись ...