Димыч, ElfLinker.odc не компилируется в сборке CPC Edition (Гельмута Цинна) — вываливается с ошибкой в строке:
## Код:
```
S.SetPos [ this variable (field) is read only ] (S.rider.Pos())
```
Это связано с тем, что параметр S процедуры ParseExt помечен модификатором IN. Лечение простое: меняем его на VAR.

Напомню суть проблемы. Она заключается в том, что параметр IN S может быть скрыто изменён внутри S.SetPos, где он помечен как VAR. ББ нестрого разрешает такой трюк, за что нужно бить по рукам.

Так что я бы всем авторам сборок посоветовал воспользоваться фиксом, который ловит данную проблему (которая обсуждалась ещё в рассылке OMinc, и было решено всем миром: фиксу — быть!), и если у кого линкер собрался, значит в вашей сборке фикс не установлен.

В CPC Edition эта ошибка обозначена так:

14. Report passing receiver parameters IN to VAR (Center #38)

P.S.Димыч, благодарю за модификацию линкера. Это давно пора было сделать. В собираемом бинарнике для Linux как-то скрыто решается проблема установки сигналов? Или это нужно делать явно? В исходнике Ofront'а для Linux для этого, например, есть специальный код:
## Код:
```
IMPORT
      SYSTEM, Unix, ... ;

   PROCEDURE -signal(sig: LONGINT; func: Unix.SignalHandler)
      "signal(sig, func)";

   PROCEDURE Trap(sig, code: LONGINT; scp: Unix.SigCtxPtr);
   BEGIN fin();
      IF sig = 3 THEN Unix.Exit(0)
      ELSE
         IF (sig = 4) & (halt() = -15) THEN OPM.LogWStr(" --- ofront: internal error");  OPM.LogWLn END ;
         Unix.Exit(2)
      END
   END Trap;

BEGIN
   signal(2, Trap);   (* interrupt *)
   signal(3, Trap);   (* quit *)
   signal(4, Trap);   (* illegal instruction, HALT *)
   ...
```
