[Coco] 248 errors in NitrOS-9 repository

Lothan lothan at newsguy.com
Sun Jul 21 17:11:25 EDT 2013


From: Robert Gault

> Well here is a clue.
> test disk kyumgai.dsk
>
> after compiling with many 248 errors:
>
> os9 free kyumgai.dsk
>
> "Kyum-Gai: To Be Ninja" created on 07/20/2013
> Capacity: 360KB (1440 sectors) 1-sector clusters
> 1130 Free sectors, largest block 1130 sectors
> Free space: 282KB (289280 bytes)
>
> from NitrOS-9 on kyumgai.dsk in drive0:
>
> free /d0
>
> "Kyum-Gai: To Be Ninja" created on: 2013/07/20
> Capacity: 1,440 sectors (1-sector clusters)
> 1,130 free sectors, largest block 932 sectors
>
> Note that while the total number of free sectors is reported the same, the 
> report for largest block count is different. I've checked the count myself 
> and 932 is correct. Os9.exe is miscalculating the largest free block.
> If os9.exe thinks a sector is free, tries a copy, and finds the sector 
> full, that might be the cause of the 248 error.

I recompiled os9.exe using  4.7.3 and this is what I'm getting now:

"Kyum-Gai: To Be Ninja" created on 07/21/2013
Capacity: 360KB (1440 sectors) 1-sector clusters
694 Free sectors, largest block 694 sectors
Free space: 173KB (177664 bytes)

I checked the make log after doing a full rebuild and the only 248 errors I 
am getting are in the Dragon disks. I haven't checked, but I suspect those 
Dragon disks are probably full.

Now to the real meat of the problem. When I tried to rebuild toolshed with 
gcc 4.7.3, it consistently failed on all references to _finddata_t and the 
Windows findfirst*/findnext* API. Apparently these Windows API functions 
have been replaced with POSIX versions of dirent and appropriate calls to 
opendir, readdir, etc.

To make a long story short, I went through the Toolshed code and effectively 
removed the WIN32 conditionals until Toolshed built without any errors. I 
also had to add appropriate casts on all the malloc, realloc, and calloc 
calls because the newer GCC is stricter regarding automatic type 
conversions. This means there is a lot less conditional code, which I think 
is a good thing.

Unfortunately, I don't have commit access to the Toolshed repository and I 
don't want to say this is the solution (use gcc 4.7 or else) without 
discussing it with Boisy first.




More information about the Coco mailing list