Ticket #41460: patch-configure.ac.diff

File patch-configure.ac.diff, 1.4 KB (added by ryandesign (Ryan Carsten Schmidt), 10 years ago)
  • configure.ac

    old new  
    2323AC_SUBST([ADDED_CXXFLAGS])
    2424
    2525# Extended initializer lists were added in 4.4.
     26# Clang fraudulently identifies itself as an old GCC.
    2627AC_MSG_CHECKING([if using a version of GCC older than 4.4])
    2728AC_PREPROC_IFELSE(
    2829  [AC_LANG_SOURCE([[
     30#ifndef __clang__
    2931#ifdef __GNUC__
    3032#if (__GNUC__ * 100 + __GNUC_MINOR__) < 404
    3133#FAIL
    3234#endif
    3335#endif
     36#endif
    3437  ]])],
    3538  [
    3639    AC_MSG_RESULT(no)
     
    107110  [
    108111    AC_MSG_RESULT(no)
    109112    AC_MSG_CHECKING([if it helps to add -std=gnu++0x to CXXFLAGS])
    110     CXXFLAGS="-std=gnu++0x ${CXXFLAGS}"
     113    CXXFLAGS="-std=gnu++0x ${SAVED_CXXFLAGS}"
    111114    AC_COMPILE_IFELSE(
    112115      [AC_LANG_PROGRAM([[#include <vector>]],
    113116                       [[std::vector<int> test = {1}]])],
     
    117120      ],
    118121      [
    119122        AC_MSG_RESULT(no)
    120         AC_DEFINE(NO_INITIALIZER_LISTS)
    121         SKIP_COMPLICATED=1
     123        # Clang needs -std=c++11 instead
     124        AC_MSG_CHECKING([if it helps to add -std=c++11 to CXXFLAGS])
     125        CXXFLAGS="-std=c++11 ${SAVED_CXXFLAGS}"
     126        AC_COMPILE_IFELSE(
     127          [AC_LANG_PROGRAM([[#include <vector>]],
     128                           [[std::vector<int> test = {1}]])],
     129          [
     130            AC_MSG_RESULT(yes)
     131            ADDED_CXXFLAGS="${ADDED_CXXFLAGS} -std=c++11"
     132          ],
     133          [
     134            AC_MSG_RESULT(no)
     135            AC_DEFINE(NO_INITIALIZER_LISTS)
     136            SKIP_COMPLICATED=1
     137          ]
     138        )
    122139      ]
    123140    )
    124141  ]