[PATCH] prevent retries on fclose/fflush after write errors

u-uclibc-qs50 at aetey.se u-uclibc-qs50 at aetey.se
Tue Mar 13 16:06:35 UTC 2012


Hi Rich,

On Tue, Mar 13, 2012 at 10:36:48AM -0400, Rich Felker wrote:
> > > On Tue, Mar 13, 2012 at 01:41:01AM -0400, Mike Frysinger wrote:
> > > > >  	int __filedes;
> > > > > +	int __errno_value;

> > You are right Rich but it seems you are thinking of API while this change
> > breaks ABI.
> 
> If it does, I still don't see how it could. Applications cannot
> declare objects of type FILE, only FILE *. Short of some macros that
> poke at the early members of the structure (getc/putc macros), it's

Applications actually can declare, allocate, copy FILE objects
unless explicitely prohibited by the specification - does it
prohibit this? All I found is a mention that a copy of a FILE object
is unusable at a different address than the original
(http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf page 266
last paragraph).

I can not think of an apparent meaningful reason for copying FILE or
using sizeof(FILE) but this by itself doesn't mean there isn't any.

(sorry for a phrase with three negations...)

That's why I assume that the FILE structure as a whole is a part of the
ABI, despite being opaque.

I may be wrong reading/interpreting specification(s), then please
correct me.

The actual change being discussed may be compatible in practice,
I take your word for this!

> Rich

Regards,
Rune



More information about the uClibc mailing list