Опубликован выпуск инструментария GNU Mes 0.27, обеспечивающего процесс бутстрэппинга (bootstrap) для GCC и позволяющего добиться замкнутого цикла пересборки из исходных текстов. Инструментарий решает задачу верифицированной начальной сборки компилятора в дистрибутивах, разрывая цепочку цикличной пересборки (для сборки компилятора требуются исполняемые файлы уже собранного компилятора, а бинарные сборки компилятора являются потенциальным источником скрытых закладок, что не позволяет полностью гарантировать целостность сборок из эталонных исходных текстов)...Подробнее: https://www.opennet.me/opennews/art.shtml?num=61501
Интересно то, как они решают вопрос компиляции современных версий GCC старым компилятором. Неужели нужно будет повторять цикл компиляции нового GCC старым по несколько раз, чтобы избежать ошибок?
ну а как еще? вся цепочка бутстрапинга выглядит именно так: более слабый компилятор компилит компилятор понавороченнее, и вот так раз десять-двадцать. ЕМНИП hex0 компилит hex1, hex1 компилит hex2, hex2 компилит cc_x86, cc_x86 компилит M2-Planet, и далее по списку. Где-то в цепочке tinyCC компилит самого себя аж три или четыре раза. GCC тоже.
Емнип достаточно GCC 4.8 для сборки GCC 12. А уже потом GCC 12 пересобрать уже собранным GCC 12. Нафига пересобирать GCC 12 аж четыре раза я хз.
Чтобы не допустить ошибок, вызванных неопределённым поведением и поведением, определяемым реализацией. Разные версии компилятора могут по разному один и тот же код компилировать.
Ну не такуая уж и длинная цепочка будет. Как-то так:
2.95 -> 3.4(здесь обязательно включить сборку C++) -> 4.9 -> современная версия.
Если нужен gdc, то промежуточно ещё собрать GCC 11.
От вдумчивого чтения моск затрещал)) Но на самом деле все просто. Да и вариантов сделать иначе не особо. За Scheme +
Ага, только бы такое не от гну и был бы кошер. Доверия к ним у людей мало.
Вот, как раз, к ним доверия лично у меня больше, чем каким-либо другим.
У корпоративных обезьян, которые за спиной собратьям по стае кости перемывают и по интернетам свой карьеристский гадюкинг разносят за серебрянники и/или от недостатка ума.
У *людей* всё в порядке с доверием и к GNU, и к FSF, и лично к Столлману.
На самом деле Forth лучше подходит для данной цели.
Наверное, всё-таки, людей с Lisp-менталитетом найдётся больше, чем с Forth.
Чем?
Есть прожект live-bootstap [ https://github.com/fosslinux/live-bootstrap ] . Позволяет собрать систему из исходников с минимальным набором блобов.К сожалению батстрап процесс очень ресурсозатратный. Безрезультатно потратил весь день на сборку в два потка. Это еще без бутстрапа всяких Жав и Растов.
Хороший будет бутстрап, когда у вас в зависимостях Python :)
> Хороший будет бутстрап, когда у вас в зависимостях Python :)Ну, во-первых: есть тот же микропитон.
Во-вторых: к сожалению, не только лишь все, мало кто из анонимных оналитегов читает дальше заголовка - а зря:
(чуть ли не сразу после заголовка)
> Without using Python:
>
tcc всё же не так гибок, как pcc.. сделал закладку на проэкт.. может пригодится..
Если бы у меня было 9 жизней и бесконечное количество денег, то я бы тоже наверное занимался чем то таким.