mirror of
https://github.com/moparisthebest/socat
synced 2024-12-21 06:28:48 -05:00
environ variable from C runtime is not declared on all systems
This commit is contained in:
parent
f749f5c3e4
commit
f0abfc19fd
4
compat.h
4
compat.h
@ -5,6 +5,10 @@
|
||||
#ifndef __compat_h_included
|
||||
#define __compat_h_included 1
|
||||
|
||||
#if !HAVE_DECL_ENVIRON && HAVE_VAR_ENVIRON
|
||||
extern char **environ;
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
/* I dont like this system dependent part, but it would be quite a challenge
|
||||
for configure */
|
||||
|
@ -53,6 +53,13 @@
|
||||
/* Define if you have the putenv function. */
|
||||
#undef HAVE_PUTENV
|
||||
|
||||
/* Define if your cc provides char **environ declaration.
|
||||
This implies HAVE_VAR_ENVIRON */
|
||||
#undef HAVE_DECL_ENVIRON
|
||||
|
||||
/* Define if you have the char **environ variable */
|
||||
#undef HAVE_VAR_ENVIRON
|
||||
|
||||
/* Define if you have the select function. */
|
||||
#undef HAVE_SELECT
|
||||
|
||||
|
23
configure.in
23
configure.in
@ -1899,6 +1899,29 @@ if test -n "$WITH_FIPS"; then
|
||||
fi
|
||||
AC_SUBST(FIPSLD_CC)
|
||||
|
||||
# autoconf does not seem to provide AC_CHECK_VAR or so
|
||||
# thus we have to check by foot
|
||||
AC_MSG_CHECKING(for declaration of environ)
|
||||
AC_CACHE_VAL(sc_cv_decl_environ,
|
||||
[AC_TRY_COMPILE([#include <unistd.h>],[char **s = environ;],
|
||||
[sc_cv_decl_environ=yes],
|
||||
[sc_cv_decl_environ=no])])
|
||||
if test $sc_cv_decl_environ = yes; then
|
||||
AC_DEFINE(HAVE_DECL_ENVIRON)
|
||||
fi
|
||||
AC_MSG_RESULT($sc_cv_decl_environ)
|
||||
|
||||
# on some systems environ exists but not the declaration
|
||||
AC_MSG_CHECKING(for var environ)
|
||||
AC_CACHE_VAL(sc_cv_var_environ,
|
||||
[AC_TRY_COMPILE([],[extern char **environ; char **s = environ;],
|
||||
[sc_cv_var_environ=yes],
|
||||
[sc_cv_var_environ=no])])
|
||||
if test $sc_cv_var_environ = yes; then
|
||||
AC_DEFINE(HAVE_VAR_ENVIRON)
|
||||
fi
|
||||
AC_MSG_RESULT($sc_cv_var_environ)
|
||||
|
||||
# allow BUILD_DATE to be externally set for build reproducibility
|
||||
if test "$BUILD_DATE"; then
|
||||
AC_DEFINE_UNQUOTED(BUILD_DATE, ["$BUILD_DATE"])
|
||||
|
@ -1155,6 +1155,7 @@ static int openssl_delete_cert_info(void) {
|
||||
for (i = 0; i < l; ++i) envprefix[i] = toupper(envprefix[i]);
|
||||
strncat(envprefix+l, "_OPENSSL_", XIO_ENVNAMELEN-l-1);
|
||||
|
||||
#if HAVE_VAR_ENVIRON
|
||||
entry = (const char **)environ;
|
||||
while (*entry != NULL) {
|
||||
if (!strncmp(*entry, envprefix, strlen(envprefix))) {
|
||||
@ -1166,6 +1167,7 @@ static int openssl_delete_cert_info(void) {
|
||||
++entry;
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_VAR_ENVIRON */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user