
Dear Mike Frysinger,
In message 201006192158.42049.vapier@gentoo.org you wrote:
On Saturday, June 19, 2010 20:20:33 y@denx.de wrote:
Commit 37566090 "compiler.h: unify system ifdef cruft here" added both a "#include <errno.h>" and a "extern int errno;" to include/compiler.h
it isnt new code, it sucked the definitions out of random files that had these and into one place
Yes, I know. I didn't want to blame you, I just wanted to point out where it's coming from.
In file included from /home/wd/git/u-boot/work/lib/crc32.c:15: include/compiler.h:28: warning: function declaration isn't a prototype
never seen that, but i imagine re-ordering the lines might address it as well (extern then include)
The declaration of "errno" should be redundant, as <errno.h> is supposed to provide a correct declaration, so drop it.
there are older systems where this isnt true, but ive never used one myself> and if we dont care about them (i dont), then this is fine
Well, the man page says:
errno is defined by the ISO C standard to be a modifiable lvalue of type int, and must not be explicitly declared; errno may be a macro. errno is thread-local; setting it in one thread does not affect its value in any other thread.
The "must not be explicitly declared" (because it "may be a macro") is pretty clear, it seems.
Thanks for commenting, I'll apply it then.
Best regards,
Wolfgang Denk