# HG changeset patch # User Bruno Haible # Date 1292778483 -3600 # Node ID 4ca29955b6573764c3c4ecf15f6c66bd2a48790b # Parent 438ac293c649f873a1f94c1beea8e2f78f1b72aa setenv: Add missing declaration on OSF/1 5.1. * lib/stdlib.in.h (setenv): Test HAVE_DECL_SETENV, not HAVE_SETENV. * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Test whether setenv is declared. Don't set HAVE_SETENV. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_SETENV, not HAVE_SETENV. * modules/stdlib (Makefile.am): Substitute HAVE_DECL_SETENV, not HAVE_SETENV. * doc/posix-functions/setenv.texi: Mention the OSF/1 5.1 problem. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2010-12-19 Bruno Haible + + setenv: Add missing declaration on OSF/1 5.1. + * lib/stdlib.in.h (setenv): Test HAVE_DECL_SETENV, not HAVE_SETENV. + * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Test whether setenv is + declared. Don't set HAVE_SETENV. + * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_SETENV, + not HAVE_SETENV. + * modules/stdlib (Makefile.am): Substitute HAVE_DECL_SETENV, not + HAVE_SETENV. + * doc/posix-functions/setenv.texi: Mention the OSF/1 5.1 problem. + 2010-12-19 Bruno Haible nl_langinfo tests: Avoid gcc warning. diff --git a/doc/posix-functions/setenv.texi b/doc/posix-functions/setenv.texi --- a/doc/posix-functions/setenv.texi +++ b/doc/posix-functions/setenv.texi @@ -12,6 +12,9 @@ This function is missing on some platforms: AIX 4.3.2, HP-UX 11.23, IRIX 6.5, Solaris 9, mingw, BeOS. @item +This function is not declared on some platforms: +OSF/1 5.1. +@item On some platforms, this function does not fail with @samp{EINVAL} when passed an empty string or a string containing @samp{=}: MacOS X 10.5, FreeBSD 6.0, NetBSD 1.6, OpenBSD 3.8, Cygwin 1.5.x. diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h --- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h @@ -584,7 +584,7 @@ _GL_CXXALIAS_RPL (setenv, int, (const char *name, const char *value, int replace)); # else -# if !@HAVE_SETENV@ +# if !@HAVE_DECL_SETENV@ _GL_FUNCDECL_SYS (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); @@ -592,7 +592,9 @@ _GL_CXXALIAS_SYS (setenv, int, (const char *name, const char *value, int replace)); # endif +# if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@) _GL_CXXALIASWARN (setenv); +# endif #elif defined GNULIB_POSIXCHECK # undef setenv # if HAVE_RAW_DECL_SETENV diff --git a/m4/setenv.m4 b/m4/setenv.m4 --- a/m4/setenv.m4 +++ b/m4/setenv.m4 @@ -16,10 +16,12 @@ AC_DEFUN([gl_FUNC_SETENV_SEPARATE], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + AC_CHECK_DECLS_ONCE([setenv]) + if test $ac_cv_have_decl_setenv = no; then + HAVE_DECL_SETENV=0 + fi AC_CHECK_FUNCS_ONCE([setenv]) - if test $ac_cv_func_setenv = no; then - HAVE_SETENV=0 - else + if test $ac_cv_func_setenv = yes; then AC_CACHE_CHECK([whether setenv validates arguments], [gl_cv_func_setenv_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4 --- a/m4/stdlib_h.m4 +++ b/m4/stdlib_h.m4 @@ -1,4 +1,4 @@ -# stdlib_h.m4 serial 31 +# stdlib_h.m4 serial 32 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -92,7 +92,7 @@ HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH]) - HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) + HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV]) HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) diff --git a/modules/stdlib b/modules/stdlib --- a/modules/stdlib +++ b/modules/stdlib @@ -71,7 +71,7 @@ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ - -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \ + -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \