[fpc-pascal] Compiling for SPARC

Jonas Maebe jonas.maebe at elis.ugent.be
Mon Aug 14 15:33:41 CEST 2006


On 14 aug 2006, at 15:19, Mark Morgan Lloyd wrote:

>> This fails when the longest filename is around 119 characters, but  
>> is OK
>> when it is a couple of characters shorter.
>
>> As an experiment, I'm going to leave the actual directory the same  
>> length but
>> see if setting up a short symlink to it works.
>
> Didn't help, make immediately expanded it to the full path.

Actually, I was wrong earlier on when I said it would always add 3  
file names. It does this:

  function GetNextFiles(const maxCmdLength : AInt; var item :  
TStringListItem) : string;
     begin
       result := '';
       while (assigned(item) and ((length(result) + length(item.str)  
+ 1) < maxCmdLength)) do begin
         result := result + ' ' + item.str;
         item := TStringListItem(item.next);
       end;
     end;

...

       repeat
         Replace(nextcmd,'$FILES',GetNextFiles(240 - length(nextcmd)  
+ 6 - length(binstr) - 1, current));
         success:=DoExec(binstr,nextcmd,false,true);
         nextcmd := cmdstr;
       until (not assigned(current)) or (not success);


I'm not sure where exactly 119 fits in here, unless length(binstr)  
(full path to your copy of ar) around 120 chars or so.

And it's clear that if not a single file name fits in this string,  
this is going to produce an endless loop of empty "ar" invocations  
(as you experienced)...


Jonas




More information about the fpc-pascal mailing list