F.2. Перед стартом

На верх  Назад  Вперёд

Для лёгкой компиляции компилятора лучше соблюдать следующую структура каталогов (базовый каталог /pp/src поддерживается, но может отличаться):

/pp/src/Makefile

/makefile.fpc

/rtl/linux

/inc

/i386

/…

/compiler

Если используется makefiles, то должно использоваться описанное выше дерево каталогов.

Исходные коды компилятора и rtl сжаты таким образом, что когда они распаковываются в тот же каталог (/pp/src в примере выше), то в результате получается описанное выше дерево каталогов.

Есть два способа приступить к компиляции компилятора и RTL. Оба способа должны использоваться в зависимости от ситуации. Обычно RTL должна компилироваться первой, перед компиляцией компилятора, после чего компилятор компилируется с использованием текущего компилятора. В некоторых особых случаях первым должен компилироваться компилятор, с заранее скомпилированной RTL.

Как решить, что следует компилировать в первую очередь? В общем случае ответ заключается в том, что сначала должна быть скомпилирована RTL. Из этого правила существует два исключения:

1.Первый случай – это когда некоторые внутренние подпрограммы в RTL изменились, или если новые подпрограммы добавились. Поскольку старый компилятор не знает об этих изменениях, он будет вызывать функции, которые основаны на старой RTL, и, следовательно, это не будет работать корректно. В результате компоновка не будет выполнена или бинарный файл приведёт к ошибке.

2.Второй случай – это когда что-то добавлено к RTL, о чём компилятору необходимо знать: например, новый механизм ассемблера по умолчанию.

Как узнать, что один из этих случаев произошёл? Нет других путей, кроме почтовой рассылки команды Free Pascal. Если компилятор не может быть перекомпилирован, когда компиляция RTL выполняется первой, то попробуйте другой способ.