Blame m4/putenv.m4

Packit 33f14e
# putenv.m4 serial 20
Packit 33f14e
dnl Copyright (C) 2002-2017 Free Software Foundation, Inc.
Packit 33f14e
dnl This file is free software; the Free Software Foundation
Packit 33f14e
dnl gives unlimited permission to copy and/or distribute it,
Packit 33f14e
dnl with or without modifications, as long as this notice is preserved.
Packit 33f14e
Packit 33f14e
dnl From Jim Meyering.
Packit 33f14e
dnl
Packit 33f14e
dnl Check whether putenv ("FOO") removes FOO from the environment.
Packit 33f14e
dnl The putenv in libc on at least SunOS 4.1.4 does *not* do that.
Packit 33f14e
Packit 33f14e
AC_DEFUN([gl_FUNC_PUTENV],
Packit 33f14e
[
Packit 33f14e
  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
Packit 33f14e
  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
Packit 33f14e
  AC_CACHE_CHECK([for putenv compatible with GNU and SVID],
Packit 33f14e
   [gl_cv_func_svid_putenv],
Packit 33f14e
   [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],[[
Packit 33f14e
    /* Put it in env.  */
Packit 33f14e
    if (putenv ("CONFTEST_putenv=val"))
Packit 33f14e
      return 1;
Packit 33f14e
Packit 33f14e
    /* Try to remove it.  */
Packit 33f14e
    if (putenv ("CONFTEST_putenv"))
Packit 33f14e
      return 2;
Packit 33f14e
Packit 33f14e
    /* Make sure it was deleted.  */
Packit 33f14e
    if (getenv ("CONFTEST_putenv") != 0)
Packit 33f14e
      return 3;
Packit 33f14e
Packit 33f14e
    return 0;
Packit 33f14e
              ]])],
Packit 33f14e
             gl_cv_func_svid_putenv=yes,
Packit 33f14e
             gl_cv_func_svid_putenv=no,
Packit 33f14e
             dnl When crosscompiling, assume putenv is broken.
Packit 33f14e
             [case "$host_os" in
Packit 33f14e
                        # Guess yes on glibc systems.
Packit 33f14e
                *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;;
Packit 33f14e
                        # If we don't know, assume the worst.
Packit 33f14e
                *)      gl_cv_func_svid_putenv="guessing no" ;;
Packit 33f14e
              esac
Packit 33f14e
             ])
Packit 33f14e
   ])
Packit 33f14e
  case "$gl_cv_func_svid_putenv" in
Packit 33f14e
    *yes) ;;
Packit 33f14e
    *)
Packit 33f14e
      REPLACE_PUTENV=1
Packit 33f14e
      ;;
Packit 33f14e
  esac
Packit 33f14e
])
Packit 33f14e
Packit 33f14e
# Prerequisites of lib/putenv.c.
Packit 33f14e
AC_DEFUN([gl_PREREQ_PUTENV],
Packit 33f14e
[
Packit 33f14e
  AC_CHECK_DECLS([_putenv])
Packit 33f14e
])