tuhaihe commented on code in PR #1752:
URL: https://github.com/apache/cloudberry/pull/1752#discussion_r3534582417


##########
configure:
##########


Review Comment:
   I ran the `autoconf` in Rocky Linux 9 dev container, some diffs are for your 
information:
   ```diff
   diff --git a/configure b/configure
   index 6a585739..252e0477 100755
   --- a/configure
   +++ b/configure
   @@ -721,6 +721,7 @@ GREP
    with_apr_config
    with_libcurl
    with_rt
   +HAVE_CXX11
    with_yezzey
    PROTOC
    with_gp_stats_collector
   @@ -11468,54 +11469,372 @@ else
    fi
    
    
   +
   +
    if test "$with_yezzey" = yes; then :
       # then
   -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports 
C++11 features with -std=c++11 for Yezzey" >&5
   -$as_echo_n "checking whether $CXX supports C++11 features with -std=c++11 
for Yezzey... " >&6; }
   -if ${ac_cv_yezzey_cxx11+:} false; then :
   -  $as_echo_n "(cached) " >&6
   -else
   +    ax_cxx_compile_alternatives="11 0x"    
ax_cxx_compile_cxx11_required=true
      ac_ext=cpp
    ac_cpp='$CXXCPP $CPPFLAGS'
    ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
    ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS 
conftest.$ac_ext $LIBS >&5'
    ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   +  ac_success=no
   +
    
   +
   +    if test x$ac_success = xno; then
   +                for alternative in ${ax_cxx_compile_alternatives}; do
   +      for switch in -std=c++${alternative} +std=c++${alternative} "-h 
std=c++${alternative}"; do
   +        cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh`
   +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX 
supports C++11 features with $switch" >&5
   +$as_echo_n "checking whether $CXX supports C++11 features with $switch... " 
>&6; }
   +if eval \${$cachevar+:} false; then :
   +  $as_echo_n "(cached) " >&6
   +else
      ac_save_CXX="$CXX"
   -  CXX="$CXX -std=c++11"
   -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
   +           CXX="$CXX $switch"
   +           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
    /* end confdefs.h.  */
    
   +
   +// If the compiler admits that it is not ready for C++11, why torture it?
   +// Hopefully, this will speed up the test.
   +
    #ifndef __cplusplus
   +
    #error "This is not a C++ compiler"
   +
    #elif __cplusplus < 201103L
   +
    #error "This is not a C++11 compiler"
   -#endif
   -int main() { auto value = 0; return value; }
   +
   +#else
   +
   +namespace cxx11
   +{
   +
   +  namespace test_static_assert
   +  {
   +
   +    template <typename T>
   +    struct check
   +    {
   +      static_assert(sizeof(int) <= sizeof(T), "not big enough");
   +    };
   +
   +  }
   +
   +  namespace test_final_override
   +  {
   +
   +    struct Base
   +    {
   +      virtual ~Base() {}
   +      virtual void f() {}
   +    };
   +
   +    struct Derived : public Base
   +    {
   +      virtual ~Derived() override {}
   +      virtual void f() override {}
   +    };
   +
   +  }
   +
   +  namespace test_double_right_angle_brackets
   +  {
   +
   +    template < typename T >
   +    struct check {};
   +
   +    typedef check<void> single_type;
   +    typedef check<check<void>> double_type;
   +    typedef check<check<check<void>>> triple_type;
   +    typedef check<check<check<check<void>>>> quadruple_type;
   +
   +  }
   +
   +  namespace test_decltype
   +  {
   +
   +    int
   +    f()
   +    {
   +      int a = 1;
   +      decltype(a) b = 2;
   +      return a + b;
   +    }
   +
   +  }
   +
   +  namespace test_type_deduction
   +  {
   +
   +    template < typename T1, typename T2 >
   +    struct is_same
   +    {
   +      static const bool value = false;
   +    };
   +
   +    template < typename T >
   +    struct is_same<T, T>
   +    {
   +      static const bool value = true;
   +    };
   +
   +    template < typename T1, typename T2 >
   +    auto
   +    add(T1 a1, T2 a2) -> decltype(a1 + a2)
   +    {
   +      return a1 + a2;
   +    }
   +
   +    int
   +    test(const int c, volatile int v)
   +    {
   +      static_assert(is_same<int, decltype(0)>::value == true, "");
   +      static_assert(is_same<int, decltype(c)>::value == false, "");
   +      static_assert(is_same<int, decltype(v)>::value == false, "");
   +      auto ac = c;
   +      auto av = v;
   +      auto sumi = ac + av + 'x';
   +      auto sumf = ac + av + 1.0;
   +      static_assert(is_same<int, decltype(ac)>::value == true, "");
   +      static_assert(is_same<int, decltype(av)>::value == true, "");
   +      static_assert(is_same<int, decltype(sumi)>::value == true, "");
   +      static_assert(is_same<int, decltype(sumf)>::value == false, "");
   +      static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
   +      return (sumf > 0.0) ? sumi : add(c, v);
   +    }
   +
   +  }
   +
   +  namespace test_noexcept
   +  {
   +
   +    int f() { return 0; }
   +    int g() noexcept { return 0; }
   +
   +    static_assert(noexcept(f()) == false, "");
   +    static_assert(noexcept(g()) == true, "");
   +
   +  }
   +
   +  namespace test_constexpr
   +  {
   +
   +    template < typename CharT >
   +    unsigned long constexpr
   +    strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
   +    {
   +      return *s ? strlen_c_r(s + 1, acc + 1) : acc;
   +    }
   +
   +    template < typename CharT >
   +    unsigned long constexpr
   +    strlen_c(const CharT *const s) noexcept
   +    {
   +      return strlen_c_r(s, 0UL);
   +    }
   +
   +    static_assert(strlen_c("") == 0UL, "");
   +    static_assert(strlen_c("1") == 1UL, "");
   +    static_assert(strlen_c("example") == 7UL, "");
   +    static_assert(strlen_c("another\0example") == 7UL, "");
   +
   +  }
   +
   +  namespace test_rvalue_references
   +  {
   +
   +    template < int N >
   +    struct answer
   +    {
   +      static constexpr int value = N;
   +    };
   +
   +    answer<1> f(int&)       { return answer<1>(); }
   +    answer<2> f(const int&) { return answer<2>(); }
   +    answer<3> f(int&&)      { return answer<3>(); }
   +
   +    void
   +    test()
   +    {
   +      int i = 0;
   +      const int c = 0;
   +      static_assert(decltype(f(i))::value == 1, "");
   +      static_assert(decltype(f(c))::value == 2, "");
   +      static_assert(decltype(f(0))::value == 3, "");
   +    }
   +
   +  }
   +
   +  namespace test_uniform_initialization
   +  {
   +
   +    struct test
   +    {
   +      static const int zero {};
   +      static const int one {1};
   +    };
   +
   +    static_assert(test::zero == 0, "");
   +    static_assert(test::one == 1, "");
   +
   +  }
   +
   +  namespace test_lambdas
   +  {
   +
   +    void
   +    test1()
   +    {
   +      auto lambda1 = [](){};
   +      auto lambda2 = lambda1;
   +      lambda1();
   +      lambda2();
   +    }
   +
   +    int
   +    test2()
   +    {
   +      auto a = [](int i, int j){ return i + j; }(1, 2);
   +      auto b = []() -> int { return '0'; }();
   +      auto c = [=](){ return a + b; }();
   +      auto d = [&](){ return c; }();
   +      auto e = [a, &b](int x) mutable {
   +        const auto identity = [](int y){ return y; };
   +        for (auto i = 0; i < a; ++i)
   +          a += b--;
   +        return x + identity(a + b);
   +      }(0);
   +      return a + b + c + d + e;
   +    }
   +
   +    int
   +    test3()
   +    {
   +      const auto nullary = [](){ return 0; };
   +      const auto unary = [](int x){ return x; };
   +      using nullary_t = decltype(nullary);
   +      using unary_t = decltype(unary);
   +      const auto higher1st = [](nullary_t f){ return f(); };
   +      const auto higher2nd = [unary](nullary_t f1){
   +        return [unary, f1](unary_t f2){ return f2(unary(f1())); };
   +      };
   +      return higher1st(nullary) + higher2nd(nullary)(unary);
   +    }
   +
   +  }
   +
   +  namespace test_variadic_templates
   +  {
   +
   +    template <int...>
   +    struct sum;
   +
   +    template <int N0, int... N1toN>
   +    struct sum<N0, N1toN...>
   +    {
   +      static constexpr auto value = N0 + sum<N1toN...>::value;
   +    };
   +
   +    template <>
   +    struct sum<>
   +    {
   +      static constexpr auto value = 0;
   +    };
   +
   +    static_assert(sum<>::value == 0, "");
   +    static_assert(sum<1>::value == 1, "");
   +    static_assert(sum<23>::value == 23, "");
   +    static_assert(sum<1, 2>::value == 3, "");
   +    static_assert(sum<5, 5, 11>::value == 21, "");
   +    static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
   +
   +  }
   +
   +  // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
   +  // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
   +  // because of this.
   +  namespace test_template_alias_sfinae
   +  {
   +
   +    struct foo {};
   +
   +    template<typename T>
   +    using member = typename T::member_type;
   +
   +    template<typename T>
   +    void func(...) {}
   +
   +    template<typename T>
   +    void func(member<T>*) {}
   +
   +    void test();
   +
   +    void test() { func<foo>(0); }
   +
   +  }
   +
   +}  // namespace cxx11
   +
   +#endif  // __cplusplus >= 201103L
   +
   +
    
    _ACEOF
    if ac_fn_cxx_try_compile "$LINENO"; then :
   -  ac_cv_yezzey_cxx11=yes
   +  eval $cachevar=yes
    else
   -  ac_cv_yezzey_cxx11=no
   +  eval $cachevar=no
    fi
    rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   -  CXX="$ac_save_CXX"
   +           CXX="$ac_save_CXX"
   +fi
   +eval ac_res=\$$cachevar
   +           { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
   +$as_echo "$ac_res" >&6; }
   +        if eval test x\$$cachevar = xyes; then
   +          CXX="$CXX $switch"
   +          if test -n "$CXXCPP" ; then
   +            CXXCPP="$CXXCPP $switch"
   +          fi
   +          ac_success=yes
   +          break
   +        fi
   +      done
   +      if test x$ac_success = xyes; then
   +        break
   +      fi
   +    done
   +  fi
      ac_ext=c
    ac_cpp='$CPP $CPPFLAGS'
    ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
    ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS 
conftest.$ac_ext $LIBS >&5'
    ac_compiler_gnu=$ac_cv_c_compiler_gnu
    
   -fi
   -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_yezzey_cxx11" >&5
   -$as_echo "$ac_cv_yezzey_cxx11" >&6; }
   -  if test "$ac_cv_yezzey_cxx11" != yes; then
   -    as_fn_error $? "*** A compiler with support for C++11 language features 
is required for Yezzey." "$LINENO" 5
   +  if test x$ax_cxx_compile_cxx11_required = xtrue; then
   +    if test x$ac_success = xno; then
   +      as_fn_error $? "*** A compiler with support for C++11 language 
features is required." "$LINENO" 5
   +    fi
      fi
   +  if test x$ac_success = xno; then
   +    HAVE_CXX11=0
   +    { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support 
was found" >&5
   +$as_echo "$as_me: No compiler with C++11 support was found" >&6;}
   +  else
   +    HAVE_CXX11=1
    
   -fi # fi
   +$as_echo "#define HAVE_CXX11 1" >>confdefs.h
    
   +  fi
   +
   +
   +
   +fi # fi
    
    #
    # Realtime library
   
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to