Re: [hatari-devel] Fwrite warnings

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Hi,

Thank you for fixing this. There is a different kind of warning (not new),
which I doubt should be on warning level:

WARN : No GEMDOS dir '/home/us/TT/F/C/LOCAL/INCLUDE/OTHER'
WARN : No GEMDOS dir '/home/us/TT/F/C/LOCAL/INCLUDE/other'

IMO it is normal that Pure C (or other compilers) try to access
non-existing folders while searching for files on the include path. From
that perspective debug or trace level would probably be more adequate.

Best regards

Uwe

> Hi,
> 
> On 27.10.2022 10.08, Uwe Seimet wrote:
> > Yes, that fixed has helped. All warnings are gone.
> 
> Thanks, I pushed slightly updated version of it.
> 
> Before next release this message can be downgraded to DEBUG log level, 
> but for now I want to keep it at WARN log level to catch potential 
> further issues with it.
> 
> 
> > In general it might be a good idea to suppress consecutive duplicate
> > warnings but just to display them once with a count, e.g.
> > 
> > WARN : GEMDOS Fwrite() to 'ROOT.O' file, opened as read-only (3 times)
> 
> I have patches out on the mailing list to do that for trace output, but 
> I could extend it to cover also log messages.
> 
> Because suppression logic adds some overhead and can delay output of the 
> identical messages a lot, it's behind a new "--repeat-limit" Hatari 
> debug option.
> 
> 
> 	- Eero
> 
> > instead of
> > 
> > WARN : GEMDOS Fwrite() to 'ROOT.O' file, opened as read-only
> > WARN : GEMDOS Fwrite() to 'ROOT.O' file, opened as read-only
> > WARN : GEMDOS Fwrite() to 'ROOT.O' file, opened as read-only
> > 
> > Best regards
> > 
> > Uwe
> > 
> >> Hi Uwe,
> >>
> >> On 27.10.2022 0.39, Eero Tamminen wrote:
> >>> On 26.10.2022 15.16, Uwe Seimet wrote:
> >>>>> with the latest sources I get tons of warnings when, for instance, I
> >>>>> compile
> >>>>> with Pure C. I have never seen these warnings before.
> >>>>>
> >>>>> WARN : GEMDOS Fwrite() to 'ROOT.O' file, opened as read-only
> >>>
> >>> This is from following commit:
> >>> https://git.tuxfamily.org/hatari/hatari.git/commit/?id=799020b84d0224a4bb38f2b892a8ecdd1c11bcc1
> >>>
> >>>
> >>>>> Is this a bug or can these warnings be switched off? There are so
> >>>>> many of
> >>>>> them that it's hard to see the actually relevant messages.
> >>>   >
> >>>   > I just noticed that I also get these warnings
> >>>   > for files definitely opened for writing, i.e.
> >>>   > opened with fopen(FILENAME, "w") with Pure C.
> >>>
> >>> Can you provide GEMDOS trace around that warning?
> >>
> >> Only case where I can see this happening:
> >> * Fwrite() done for a FD from Fcreate(), not Fopen(), and
> >> * That FD number being reused from an earlier, already Fclose()d,
> >> read-only Fopen() call
> >>
> >>
> >> Attached patch should fix that.  Does it help?
> >>
> >>
> >> 	- Eero
> > 
> >> diff --git a/src/gemdos.c b/src/gemdos.c
> >> index 1c3e4010..5067ac54 100644
> >> --- a/src/gemdos.c
> >> +++ b/src/gemdos.c
> >> @@ -896,6 +896,8 @@ static void restore_file_handle_info(int i, FILE_HANDLE *handle)
> >>   		fclose(fp);
> >>   		return;
> >>   	}
> >> +	/* used only for warnings, ignore those after restore */
> >> +	handle->bReadOnly = false;
> >>   	handle->FileHandle = fp;
> >>   }
> >>   
> >> @@ -2021,8 +2023,11 @@ static bool GemDOS_Create(uint32_t Params)
> >>   		 * - GEMDOS_FILE_ATTRIB_WRITECLOSE   (FA_ARCHIVE)
> >>   		 *   (set automatically by GemDOS >= 0.15)
> >>   		 */
> >> +		FileHandles[Index].bReadOnly = false;
> >>   		if (Mode & GEMDOS_FILE_ATTRIB_READONLY)
> >>   		{
> >> +			/* enable write warnings */
> >> +			FileHandles[Index].bReadOnly = true;
> >>   			/* after closing, file should be read-only */
> >>   			if (chmod(szActualFileName, S_IRUSR|S_IRGRP|S_IROTH))
> >>   			{
> >> @@ -3883,8 +3888,9 @@ void GemDOS_Info(FILE *fp, uint32_t bShowOpcodes)
> >>   	{
> >>   		if (!FileHandles[i].bUsed)
> >>   			continue;
> >> -		fprintf(fp, "- %d (0x%x): %s\n", i + BASE_FILEHANDLE,
> >> -			FileHandles[i].Basepage, FileHandles[i].szActualName);
> >> +		fprintf(fp, "- %d (0x%x): %s (%s)\n", i + BASE_FILEHANDLE,
> >> +			FileHandles[i].Basepage, FileHandles[i].szActualName,
> >> +			FileHandles[i].bReadOnly ? "ro" : "rw");
> >>   		used++;
> >>   	}
> >>   	if (!used)
> > 
> > 
> > 
> 
> 



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/