Fix a compile failure introduced by r82675 on MinGW which doesn't have
authorJeffrey Yasskin <jyasskin@google.com>
Fri, 25 Sep 2009 21:07:20 +0000 (21:07 +0000)
committerJeffrey Yasskin <jyasskin@google.com>
Fri, 25 Sep 2009 21:07:20 +0000 (21:07 +0000)
setenv().  This patch just disables the test rather than getting putenv() to
work.  Thanks to Sandeep Patel for reporting the problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82797 91177308-0d34-0410-b5e6-96231b3b80d8

autoconf/configure.ac
cmake/config-ix.cmake
configure
include/llvm/Config/config.h.cmake
include/llvm/Config/config.h.in
unittests/Support/CommandLineTest.cpp

index ff18d69b88d35ea719edbc681bc9b969478a4ef0..7d75eb28d3720e81a2aa54dbc20992109e2b8593 100644 (file)
@@ -1080,7 +1080,7 @@ AC_CHECK_FUNCS([powf fmodf strtof round ])
 AC_CHECK_FUNCS([getpagesize getrusage getrlimit setrlimit gettimeofday ])
 AC_CHECK_FUNCS([isatty mkdtemp mkstemp ])
 AC_CHECK_FUNCS([mktemp realpath sbrk setrlimit strdup ])
-AC_CHECK_FUNCS([strerror strerror_r strerror_s ])
+AC_CHECK_FUNCS([strerror strerror_r strerror_s setenv ])
 AC_CHECK_FUNCS([strtoll strtoq sysconf malloc_zone_statistics ])
 AC_CHECK_FUNCS([setjmp longjmp sigsetjmp siglongjmp])
 AC_C_PRINTF_A
index 5b63778e8ada5d02fed3df397158bd38ad427675..a33e5d9de43b43499848582563e8125957cbfbcc 100755 (executable)
@@ -71,6 +71,7 @@ check_symbol_exists(strtoll stdlib.h HAVE_STRTOLL)
 check_symbol_exists(strerror string.h HAVE_STRERROR)
 check_symbol_exists(strerror_r string.h HAVE_STRERROR_R)
 check_symbol_exists(strerror_s string.h HAVE_STRERROR_S)
+check_symbol_exists(setenv stdlib.h HAVE_SETENV)
 
 check_symbol_exists(__GLIBC__ stdio.h LLVM_USING_GLIBC)
 if( LLVM_USING_GLIBC )
index 28a3cfe9f3b66a15a2abac0e50b26ae35a0c1e75..9954f943333b68f0fdf547dcc1cd44aea890ea59 100755 (executable)
--- a/configure
+++ b/configure
@@ -32291,7 +32291,8 @@ done
 
 
 
-for ac_func in strerror strerror_r strerror_s
+
+for ac_func in strerror strerror_r strerror_s setenv
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 { echo "$as_me:$LINENO: checking for $ac_func" >&5
index 360ca5d9c1fbaf358cd0ce95beb9f47c97b9017c..d8de146c8c20a13d6270dc55b0529d51e450082e 100644 (file)
 /* Define to 1 if you have the `sbrk' function. */
 #undef HAVE_SBRK
 
+/* Define to 1 if you have the `setenv' function. */
+#cmakedefine HAVE_SETENV ${HAVE_SETENV}
+
 /* Define to 1 if you have the `setjmp' function. */
 #undef HAVE_SETJMP
 
index f32f4038ffaea3e1c2e589a956ae65593c38907c..5257df97b2b354bcba5eb71af294e464696c4be2 100644 (file)
 /* Define to 1 if you have the `sbrk' function. */
 #undef HAVE_SBRK
 
+/* Define to 1 if you have the `setenv' function. */
+#undef HAVE_SETENV
+
 /* Define to 1 if you have the `setjmp' function. */
 #undef HAVE_SETJMP
 
index 70d6950f8b09922a04aea49249fee4def57c768f..72fa24a5ac0cd921a4153a8cf9ce632b4a6479d1 100644 (file)
@@ -8,6 +8,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Config/config.h"
 
 #include "gtest/gtest.h"
 
@@ -24,17 +25,26 @@ class TempEnvVar {
       : name(name) {
     const char *old_value = getenv(name);
     EXPECT_EQ(NULL, old_value) << old_value;
+#if HAVE_SETENV
     setenv(name, value, true);
+#else
+#   define SKIP_ENVIRONMENT_TESTS
+#endif
   }
 
   ~TempEnvVar() {
+#if HAVE_SETENV
+    // Assume setenv and unsetenv come together.
     unsetenv(name);
+#endif
   }
 
  private:
   const char *const name;
 };
 
+#ifndef SKIP_ENVIRONMENT_TESTS
+
 const char test_env_var[] = "LLVM_TEST_COMMAND_LINE_FLAGS";
 
 cl::opt<std::string> EnvironmentTestOption("env-test-opt");
@@ -45,4 +55,6 @@ TEST(CommandLineTest, ParseEnvironment) {
   EXPECT_EQ("hello", EnvironmentTestOption);
 }
 
+#endif  // SKIP_ENVIRONMENT_TESTS
+
 }  // anonymous namespace