Add autoconf check to determine where environ should be declared.
git-svn-id: svn://svn.berlios.de/openocd/trunk@1610 b42882b7-edfa-0310-969c-e2dbd0fdcd60__archive__
parent
213368e21f
commit
7e50a39773
31
configure.in
31
configure.in
|
@ -784,6 +784,37 @@ AC_PROG_CC
|
||||||
AM_PROG_CC_C_O
|
AM_PROG_CC_C_O
|
||||||
AC_PROG_RANLIB
|
AC_PROG_RANLIB
|
||||||
|
|
||||||
|
# Look for environ alternatives. Possibility #1: is environ in unistd.h?
|
||||||
|
AC_MSG_CHECKING([for environ in unistd.h])
|
||||||
|
AC_COMPILE_IFELSE([
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#include <unistd.h>
|
||||||
|
int main(int argc, char **argv) { char **ep = environ; }
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
has_environ=yes
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
|
||||||
|
# Possibility #2: can environ be found in an available library?
|
||||||
|
AC_MSG_CHECKING([for extern environ])
|
||||||
|
AC_LINK_IFELSE([
|
||||||
|
extern char **environ;
|
||||||
|
int main(int argc, char **argv) { char **ep = environ; }
|
||||||
|
], [
|
||||||
|
AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
|
||||||
|
has_environ=yes
|
||||||
|
], [
|
||||||
|
has_environ=no
|
||||||
|
])
|
||||||
|
AC_MSG_RESULT([${has_environ}])
|
||||||
|
])
|
||||||
|
|
||||||
|
if test "${has_environ}" != "yes" ; then
|
||||||
|
AC_MSG_FAILURE([Could find 'environ' in unistd.h or available libraries.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# set default gcc warnings
|
# set default gcc warnings
|
||||||
GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security"
|
GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security"
|
||||||
if test "${gcc_wextra}" = yes; then
|
if test "${gcc_wextra}" = yes; then
|
||||||
|
|
|
@ -11984,7 +11984,7 @@ static int Jim_EnvCoreCommand(Jim_Interp *interp, int argc,
|
||||||
|
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
|
|
||||||
#if !defined(HAVE_UNISTD_H) || !defined(__GNU_LIBRARY__)
|
#ifdef NEED_ENVIRON_EXTERN
|
||||||
extern char **environ;
|
extern char **environ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue