diff options
author | Jeffrey Yasskin <jyasskin@google.com> | 2009-09-25 21:07:20 +0000 |
---|---|---|
committer | Jeffrey Yasskin <jyasskin@google.com> | 2009-09-25 21:07:20 +0000 |
commit | b7a8d400be7ce9e275c6e09a2a90fbacd0566476 (patch) | |
tree | e6672c6bfcfbd36acec8558a0dd83d5378e22474 | |
parent | 9d06175a15a61b977ebbabd0d9cc738ebfa7870c (diff) |
Fix a compile failure introduced by r82675 on MinGW which doesn't have
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
-rw-r--r-- | autoconf/configure.ac | 2 | ||||
-rwxr-xr-x | cmake/config-ix.cmake | 1 | ||||
-rwxr-xr-x | configure | 3 | ||||
-rw-r--r-- | include/llvm/Config/config.h.cmake | 3 | ||||
-rw-r--r-- | include/llvm/Config/config.h.in | 3 | ||||
-rw-r--r-- | unittests/Support/CommandLineTest.cpp | 12 |
6 files changed, 22 insertions, 2 deletions
diff --git a/autoconf/configure.ac b/autoconf/configure.ac index ff18d69b88..7d75eb28d3 100644 --- a/autoconf/configure.ac +++ b/autoconf/configure.ac @@ -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 diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index 5b63778e8a..a33e5d9de4 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -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 ) @@ -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 diff --git a/include/llvm/Config/config.h.cmake b/include/llvm/Config/config.h.cmake index 360ca5d9c1..d8de146c8c 100644 --- a/include/llvm/Config/config.h.cmake +++ b/include/llvm/Config/config.h.cmake @@ -291,6 +291,9 @@ /* 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 diff --git a/include/llvm/Config/config.h.in b/include/llvm/Config/config.h.in index f32f4038ff..5257df97b2 100644 --- a/include/llvm/Config/config.h.in +++ b/include/llvm/Config/config.h.in @@ -321,6 +321,9 @@ /* 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 diff --git a/unittests/Support/CommandLineTest.cpp b/unittests/Support/CommandLineTest.cpp index 70d6950f8b..72fa24a5ac 100644 --- a/unittests/Support/CommandLineTest.cpp +++ b/unittests/Support/CommandLineTest.cpp @@ -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 |