diff options
Diffstat (limited to 'bootstrap')
-rwxr-xr-x | bootstrap | 58 |
1 files changed, 39 insertions, 19 deletions
@@ -311,6 +311,7 @@ CMAKE_CXX_SOURCES="\ cmFindProgramCommand \ cmForEachCommand \ cmFunctionCommand \ + cmFSPermissions \ cmGeneratedFileStream \ cmGeneratorExpression \ cmGeneratorExpressionContext \ @@ -417,6 +418,7 @@ CMAKE_CXX_SOURCES="\ cmTryRunCommand \ cmUnexpectedCommand \ cmUnsetCommand \ + cmUVHandlePtr \ cmVersion \ cmWhileCommand \ cmWorkingDirectory \ @@ -980,6 +982,11 @@ if [ -z "${CC}" -a -z "${CXX}" ]; then cmake_toolchain_detect fi +thread_flags='' +case "${cmake_system}" in + *AIX*) thread_flags='-pthread' ;; +esac + #----------------------------------------------------------------------------- # Test C compiler cmake_c_compiler= @@ -1000,6 +1007,10 @@ echo ' # error "The CMAKE_C_COMPILER is set to a C++ compiler" #endif +#if defined(_AIX) && defined(__GNUC__) && !defined(_THREAD_SAFE) +#error "On AIX with GNU we need the -pthread flag." +#endif + #if defined(__sun) && __STDC_VERSION__ < 199901L #error "On Solaris we need C99." #endif @@ -1013,16 +1024,18 @@ int main(int argc, char* argv[]) } ' > "${TMPFILE}.c" for std in 11 99 90; do - try_flags="`cmake_extract_standard_flags \"${cmake_toolchain}\" C \"${std}\"`" + std_flags="`cmake_extract_standard_flags \"${cmake_toolchain}\" C \"${std}\"`" for compiler in ${cmake_c_compilers}; do - for flag in '' $try_flags; do - echo "Checking whether '${compiler} ${cmake_c_flags} ${flag}' works." >> cmake_bootstrap.log 2>&1 - if cmake_try_run "${compiler}" "${cmake_c_flags} ${flag}" \ - "${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then - cmake_c_compiler="${compiler}" - cmake_c_flags="${cmake_c_flags} ${flag}" - break 3 - fi + for std_flag in '' $std_flags; do + for thread_flag in '' $thread_flags; do + echo "Checking whether '${compiler} ${cmake_c_flags} ${std_flag} ${thread_flag}' works." >> cmake_bootstrap.log 2>&1 + if cmake_try_run "${compiler}" "${cmake_c_flags} ${std_flag} ${thread_flag}" \ + "${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then + cmake_c_compiler="${compiler}" + cmake_c_flags="${cmake_c_flags} ${std_flag} ${thread_flag}" + break 3 + fi + done done done done @@ -1056,11 +1069,16 @@ TMPFILE=`cmake_tmp_file` echo ' #include <iostream> #include <memory> +#include <unordered_map> #if __cplusplus < 201103L #error "Compiler is not in a mode aware of C++11." #endif +#if defined(_AIX) && defined(__GNUC__) && !defined(_THREAD_SAFE) +#error "On AIX with GNU we need the -pthread flag." +#endif + #if defined(__SUNPRO_CC) && __SUNPRO_CC < 0x5140 #error "SunPro <= 5.13 mode not supported due to bug in move semantics." #endif @@ -1080,16 +1098,18 @@ int main() } ' > "${TMPFILE}.cxx" for std in 17 14 11; do - try_flags="`cmake_extract_standard_flags \"${cmake_toolchain}\" CXX \"${std}\"`" + std_flags="`cmake_extract_standard_flags \"${cmake_toolchain}\" CXX \"${std}\"`" for compiler in ${cmake_cxx_compilers}; do - for flag in '' $try_flags; do - echo "Checking whether '${compiler} ${cmake_cxx_flags} ${flag}' works." >> cmake_bootstrap.log 2>&1 - if cmake_try_run "${compiler}" "${cmake_cxx_flags} ${flag}" \ - "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then - cmake_cxx_compiler="${compiler}" - cmake_cxx_flags="${cmake_cxx_flags} ${flag} " - break 3 - fi + for std_flag in '' $std_flags; do + for thread_flag in '' $thread_flags; do + echo "Checking whether '${compiler} ${cmake_cxx_flags} ${std_flag} ${thread_flag}' works." >> cmake_bootstrap.log 2>&1 + if cmake_try_run "${compiler}" "${cmake_cxx_flags} ${std_flag} ${thread_flag}" \ + "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then + cmake_cxx_compiler="${compiler}" + cmake_cxx_flags="${cmake_cxx_flags} ${std_flag} ${thread_flag} " + break 3 + fi + done done done done @@ -1319,7 +1339,7 @@ else uv_c_flags="${uv_c_flags} -DCMAKE_BOOTSTRAP" case "${cmake_system}" in *AIX*) - uv_c_flags="${uv_c_flags} -D_ALL_SOURCE -D_XOPEN_SOURCE=500 -D_LINUX_SOURCE_COMPAT -D_THREAD_SAFE" + uv_c_flags="${uv_c_flags} -D_ALL_SOURCE -D_XOPEN_SOURCE=500 -D_LINUX_SOURCE_COMPAT" libs="${libs} -lperfstat" ;; *Darwin*) |