A recent MinGW runtime changed its definition of alloca from an inline function to a macro. As result, there's a warning when compiling Gnulib's malloca.c:
CC malloca.o In file included from malloca.h:21, from malloca.c:22: ./alloca.h:46: warning: "alloca" redefined 46 | # define alloca __builtin_alloca | In file included from ./alloca.h:44, from malloca.h:21, from malloca.c:22: d:\usr\include\alloca.h:81: note: this is the location of the previous definition 81 | #define alloca( __request ) __builtin_alloca( __request ) | Proposed patch is below. Thanks. --- alloca.h~0 2020-06-29 18:22:39.421875000 +0300 +++ alloca.h 2020-06-29 19:21:42.468750000 +0300 @@ -36,10 +36,16 @@ */ #ifndef alloca +/* Some version of mingw have an <alloca.h> that causes trouble when + included after 'alloca' gets defined as a macro. As a workaround, + include this <alloca.h> first and define 'alloca' as a macro + afterwards if needed. */ +# if (defined __GNUC__ && defined _WIN32 && ! defined __CYGWIN__) && 1 +# include_next <alloca.h> +# endif +#endif +#ifndef alloca # ifdef __GNUC__ - /* Some version of mingw have an <alloca.h> that causes trouble when - included after 'alloca' gets defined as a macro. As a workaround, include - this <alloca.h> first and define 'alloca' as a macro afterwards. */ # if (defined _WIN32 && ! defined __CYGWIN__) && 1 # include_next <alloca.h> # endif