gspawn: Declare environ

Function do_posix_spawn uses environ, but gspawn.c doesn't declare it.
Since there is no system header declaring this global variable, this
causes compilation error on FreeBSD.

Code added in this commit is copied from genviron.c.
This commit is contained in:
Ting-Wei Lan 2018-06-23 16:07:02 +08:00
parent 0f77dc847b
commit e14c853d9a

View File

@ -32,6 +32,10 @@
#include <dirent.h> #include <dirent.h>
#include <spawn.h> #include <spawn.h>
#ifdef HAVE_CRT_EXTERNS_H
#include <crt_externs.h> /* for _NSGetEnviron */
#endif
#ifdef HAVE_SYS_SELECT_H #ifdef HAVE_SYS_SELECT_H
#include <sys/select.h> #include <sys/select.h>
#endif /* HAVE_SYS_SELECT_H */ #endif /* HAVE_SYS_SELECT_H */
@ -71,6 +75,12 @@
#endif /* __GLIBC__ */ #endif /* __GLIBC__ */
#endif /* HAVE_POSIX_SPAWN */ #endif /* HAVE_POSIX_SPAWN */
#ifdef HAVE__NSGETENVIRON
#define environ (*_NSGetEnviron())
#else
extern char **environ;
#endif
/** /**
* SECTION:spawn * SECTION:spawn
* @Short_description: process launching * @Short_description: process launching