This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fox a MinGW warning in libiberty/setenv.c
- From: Eli Zaretskii <eliz at gnu dot org>
- To: gdb-patches at sourceware dot org, dj at redhat dot com, gcc-patches at gcc dot gnu dot org
- Date: Wed, 13 Mar 2013 20:30:21 +0200
- Subject: Fox a MinGW warning in libiberty/setenv.c
- Reply-to: Eli Zaretskii <eliz at gnu dot org>
I get this compiling the latest pretest of GDB 7.6 with MinGW:
gcc -c -DHAVE_CONFIG_H -O2 -gdwarf-2 -g3 -D__USE_MINGW_ACCESS -I. -I./../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic ./setenv.c -o setenv.o
./setenv.c:66:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
This happens because MinGW's stdlib.h has this:
#ifdef __MSVCRT__
extern _CRTIMP char *** __cdecl __MINGW_NOTHROW __p__environ(void);
extern _CRTIMP wchar_t *** __cdecl __MINGW_NOTHROW __p__wenviron(void);
# define _environ (*__p__environ())
# define _wenviron (*__p__wenviron())
#else /* ! __MSVCRT__ */
#endif /* ! __MSVCRT__ */
#define environ _environ
and setenv.c does this:
#ifndef HAVE_ENVIRON_DECL
extern char **environ;
#endif
Solution: Add a guard:
--- libiberty/setenv.c~ 2011-02-03 09:23:59.000000000 +0200
+++ libiberty/setenv.c 2013-03-13 13:22:49.085187200 +0200
@@ -63,8 +63,10 @@
#define __environ environ
#ifndef HAVE_ENVIRON_DECL
+#ifndef environ
extern char **environ;
#endif
+#endif
OK to commit (with a suitable ChangeLog entry)?