[U-Boot] [PATCH] include/compiler.h: remove redunandt declaration of errno

From: Wolfgang Denk wd@denx.de
Commit 37566090 "compiler.h: unify system ifdef cruft here" added both a "#include <errno.h>" and a "extern int errno;" to include/compiler.h which is causing build warnings for some systems, for example for the "netstar" board:
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
The declaration of "errno" should be redundant, as <errno.h> is supposed to provide a correct declaration, so drop it.
Signed-off-by: Wolfgang Denk wd@denx.de Cc: Mike Frysinger vapier@gentoo.org --- include/compiler.h | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/include/compiler.h b/include/compiler.h index 8030bf6..23f4b83 100644 --- a/include/compiler.h +++ b/include/compiler.h @@ -25,8 +25,6 @@ #include <stdio.h> #include <string.h>
-extern int errno; - #if !defined(__WIN32__) && !defined(__MINGW32__) # include <sys/mman.h> #endif

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
which is causing build warnings for some systems, for example for the "netstar" board:
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 -mike

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
participants (3)
-
Mike Frysinger
-
Wolfgang Denk
-
y@denx.de