From 84fb6c9e25ba15319b817ecf2a46e2cb83d64d13 Mon Sep 17 00:00:00 2001 From: Manuel Novoa III Date: Mon, 19 Feb 2001 10:33:52 +0000 Subject: Make sure errno is 0 before we call main (may have been set while initializing). --- libc/misc/internals/__uClibc_main.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'libc/misc/internals/__uClibc_main.c') diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c index 088754ecc..827d82e5f 100644 --- a/libc/misc/internals/__uClibc_main.c +++ b/libc/misc/internals/__uClibc_main.c @@ -12,6 +12,7 @@ #include #include +#include /* * Prototypes. @@ -61,6 +62,13 @@ void __uClibc_main(int argc, char **argv, char **envp) */ __init_stdio(); + /* + * Note: It is possible that any initialization done above could + * have resulted in errno being set nonzero, so set it to 0 before + * we call main. + */ + errno = 0; + /* * Finally, invoke application's main and then exit. */ @@ -69,6 +77,8 @@ void __uClibc_main(int argc, char **argv, char **envp) /* * Declare the __environ global variable and create a weak alias environ. + * Note: Apparently we must initialize __environ for the weak environ + * symbol to be included. */ char **__environ = 0; -- cgit v1.2.3