diff options
-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 |