POSIX says that the global variable environ shouldn't be declared in a
header, and that you have to declare it yourself. MinGW declares it in
<stdlib.h> with some macrology that messes up our declarations. Visual
Studio doesn't warn (there are clues that it may also declare it, but if
so, apparently compatibly). Suppress our declarations, on MinGW only.
This clears the last warnings on CI's optional MinGW task, and hopefully
on build farm animal fairywren too.
Like
1319997d, no back-patch for now as it's not known to be breaking
anything, and my humble goal is just to keep the MinGW build clean going
forward.
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> (earlier version)
Discussion: https://postgr.es/m/CA%2BhUKGJLMh%2B6W5E4M_jSFb43gnrA_-Q6-%2BBf3HkBXyGfRFcBsQ%40mail.gmail.com
/* For debugging: display postmaster environment */
if (message_level_is_interesting(DEBUG3))
{
+#if !defined(WIN32) || defined(_MSC_VER)
extern char **environ;
+#endif
char **p;
StringInfoData si;
#include "utils/guc.h"
#include "utils/ps_status.h"
+#if !defined(WIN32) || defined(_MSC_VER)
extern char **environ;
+#endif
/* GUC variable */
bool update_process_title = DEFAULT_UPDATE_PROCESS_TITLE;
Datum
get_environ(PG_FUNCTION_ARGS)
{
+#if !defined(WIN32) || defined(_MSC_VER)
extern char **environ;
+#endif
int nvals = 0;
ArrayType *result;
Datum *env;