bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

setenv on OSF/1


From: Bruno Haible
Subject: setenv on OSF/1
Date: Sun, 19 Dec 2010 18:09:03 +0100
User-agent: KMail/1.9.9

On new verisons of OSF/1 5.1, setenv() is not declared by default. It's
only declared if _BSD is defined, but defining it has also some negative
consequences. Consequence: This error:

../gllib/stdlib.h:907: error: 'setenv' was not declared in this scope
../gllib/stdlib.h:907: error: invalid type in declaration before ';' token

This fixes it.


2010-12-19  Bruno Haible  <address@hidden>

        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.

--- doc/posix-functions/setenv.texi.orig        Sun Dec 19 17:36:35 2010
+++ doc/posix-functions/setenv.texi     Sun Dec 19 17:17:01 2010
@@ -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.
address@hidden
 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.
--- lib/stdlib.in.h.orig        Sun Dec 19 17:36:35 2010
+++ lib/stdlib.in.h     Sun Dec 19 17:33:18 2010
@@ -584,7 +584,7 @@
 _GL_CXXALIAS_RPL (setenv, int,
                   (const char *name, const char *value, int replace));
 # else
-#  if address@hidden@
+#  if address@hidden@
 _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@ && address@hidden@)
 _GL_CXXALIASWARN (setenv);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef setenv
 # if HAVE_RAW_DECL_SETENV
--- m4/setenv.m4.orig   Sun Dec 19 17:36:35 2010
+++ m4/setenv.m4        Sun Dec 19 17:18:52 2010
@@ -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([[
--- m4/stdlib_h.m4.orig Sun Dec 19 17:36:35 2010
+++ m4/stdlib_h.m4      Sun Dec 19 17:17:22 2010
@@ -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])
--- modules/stdlib.orig Sun Dec 19 17:36:35 2010
+++ modules/stdlib      Sun Dec 19 17:16:57 2010
@@ -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' \



reply via email to

[Prev in Thread] Current Thread [Next in Thread]