This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fox a MinGW warning in libiberty/setenv.c


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)?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]