This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by configure, which was generated by GNU Autoconf 2.69. Invocation command line was $ ./configure --target=mipsel-buildroot-linux-gnu --host=mipsel-buildroot-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix= --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --enable-static --disable-shared --disable-debuglibs --enable-libcap --disable-libusb --disable-libwebsockets --disable-lmsensors --enable-pcre --disable-python-tools --enable-capture-tools-only ## --------- ## ## Platform. ## ## --------- ## hostname = james-x399 uname -m = x86_64 uname -r = 5.13.0-40-generic uname -s = Linux uname -v = #45~20.04.1-Ubuntu SMP Mon Apr 4 09:38:31 UTC 2022 /usr/bin/uname -p = unknown /bin/uname -X = unknown /bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /nvmedata/autobuild/instance-18/output-1/host/bin PATH: /nvmedata/autobuild/instance-18/output-1/host/sbin PATH: /usr/local/sbin PATH: /usr/local/bin PATH: /usr/sbin PATH: /usr/bin PATH: /sbin PATH: /bin PATH: /snap/bin ## ----------- ## ## Core tests. ## ## ----------- ## configure:2493: checking build system type configure:2507: result: x86_64-pc-linux-gnu configure:2527: checking host system type configure:2540: result: mipsel-buildroot-linux-gnu configure:2570: checking for mipsel-buildroot-linux-gnu-gcc configure:2597: result: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc configure:2866: checking for C compiler version configure:2875: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc --version >&5 mips-mti-linux-gnu-gcc (Codescape GNU Tools 2018.09-02 for MIPS MTI Linux) 6.3.0 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:2886: $? = 0 configure:2875: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc -v >&5 Using built-in specs. COLLECT_GCC=/nvmedata/autobuild/instance-18/output-1/host/opt/ext-toolchain/bin/mips-mti-linux-gnu-gcc COLLECT_LTO_WRAPPER=/nvmedata/autobuild/instance-18/output-1/host/opt/ext-toolchain/bin/../libexec/gcc/mips-mti-linux-gnu/6.3.0/lto-wrapper Target: mips-mti-linux-gnu Configured with: /scratch/overtest/root/69361/240198/shared/gcc/configure --prefix=/scratch/overtest/root/69361/240300/shared/mips-mti-linux-gnu/2018.09-02 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-libssp --disable-libmudflap --disable-decimal-float --with-mips-plt --target=mips-mti-linux-gnu --enable-languages=c,c++,fortran --with-sysroot=/scratch/overtest/root/69361/240300/shared/mips-mti-linux-gnu/2018.09-02/sysroot --enable-__cxa_atexit --with-bugurl=http://mips.com/mips-sdk-support/ --with-pkgversion='Codescape GNU Tools 2018.09-02 for MIPS MTI Linux' Thread model: posix gcc version 6.3.0 (Codescape GNU Tools 2018.09-02 for MIPS MTI Linux) configure:2886: $? = 0 configure:2875: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc -V >&5 mips-mti-linux-gnu-gcc: error: unrecognized command line option '-V' mips-mti-linux-gnu-gcc: fatal error: no input files compilation terminated. configure:2886: $? = 1 configure:2875: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc -qversion >&5 mips-mti-linux-gnu-gcc: error: unrecognized command line option '-qversion'; did you mean '--version'? mips-mti-linux-gnu-gcc: fatal error: no input files compilation terminated. configure:2886: $? = 1 configure:2906: checking whether the C compiler works configure:2928: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static conftest.c >&5 configure:2932: $? = 0 configure:2980: result: yes configure:2983: checking for C compiler default output file name configure:2985: result: a.out configure:2991: checking for suffix of executables configure:2998: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static conftest.c >&5 configure:3002: $? = 0 configure:3024: result: configure:3046: checking whether we are cross compiling configure:3084: result: yes configure:3089: checking for suffix of object files configure:3111: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:3115: $? = 0 configure:3136: result: o configure:3140: checking whether we are using the GNU C compiler configure:3159: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:3159: $? = 0 configure:3168: result: yes configure:3177: checking whether /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc accepts -g configure:3197: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc -c -g -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:3197: $? = 0 configure:3238: result: yes configure:3255: checking for /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc option to accept ISO C89 configure:3318: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:3318: $? = 0 configure:3331: result: none needed configure:3355: checking for /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc option to accept ISO C99 configure:3504: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:3504: $? = 0 configure:3517: result: none needed configure:3625: checking for /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc option to accept ISO Standard C configure:3636: result: none needed configure:3755: checking for C++ compiler version configure:3764: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ --version >&5 mips-mti-linux-gnu-g++ (Codescape GNU Tools 2018.09-02 for MIPS MTI Linux) 6.3.0 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:3775: $? = 0 configure:3764: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -v >&5 Using built-in specs. COLLECT_GCC=/nvmedata/autobuild/instance-18/output-1/host/opt/ext-toolchain/bin/mips-mti-linux-gnu-g++ COLLECT_LTO_WRAPPER=/nvmedata/autobuild/instance-18/output-1/host/opt/ext-toolchain/bin/../libexec/gcc/mips-mti-linux-gnu/6.3.0/lto-wrapper Target: mips-mti-linux-gnu Configured with: /scratch/overtest/root/69361/240198/shared/gcc/configure --prefix=/scratch/overtest/root/69361/240300/shared/mips-mti-linux-gnu/2018.09-02 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-libssp --disable-libmudflap --disable-decimal-float --with-mips-plt --target=mips-mti-linux-gnu --enable-languages=c,c++,fortran --with-sysroot=/scratch/overtest/root/69361/240300/shared/mips-mti-linux-gnu/2018.09-02/sysroot --enable-__cxa_atexit --with-bugurl=http://mips.com/mips-sdk-support/ --with-pkgversion='Codescape GNU Tools 2018.09-02 for MIPS MTI Linux' Thread model: posix gcc version 6.3.0 (Codescape GNU Tools 2018.09-02 for MIPS MTI Linux) configure:3775: $? = 0 configure:3764: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -V >&5 mips-mti-linux-gnu-g++: error: unrecognized command line option '-V' mips-mti-linux-gnu-g++: fatal error: no input files compilation terminated. configure:3775: $? = 1 configure:3764: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -qversion >&5 mips-mti-linux-gnu-g++: error: unrecognized command line option '-qversion'; did you mean '--version'? mips-mti-linux-gnu-g++: fatal error: no input files compilation terminated. configure:3775: $? = 1 configure:3779: checking whether we are using the GNU C++ compiler configure:3798: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:3798: $? = 0 configure:3807: result: yes configure:3816: checking whether /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ accepts -g configure:3836: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -c -g -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:3836: $? = 0 configure:3877: result: yes configure:3914: checking for a BSD-compatible install configure:3982: result: /usr/bin/install -c configure:3993: checking whether make sets $(MAKE) configure:4015: result: yes configure:4029: checking how to run the C preprocessor configure:4099: result: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-cpp configure:4119: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-cpp -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c configure:4119: $? = 0 configure:4133: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-cpp -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c conftest.c:9:28: fatal error: ac_nonexistent.h: No such file or directory #include ^ compilation terminated. configure:4133: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | /* end confdefs.h. */ | #include configure:4199: checking for platform-specific compiler flags configure:4313: result: none needed configure:4368: checking gcc version configure:4382: result: 6.3.0 configure:4438: checking whether /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ supports C++17 features with -std=gnu++17 configure:5232: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++17 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 conftest.cpp:429:2: error: #error "This is not a C++17 compiler" #error "This is not a C++17 compiler" ^~~~~ configure:5232: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | /* 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" | | #else | | namespace cxx11 | { | | namespace test_static_assert | { | | template | struct check | { | static_assert(sizeof(int) <= sizeof(T), "not big enough"); | }; | | } | | namespace test_final_override | { | | struct Base | { | virtual void f() {} | }; | | struct Derived : public Base | { | virtual void f() override {} | }; | | } | | namespace test_double_right_angle_brackets | { | | template < typename T > | struct check {}; | | typedef check single_type; | typedef check> double_type; | typedef check>> triple_type; | typedef check>>> 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 | { | 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::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::value == false, ""); | auto ac = c; | auto av = v; | auto sumi = ac + av + 'x'; | auto sumf = ac + av + 1.0; | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::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 | struct sum; | | template | struct sum | { | static constexpr auto value = N0 + sum::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 | using member = typename T::member_type; | | template | void func(...) {} | | template | void func(member*) {} | | void test(); | | void test() { func(0); } | | } | | } // namespace cxx11 | | #endif // __cplusplus >= 201103L | | | | | // If the compiler admits that it is not ready for C++14, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201402L | | #error "This is not a C++14 compiler" | | #else | | namespace cxx14 | { | | namespace test_polymorphic_lambdas | { | | int | test() | { | const auto lambda = [](auto&&... args){ | const auto istiny = [](auto x){ | return (sizeof(x) == 1UL) ? 1 : 0; | }; | const int aretiny[] = { istiny(args)... }; | return aretiny[0]; | }; | return lambda(1, 1L, 1.0f, '1'); | } | | } | | namespace test_binary_literals | { | | constexpr auto ivii = 0b0000000000101010; | static_assert(ivii == 42, "wrong value"); | | } | | namespace test_generalized_constexpr | { | | template < typename CharT > | constexpr unsigned long | strlen_c(const CharT *const s) noexcept | { | auto length = 0UL; | for (auto p = s; *p; ++p) | ++length; | return length; | } | | static_assert(strlen_c("") == 0UL, ""); | static_assert(strlen_c("x") == 1UL, ""); | static_assert(strlen_c("test") == 4UL, ""); | static_assert(strlen_c("another\0test") == 7UL, ""); | | } | | namespace test_lambda_init_capture | { | | int | test() | { | auto x = 0; | const auto lambda1 = [a = x](int b){ return a + b; }; | const auto lambda2 = [a = lambda1(x)](){ return a; }; | return lambda2(); | } | | } | | namespace test_digit_separators | { | | constexpr auto ten_million = 100'000'000; | static_assert(ten_million == 100000000, ""); | | } | | namespace test_return_type_deduction | { | | auto f(int& x) { return x; } | decltype(auto) g(int& x) { return x; } | | template < typename T1, typename T2 > | struct is_same | { | static constexpr auto value = false; | }; | | template < typename T > | struct is_same | { | static constexpr auto value = true; | }; | | int | test() | { | auto x = 0; | static_assert(is_same::value, ""); | static_assert(is_same::value, ""); | return x; | } | | } | | } // namespace cxx14 | | #endif // __cplusplus >= 201402L | | | | | // If the compiler admits that it is not ready for C++17, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201703L | | #error "This is not a C++17 compiler" | | #else | | #include | #include | #include | | namespace cxx17 | { | | namespace test_constexpr_lambdas | { | | constexpr int foo = [](){return 42;}(); | | } | | namespace test::nested_namespace::definitions | { | | } | | namespace test_fold_expression | { | | template | int multiply(Args... args) | { | return (args * ... * 1); | } | | template | bool all(Args... args) | { | return (args && ...); | } | | } | | namespace test_extended_static_assert | { | | static_assert (true); | | } | | namespace test_auto_brace_init_list | { | | auto foo = {5}; | auto bar {5}; | | static_assert(std::is_same, decltype(foo)>::value); | static_assert(std::is_same::value); | } | | namespace test_typename_in_template_template_parameter | { | | template typename X> struct D; | | } | | namespace test_fallthrough_nodiscard_maybe_unused_attributes | { | | int f1() | { | return 42; | } | | [[nodiscard]] int f2() | { | [[maybe_unused]] auto unused = f1(); | | switch (f1()) | { | case 17: | f1(); | [[fallthrough]]; | case 42: | f1(); | } | return f1(); | } | | } | | namespace test_extended_aggregate_initialization | { | | struct base1 | { | int b1, b2 = 42; | }; | | struct base2 | { | base2() { | b3 = 42; | } | int b3; | }; | | struct derived : base1, base2 | { | int d; | }; | | derived d1 {{1, 2}, {}, 4}; // full initialization | derived d2 {{}, {}, 4}; // value-initialized bases | | } | | namespace test_general_range_based_for_loop | { | | struct iter | { | int i; | | int& operator* () | { | return i; | } | | const int& operator* () const | { | return i; | } | | iter& operator++() | { | ++i; | return *this; | } | }; | | struct sentinel | { | int i; | }; | | bool operator== (const iter& i, const sentinel& s) | { | return i.i == s.i; | } | | bool operator!= (const iter& i, const sentinel& s) | { | return !(i == s); | } | | struct range | { | iter begin() const | { | return {0}; | } | | sentinel end() const | { | return {5}; | } | }; | | void f() | { | range r {}; | | for (auto i : r) | { | [[maybe_unused]] auto v = i; | } | } | | } | | namespace test_lambda_capture_asterisk_this_by_value | { | | struct t | { | int i; | int foo() | { | return [*this]() | { | return i; | }(); | } | }; | | } | | namespace test_enum_class_construction | { | | enum class byte : unsigned char | {}; | | byte foo {42}; | | } | | namespace test_constexpr_if | { | | template | int f () | { | if constexpr(cond) | { | return 13; | } | else | { | return 42; | } | } | | } | | namespace test_selection_statement_with_initializer | { | | int f() | { | return 13; | } | | int f2() | { | if (auto i = f(); i > 0) | { | return 3; | } | | switch (auto i = f(); i + 4) | { | case 17: | return 2; | | default: | return 1; | } | } | | } | | namespace test_template_argument_deduction_for_class_templates | { | | template | struct pair | { | pair (T1 p1, T2 p2) | : m1 {p1}, | m2 {p2} | {} | | T1 m1; | T2 m2; | }; | | void f() | { | [[maybe_unused]] auto p = pair{13, 42u}; | } | | } | | namespace test_non_type_auto_template_parameters | { | | template | struct B | {}; | | B<5> b1; | B<'a'> b2; | | } | | namespace test_structured_bindings | { | | int arr[2] = { 1, 2 }; | std::pair pr = { 1, 2 }; | | auto f1() -> int(&)[2] | { | return arr; | } | | auto f2() -> std::pair& | { | return pr; | } | | struct S | { | int x1 : 2; | volatile double y1; | }; | | S f3() | { | return {}; | } | | auto [ x1, y1 ] = f1(); | auto& [ xr1, yr1 ] = f1(); | auto [ x2, y2 ] = f2(); | auto& [ xr2, yr2 ] = f2(); | const auto [ x3, y3 ] = f3(); | | } | | namespace test_exception_spec_type_system | { | | struct Good {}; | struct Bad {}; | | void g1() noexcept; | void g2(); | | template | Bad | f(T*, T*); | | template | Good | f(T1*, T2*); | | static_assert (std::is_same_v); | | } | | namespace test_inline_variables | { | | template void f(T) | {} | | template inline T g(T) | { | return T{}; | } | | template<> inline void f<>(int) | {} | | template<> int g<>(int) | { | return 5; | } | | } | | } // namespace cxx17 | | #endif // __cplusplus < 201703L | | | configure:5241: result: no configure:4438: checking whether /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ supports C++17 features with -std=gnu++1z configure:5232: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++1z -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 conftest.cpp:429:2: error: #error "This is not a C++17 compiler" #error "This is not a C++17 compiler" ^~~~~ configure:5232: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | /* 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" | | #else | | namespace cxx11 | { | | namespace test_static_assert | { | | template | struct check | { | static_assert(sizeof(int) <= sizeof(T), "not big enough"); | }; | | } | | namespace test_final_override | { | | struct Base | { | virtual void f() {} | }; | | struct Derived : public Base | { | virtual void f() override {} | }; | | } | | namespace test_double_right_angle_brackets | { | | template < typename T > | struct check {}; | | typedef check single_type; | typedef check> double_type; | typedef check>> triple_type; | typedef check>>> 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 | { | 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::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::value == false, ""); | auto ac = c; | auto av = v; | auto sumi = ac + av + 'x'; | auto sumf = ac + av + 1.0; | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::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 | struct sum; | | template | struct sum | { | static constexpr auto value = N0 + sum::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 | using member = typename T::member_type; | | template | void func(...) {} | | template | void func(member*) {} | | void test(); | | void test() { func(0); } | | } | | } // namespace cxx11 | | #endif // __cplusplus >= 201103L | | | | | // If the compiler admits that it is not ready for C++14, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201402L | | #error "This is not a C++14 compiler" | | #else | | namespace cxx14 | { | | namespace test_polymorphic_lambdas | { | | int | test() | { | const auto lambda = [](auto&&... args){ | const auto istiny = [](auto x){ | return (sizeof(x) == 1UL) ? 1 : 0; | }; | const int aretiny[] = { istiny(args)... }; | return aretiny[0]; | }; | return lambda(1, 1L, 1.0f, '1'); | } | | } | | namespace test_binary_literals | { | | constexpr auto ivii = 0b0000000000101010; | static_assert(ivii == 42, "wrong value"); | | } | | namespace test_generalized_constexpr | { | | template < typename CharT > | constexpr unsigned long | strlen_c(const CharT *const s) noexcept | { | auto length = 0UL; | for (auto p = s; *p; ++p) | ++length; | return length; | } | | static_assert(strlen_c("") == 0UL, ""); | static_assert(strlen_c("x") == 1UL, ""); | static_assert(strlen_c("test") == 4UL, ""); | static_assert(strlen_c("another\0test") == 7UL, ""); | | } | | namespace test_lambda_init_capture | { | | int | test() | { | auto x = 0; | const auto lambda1 = [a = x](int b){ return a + b; }; | const auto lambda2 = [a = lambda1(x)](){ return a; }; | return lambda2(); | } | | } | | namespace test_digit_separators | { | | constexpr auto ten_million = 100'000'000; | static_assert(ten_million == 100000000, ""); | | } | | namespace test_return_type_deduction | { | | auto f(int& x) { return x; } | decltype(auto) g(int& x) { return x; } | | template < typename T1, typename T2 > | struct is_same | { | static constexpr auto value = false; | }; | | template < typename T > | struct is_same | { | static constexpr auto value = true; | }; | | int | test() | { | auto x = 0; | static_assert(is_same::value, ""); | static_assert(is_same::value, ""); | return x; | } | | } | | } // namespace cxx14 | | #endif // __cplusplus >= 201402L | | | | | // If the compiler admits that it is not ready for C++17, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201703L | | #error "This is not a C++17 compiler" | | #else | | #include | #include | #include | | namespace cxx17 | { | | namespace test_constexpr_lambdas | { | | constexpr int foo = [](){return 42;}(); | | } | | namespace test::nested_namespace::definitions | { | | } | | namespace test_fold_expression | { | | template | int multiply(Args... args) | { | return (args * ... * 1); | } | | template | bool all(Args... args) | { | return (args && ...); | } | | } | | namespace test_extended_static_assert | { | | static_assert (true); | | } | | namespace test_auto_brace_init_list | { | | auto foo = {5}; | auto bar {5}; | | static_assert(std::is_same, decltype(foo)>::value); | static_assert(std::is_same::value); | } | | namespace test_typename_in_template_template_parameter | { | | template typename X> struct D; | | } | | namespace test_fallthrough_nodiscard_maybe_unused_attributes | { | | int f1() | { | return 42; | } | | [[nodiscard]] int f2() | { | [[maybe_unused]] auto unused = f1(); | | switch (f1()) | { | case 17: | f1(); | [[fallthrough]]; | case 42: | f1(); | } | return f1(); | } | | } | | namespace test_extended_aggregate_initialization | { | | struct base1 | { | int b1, b2 = 42; | }; | | struct base2 | { | base2() { | b3 = 42; | } | int b3; | }; | | struct derived : base1, base2 | { | int d; | }; | | derived d1 {{1, 2}, {}, 4}; // full initialization | derived d2 {{}, {}, 4}; // value-initialized bases | | } | | namespace test_general_range_based_for_loop | { | | struct iter | { | int i; | | int& operator* () | { | return i; | } | | const int& operator* () const | { | return i; | } | | iter& operator++() | { | ++i; | return *this; | } | }; | | struct sentinel | { | int i; | }; | | bool operator== (const iter& i, const sentinel& s) | { | return i.i == s.i; | } | | bool operator!= (const iter& i, const sentinel& s) | { | return !(i == s); | } | | struct range | { | iter begin() const | { | return {0}; | } | | sentinel end() const | { | return {5}; | } | }; | | void f() | { | range r {}; | | for (auto i : r) | { | [[maybe_unused]] auto v = i; | } | } | | } | | namespace test_lambda_capture_asterisk_this_by_value | { | | struct t | { | int i; | int foo() | { | return [*this]() | { | return i; | }(); | } | }; | | } | | namespace test_enum_class_construction | { | | enum class byte : unsigned char | {}; | | byte foo {42}; | | } | | namespace test_constexpr_if | { | | template | int f () | { | if constexpr(cond) | { | return 13; | } | else | { | return 42; | } | } | | } | | namespace test_selection_statement_with_initializer | { | | int f() | { | return 13; | } | | int f2() | { | if (auto i = f(); i > 0) | { | return 3; | } | | switch (auto i = f(); i + 4) | { | case 17: | return 2; | | default: | return 1; | } | } | | } | | namespace test_template_argument_deduction_for_class_templates | { | | template | struct pair | { | pair (T1 p1, T2 p2) | : m1 {p1}, | m2 {p2} | {} | | T1 m1; | T2 m2; | }; | | void f() | { | [[maybe_unused]] auto p = pair{13, 42u}; | } | | } | | namespace test_non_type_auto_template_parameters | { | | template | struct B | {}; | | B<5> b1; | B<'a'> b2; | | } | | namespace test_structured_bindings | { | | int arr[2] = { 1, 2 }; | std::pair pr = { 1, 2 }; | | auto f1() -> int(&)[2] | { | return arr; | } | | auto f2() -> std::pair& | { | return pr; | } | | struct S | { | int x1 : 2; | volatile double y1; | }; | | S f3() | { | return {}; | } | | auto [ x1, y1 ] = f1(); | auto& [ xr1, yr1 ] = f1(); | auto [ x2, y2 ] = f2(); | auto& [ xr2, yr2 ] = f2(); | const auto [ x3, y3 ] = f3(); | | } | | namespace test_exception_spec_type_system | { | | struct Good {}; | struct Bad {}; | | void g1() noexcept; | void g2(); | | template | Bad | f(T*, T*); | | template | Good | f(T1*, T2*); | | static_assert (std::is_same_v); | | } | | namespace test_inline_variables | { | | template void f(T) | {} | | template inline T g(T) | { | return T{}; | } | | template<> inline void f<>(int) | {} | | template<> int g<>(int) | { | return 5; | } | | } | | } // namespace cxx17 | | #endif // __cplusplus < 201703L | | | configure:5241: result: no configure:5258: checking whether /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ supports C++17 features with -std=c++17 configure:6052: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=c++17 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 conftest.cpp:429:2: error: #error "This is not a C++17 compiler" #error "This is not a C++17 compiler" ^~~~~ configure:6052: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | /* 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" | | #else | | namespace cxx11 | { | | namespace test_static_assert | { | | template | struct check | { | static_assert(sizeof(int) <= sizeof(T), "not big enough"); | }; | | } | | namespace test_final_override | { | | struct Base | { | virtual void f() {} | }; | | struct Derived : public Base | { | virtual void f() override {} | }; | | } | | namespace test_double_right_angle_brackets | { | | template < typename T > | struct check {}; | | typedef check single_type; | typedef check> double_type; | typedef check>> triple_type; | typedef check>>> 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 | { | 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::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::value == false, ""); | auto ac = c; | auto av = v; | auto sumi = ac + av + 'x'; | auto sumf = ac + av + 1.0; | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::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 | struct sum; | | template | struct sum | { | static constexpr auto value = N0 + sum::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 | using member = typename T::member_type; | | template | void func(...) {} | | template | void func(member*) {} | | void test(); | | void test() { func(0); } | | } | | } // namespace cxx11 | | #endif // __cplusplus >= 201103L | | | | | // If the compiler admits that it is not ready for C++14, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201402L | | #error "This is not a C++14 compiler" | | #else | | namespace cxx14 | { | | namespace test_polymorphic_lambdas | { | | int | test() | { | const auto lambda = [](auto&&... args){ | const auto istiny = [](auto x){ | return (sizeof(x) == 1UL) ? 1 : 0; | }; | const int aretiny[] = { istiny(args)... }; | return aretiny[0]; | }; | return lambda(1, 1L, 1.0f, '1'); | } | | } | | namespace test_binary_literals | { | | constexpr auto ivii = 0b0000000000101010; | static_assert(ivii == 42, "wrong value"); | | } | | namespace test_generalized_constexpr | { | | template < typename CharT > | constexpr unsigned long | strlen_c(const CharT *const s) noexcept | { | auto length = 0UL; | for (auto p = s; *p; ++p) | ++length; | return length; | } | | static_assert(strlen_c("") == 0UL, ""); | static_assert(strlen_c("x") == 1UL, ""); | static_assert(strlen_c("test") == 4UL, ""); | static_assert(strlen_c("another\0test") == 7UL, ""); | | } | | namespace test_lambda_init_capture | { | | int | test() | { | auto x = 0; | const auto lambda1 = [a = x](int b){ return a + b; }; | const auto lambda2 = [a = lambda1(x)](){ return a; }; | return lambda2(); | } | | } | | namespace test_digit_separators | { | | constexpr auto ten_million = 100'000'000; | static_assert(ten_million == 100000000, ""); | | } | | namespace test_return_type_deduction | { | | auto f(int& x) { return x; } | decltype(auto) g(int& x) { return x; } | | template < typename T1, typename T2 > | struct is_same | { | static constexpr auto value = false; | }; | | template < typename T > | struct is_same | { | static constexpr auto value = true; | }; | | int | test() | { | auto x = 0; | static_assert(is_same::value, ""); | static_assert(is_same::value, ""); | return x; | } | | } | | } // namespace cxx14 | | #endif // __cplusplus >= 201402L | | | | | // If the compiler admits that it is not ready for C++17, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201703L | | #error "This is not a C++17 compiler" | | #else | | #include | #include | #include | | namespace cxx17 | { | | namespace test_constexpr_lambdas | { | | constexpr int foo = [](){return 42;}(); | | } | | namespace test::nested_namespace::definitions | { | | } | | namespace test_fold_expression | { | | template | int multiply(Args... args) | { | return (args * ... * 1); | } | | template | bool all(Args... args) | { | return (args && ...); | } | | } | | namespace test_extended_static_assert | { | | static_assert (true); | | } | | namespace test_auto_brace_init_list | { | | auto foo = {5}; | auto bar {5}; | | static_assert(std::is_same, decltype(foo)>::value); | static_assert(std::is_same::value); | } | | namespace test_typename_in_template_template_parameter | { | | template typename X> struct D; | | } | | namespace test_fallthrough_nodiscard_maybe_unused_attributes | { | | int f1() | { | return 42; | } | | [[nodiscard]] int f2() | { | [[maybe_unused]] auto unused = f1(); | | switch (f1()) | { | case 17: | f1(); | [[fallthrough]]; | case 42: | f1(); | } | return f1(); | } | | } | | namespace test_extended_aggregate_initialization | { | | struct base1 | { | int b1, b2 = 42; | }; | | struct base2 | { | base2() { | b3 = 42; | } | int b3; | }; | | struct derived : base1, base2 | { | int d; | }; | | derived d1 {{1, 2}, {}, 4}; // full initialization | derived d2 {{}, {}, 4}; // value-initialized bases | | } | | namespace test_general_range_based_for_loop | { | | struct iter | { | int i; | | int& operator* () | { | return i; | } | | const int& operator* () const | { | return i; | } | | iter& operator++() | { | ++i; | return *this; | } | }; | | struct sentinel | { | int i; | }; | | bool operator== (const iter& i, const sentinel& s) | { | return i.i == s.i; | } | | bool operator!= (const iter& i, const sentinel& s) | { | return !(i == s); | } | | struct range | { | iter begin() const | { | return {0}; | } | | sentinel end() const | { | return {5}; | } | }; | | void f() | { | range r {}; | | for (auto i : r) | { | [[maybe_unused]] auto v = i; | } | } | | } | | namespace test_lambda_capture_asterisk_this_by_value | { | | struct t | { | int i; | int foo() | { | return [*this]() | { | return i; | }(); | } | }; | | } | | namespace test_enum_class_construction | { | | enum class byte : unsigned char | {}; | | byte foo {42}; | | } | | namespace test_constexpr_if | { | | template | int f () | { | if constexpr(cond) | { | return 13; | } | else | { | return 42; | } | } | | } | | namespace test_selection_statement_with_initializer | { | | int f() | { | return 13; | } | | int f2() | { | if (auto i = f(); i > 0) | { | return 3; | } | | switch (auto i = f(); i + 4) | { | case 17: | return 2; | | default: | return 1; | } | } | | } | | namespace test_template_argument_deduction_for_class_templates | { | | template | struct pair | { | pair (T1 p1, T2 p2) | : m1 {p1}, | m2 {p2} | {} | | T1 m1; | T2 m2; | }; | | void f() | { | [[maybe_unused]] auto p = pair{13, 42u}; | } | | } | | namespace test_non_type_auto_template_parameters | { | | template | struct B | {}; | | B<5> b1; | B<'a'> b2; | | } | | namespace test_structured_bindings | { | | int arr[2] = { 1, 2 }; | std::pair pr = { 1, 2 }; | | auto f1() -> int(&)[2] | { | return arr; | } | | auto f2() -> std::pair& | { | return pr; | } | | struct S | { | int x1 : 2; | volatile double y1; | }; | | S f3() | { | return {}; | } | | auto [ x1, y1 ] = f1(); | auto& [ xr1, yr1 ] = f1(); | auto [ x2, y2 ] = f2(); | auto& [ xr2, yr2 ] = f2(); | const auto [ x3, y3 ] = f3(); | | } | | namespace test_exception_spec_type_system | { | | struct Good {}; | struct Bad {}; | | void g1() noexcept; | void g2(); | | template | Bad | f(T*, T*); | | template | Good | f(T1*, T2*); | | static_assert (std::is_same_v); | | } | | namespace test_inline_variables | { | | template void f(T) | {} | | template inline T g(T) | { | return T{}; | } | | template<> inline void f<>(int) | {} | | template<> int g<>(int) | { | return 5; | } | | } | | } // namespace cxx17 | | #endif // __cplusplus < 201703L | | | configure:6061: result: no configure:5258: checking whether /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ supports C++17 features with +std=c++17 configure:6052: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ +std=c++17 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 mips-mti-linux-gnu-g++: error: +std=c++17: No such file or directory configure:6052: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | /* 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" | | #else | | namespace cxx11 | { | | namespace test_static_assert | { | | template | struct check | { | static_assert(sizeof(int) <= sizeof(T), "not big enough"); | }; | | } | | namespace test_final_override | { | | struct Base | { | virtual void f() {} | }; | | struct Derived : public Base | { | virtual void f() override {} | }; | | } | | namespace test_double_right_angle_brackets | { | | template < typename T > | struct check {}; | | typedef check single_type; | typedef check> double_type; | typedef check>> triple_type; | typedef check>>> 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 | { | 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::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::value == false, ""); | auto ac = c; | auto av = v; | auto sumi = ac + av + 'x'; | auto sumf = ac + av + 1.0; | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::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 | struct sum; | | template | struct sum | { | static constexpr auto value = N0 + sum::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 | using member = typename T::member_type; | | template | void func(...) {} | | template | void func(member*) {} | | void test(); | | void test() { func(0); } | | } | | } // namespace cxx11 | | #endif // __cplusplus >= 201103L | | | | | // If the compiler admits that it is not ready for C++14, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201402L | | #error "This is not a C++14 compiler" | | #else | | namespace cxx14 | { | | namespace test_polymorphic_lambdas | { | | int | test() | { | const auto lambda = [](auto&&... args){ | const auto istiny = [](auto x){ | return (sizeof(x) == 1UL) ? 1 : 0; | }; | const int aretiny[] = { istiny(args)... }; | return aretiny[0]; | }; | return lambda(1, 1L, 1.0f, '1'); | } | | } | | namespace test_binary_literals | { | | constexpr auto ivii = 0b0000000000101010; | static_assert(ivii == 42, "wrong value"); | | } | | namespace test_generalized_constexpr | { | | template < typename CharT > | constexpr unsigned long | strlen_c(const CharT *const s) noexcept | { | auto length = 0UL; | for (auto p = s; *p; ++p) | ++length; | return length; | } | | static_assert(strlen_c("") == 0UL, ""); | static_assert(strlen_c("x") == 1UL, ""); | static_assert(strlen_c("test") == 4UL, ""); | static_assert(strlen_c("another\0test") == 7UL, ""); | | } | | namespace test_lambda_init_capture | { | | int | test() | { | auto x = 0; | const auto lambda1 = [a = x](int b){ return a + b; }; | const auto lambda2 = [a = lambda1(x)](){ return a; }; | return lambda2(); | } | | } | | namespace test_digit_separators | { | | constexpr auto ten_million = 100'000'000; | static_assert(ten_million == 100000000, ""); | | } | | namespace test_return_type_deduction | { | | auto f(int& x) { return x; } | decltype(auto) g(int& x) { return x; } | | template < typename T1, typename T2 > | struct is_same | { | static constexpr auto value = false; | }; | | template < typename T > | struct is_same | { | static constexpr auto value = true; | }; | | int | test() | { | auto x = 0; | static_assert(is_same::value, ""); | static_assert(is_same::value, ""); | return x; | } | | } | | } // namespace cxx14 | | #endif // __cplusplus >= 201402L | | | | | // If the compiler admits that it is not ready for C++17, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201703L | | #error "This is not a C++17 compiler" | | #else | | #include | #include | #include | | namespace cxx17 | { | | namespace test_constexpr_lambdas | { | | constexpr int foo = [](){return 42;}(); | | } | | namespace test::nested_namespace::definitions | { | | } | | namespace test_fold_expression | { | | template | int multiply(Args... args) | { | return (args * ... * 1); | } | | template | bool all(Args... args) | { | return (args && ...); | } | | } | | namespace test_extended_static_assert | { | | static_assert (true); | | } | | namespace test_auto_brace_init_list | { | | auto foo = {5}; | auto bar {5}; | | static_assert(std::is_same, decltype(foo)>::value); | static_assert(std::is_same::value); | } | | namespace test_typename_in_template_template_parameter | { | | template typename X> struct D; | | } | | namespace test_fallthrough_nodiscard_maybe_unused_attributes | { | | int f1() | { | return 42; | } | | [[nodiscard]] int f2() | { | [[maybe_unused]] auto unused = f1(); | | switch (f1()) | { | case 17: | f1(); | [[fallthrough]]; | case 42: | f1(); | } | return f1(); | } | | } | | namespace test_extended_aggregate_initialization | { | | struct base1 | { | int b1, b2 = 42; | }; | | struct base2 | { | base2() { | b3 = 42; | } | int b3; | }; | | struct derived : base1, base2 | { | int d; | }; | | derived d1 {{1, 2}, {}, 4}; // full initialization | derived d2 {{}, {}, 4}; // value-initialized bases | | } | | namespace test_general_range_based_for_loop | { | | struct iter | { | int i; | | int& operator* () | { | return i; | } | | const int& operator* () const | { | return i; | } | | iter& operator++() | { | ++i; | return *this; | } | }; | | struct sentinel | { | int i; | }; | | bool operator== (const iter& i, const sentinel& s) | { | return i.i == s.i; | } | | bool operator!= (const iter& i, const sentinel& s) | { | return !(i == s); | } | | struct range | { | iter begin() const | { | return {0}; | } | | sentinel end() const | { | return {5}; | } | }; | | void f() | { | range r {}; | | for (auto i : r) | { | [[maybe_unused]] auto v = i; | } | } | | } | | namespace test_lambda_capture_asterisk_this_by_value | { | | struct t | { | int i; | int foo() | { | return [*this]() | { | return i; | }(); | } | }; | | } | | namespace test_enum_class_construction | { | | enum class byte : unsigned char | {}; | | byte foo {42}; | | } | | namespace test_constexpr_if | { | | template | int f () | { | if constexpr(cond) | { | return 13; | } | else | { | return 42; | } | } | | } | | namespace test_selection_statement_with_initializer | { | | int f() | { | return 13; | } | | int f2() | { | if (auto i = f(); i > 0) | { | return 3; | } | | switch (auto i = f(); i + 4) | { | case 17: | return 2; | | default: | return 1; | } | } | | } | | namespace test_template_argument_deduction_for_class_templates | { | | template | struct pair | { | pair (T1 p1, T2 p2) | : m1 {p1}, | m2 {p2} | {} | | T1 m1; | T2 m2; | }; | | void f() | { | [[maybe_unused]] auto p = pair{13, 42u}; | } | | } | | namespace test_non_type_auto_template_parameters | { | | template | struct B | {}; | | B<5> b1; | B<'a'> b2; | | } | | namespace test_structured_bindings | { | | int arr[2] = { 1, 2 }; | std::pair pr = { 1, 2 }; | | auto f1() -> int(&)[2] | { | return arr; | } | | auto f2() -> std::pair& | { | return pr; | } | | struct S | { | int x1 : 2; | volatile double y1; | }; | | S f3() | { | return {}; | } | | auto [ x1, y1 ] = f1(); | auto& [ xr1, yr1 ] = f1(); | auto [ x2, y2 ] = f2(); | auto& [ xr2, yr2 ] = f2(); | const auto [ x3, y3 ] = f3(); | | } | | namespace test_exception_spec_type_system | { | | struct Good {}; | struct Bad {}; | | void g1() noexcept; | void g2(); | | template | Bad | f(T*, T*); | | template | Good | f(T1*, T2*); | | static_assert (std::is_same_v); | | } | | namespace test_inline_variables | { | | template void f(T) | {} | | template inline T g(T) | { | return T{}; | } | | template<> inline void f<>(int) | {} | | template<> int g<>(int) | { | return 5; | } | | } | | } // namespace cxx17 | | #endif // __cplusplus < 201703L | | | configure:6061: result: no configure:5258: checking whether /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ supports C++17 features with -h std=c++17 configure:6052: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -h std=c++17 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 conftest.cpp:429:2: error: #error "This is not a C++17 compiler" #error "This is not a C++17 compiler" ^~~~~ configure:6052: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | /* 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" | | #else | | namespace cxx11 | { | | namespace test_static_assert | { | | template | struct check | { | static_assert(sizeof(int) <= sizeof(T), "not big enough"); | }; | | } | | namespace test_final_override | { | | struct Base | { | virtual void f() {} | }; | | struct Derived : public Base | { | virtual void f() override {} | }; | | } | | namespace test_double_right_angle_brackets | { | | template < typename T > | struct check {}; | | typedef check single_type; | typedef check> double_type; | typedef check>> triple_type; | typedef check>>> 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 | { | 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::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::value == false, ""); | auto ac = c; | auto av = v; | auto sumi = ac + av + 'x'; | auto sumf = ac + av + 1.0; | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::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 | struct sum; | | template | struct sum | { | static constexpr auto value = N0 + sum::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 | using member = typename T::member_type; | | template | void func(...) {} | | template | void func(member*) {} | | void test(); | | void test() { func(0); } | | } | | } // namespace cxx11 | | #endif // __cplusplus >= 201103L | | | | | // If the compiler admits that it is not ready for C++14, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201402L | | #error "This is not a C++14 compiler" | | #else | | namespace cxx14 | { | | namespace test_polymorphic_lambdas | { | | int | test() | { | const auto lambda = [](auto&&... args){ | const auto istiny = [](auto x){ | return (sizeof(x) == 1UL) ? 1 : 0; | }; | const int aretiny[] = { istiny(args)... }; | return aretiny[0]; | }; | return lambda(1, 1L, 1.0f, '1'); | } | | } | | namespace test_binary_literals | { | | constexpr auto ivii = 0b0000000000101010; | static_assert(ivii == 42, "wrong value"); | | } | | namespace test_generalized_constexpr | { | | template < typename CharT > | constexpr unsigned long | strlen_c(const CharT *const s) noexcept | { | auto length = 0UL; | for (auto p = s; *p; ++p) | ++length; | return length; | } | | static_assert(strlen_c("") == 0UL, ""); | static_assert(strlen_c("x") == 1UL, ""); | static_assert(strlen_c("test") == 4UL, ""); | static_assert(strlen_c("another\0test") == 7UL, ""); | | } | | namespace test_lambda_init_capture | { | | int | test() | { | auto x = 0; | const auto lambda1 = [a = x](int b){ return a + b; }; | const auto lambda2 = [a = lambda1(x)](){ return a; }; | return lambda2(); | } | | } | | namespace test_digit_separators | { | | constexpr auto ten_million = 100'000'000; | static_assert(ten_million == 100000000, ""); | | } | | namespace test_return_type_deduction | { | | auto f(int& x) { return x; } | decltype(auto) g(int& x) { return x; } | | template < typename T1, typename T2 > | struct is_same | { | static constexpr auto value = false; | }; | | template < typename T > | struct is_same | { | static constexpr auto value = true; | }; | | int | test() | { | auto x = 0; | static_assert(is_same::value, ""); | static_assert(is_same::value, ""); | return x; | } | | } | | } // namespace cxx14 | | #endif // __cplusplus >= 201402L | | | | | // If the compiler admits that it is not ready for C++17, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201703L | | #error "This is not a C++17 compiler" | | #else | | #include | #include | #include | | namespace cxx17 | { | | namespace test_constexpr_lambdas | { | | constexpr int foo = [](){return 42;}(); | | } | | namespace test::nested_namespace::definitions | { | | } | | namespace test_fold_expression | { | | template | int multiply(Args... args) | { | return (args * ... * 1); | } | | template | bool all(Args... args) | { | return (args && ...); | } | | } | | namespace test_extended_static_assert | { | | static_assert (true); | | } | | namespace test_auto_brace_init_list | { | | auto foo = {5}; | auto bar {5}; | | static_assert(std::is_same, decltype(foo)>::value); | static_assert(std::is_same::value); | } | | namespace test_typename_in_template_template_parameter | { | | template typename X> struct D; | | } | | namespace test_fallthrough_nodiscard_maybe_unused_attributes | { | | int f1() | { | return 42; | } | | [[nodiscard]] int f2() | { | [[maybe_unused]] auto unused = f1(); | | switch (f1()) | { | case 17: | f1(); | [[fallthrough]]; | case 42: | f1(); | } | return f1(); | } | | } | | namespace test_extended_aggregate_initialization | { | | struct base1 | { | int b1, b2 = 42; | }; | | struct base2 | { | base2() { | b3 = 42; | } | int b3; | }; | | struct derived : base1, base2 | { | int d; | }; | | derived d1 {{1, 2}, {}, 4}; // full initialization | derived d2 {{}, {}, 4}; // value-initialized bases | | } | | namespace test_general_range_based_for_loop | { | | struct iter | { | int i; | | int& operator* () | { | return i; | } | | const int& operator* () const | { | return i; | } | | iter& operator++() | { | ++i; | return *this; | } | }; | | struct sentinel | { | int i; | }; | | bool operator== (const iter& i, const sentinel& s) | { | return i.i == s.i; | } | | bool operator!= (const iter& i, const sentinel& s) | { | return !(i == s); | } | | struct range | { | iter begin() const | { | return {0}; | } | | sentinel end() const | { | return {5}; | } | }; | | void f() | { | range r {}; | | for (auto i : r) | { | [[maybe_unused]] auto v = i; | } | } | | } | | namespace test_lambda_capture_asterisk_this_by_value | { | | struct t | { | int i; | int foo() | { | return [*this]() | { | return i; | }(); | } | }; | | } | | namespace test_enum_class_construction | { | | enum class byte : unsigned char | {}; | | byte foo {42}; | | } | | namespace test_constexpr_if | { | | template | int f () | { | if constexpr(cond) | { | return 13; | } | else | { | return 42; | } | } | | } | | namespace test_selection_statement_with_initializer | { | | int f() | { | return 13; | } | | int f2() | { | if (auto i = f(); i > 0) | { | return 3; | } | | switch (auto i = f(); i + 4) | { | case 17: | return 2; | | default: | return 1; | } | } | | } | | namespace test_template_argument_deduction_for_class_templates | { | | template | struct pair | { | pair (T1 p1, T2 p2) | : m1 {p1}, | m2 {p2} | {} | | T1 m1; | T2 m2; | }; | | void f() | { | [[maybe_unused]] auto p = pair{13, 42u}; | } | | } | | namespace test_non_type_auto_template_parameters | { | | template | struct B | {}; | | B<5> b1; | B<'a'> b2; | | } | | namespace test_structured_bindings | { | | int arr[2] = { 1, 2 }; | std::pair pr = { 1, 2 }; | | auto f1() -> int(&)[2] | { | return arr; | } | | auto f2() -> std::pair& | { | return pr; | } | | struct S | { | int x1 : 2; | volatile double y1; | }; | | S f3() | { | return {}; | } | | auto [ x1, y1 ] = f1(); | auto& [ xr1, yr1 ] = f1(); | auto [ x2, y2 ] = f2(); | auto& [ xr2, yr2 ] = f2(); | const auto [ x3, y3 ] = f3(); | | } | | namespace test_exception_spec_type_system | { | | struct Good {}; | struct Bad {}; | | void g1() noexcept; | void g2(); | | template | Bad | f(T*, T*); | | template | Good | f(T1*, T2*); | | static_assert (std::is_same_v); | | } | | namespace test_inline_variables | { | | template void f(T) | {} | | template inline T g(T) | { | return T{}; | } | | template<> inline void f<>(int) | {} | | template<> int g<>(int) | { | return 5; | } | | } | | } // namespace cxx17 | | #endif // __cplusplus < 201703L | | | configure:6061: result: no configure:5258: checking whether /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ supports C++17 features with -std=c++1z configure:6052: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=c++1z -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 conftest.cpp:429:2: error: #error "This is not a C++17 compiler" #error "This is not a C++17 compiler" ^~~~~ configure:6052: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | /* 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" | | #else | | namespace cxx11 | { | | namespace test_static_assert | { | | template | struct check | { | static_assert(sizeof(int) <= sizeof(T), "not big enough"); | }; | | } | | namespace test_final_override | { | | struct Base | { | virtual void f() {} | }; | | struct Derived : public Base | { | virtual void f() override {} | }; | | } | | namespace test_double_right_angle_brackets | { | | template < typename T > | struct check {}; | | typedef check single_type; | typedef check> double_type; | typedef check>> triple_type; | typedef check>>> 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 | { | 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::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::value == false, ""); | auto ac = c; | auto av = v; | auto sumi = ac + av + 'x'; | auto sumf = ac + av + 1.0; | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::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 | struct sum; | | template | struct sum | { | static constexpr auto value = N0 + sum::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 | using member = typename T::member_type; | | template | void func(...) {} | | template | void func(member*) {} | | void test(); | | void test() { func(0); } | | } | | } // namespace cxx11 | | #endif // __cplusplus >= 201103L | | | | | // If the compiler admits that it is not ready for C++14, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201402L | | #error "This is not a C++14 compiler" | | #else | | namespace cxx14 | { | | namespace test_polymorphic_lambdas | { | | int | test() | { | const auto lambda = [](auto&&... args){ | const auto istiny = [](auto x){ | return (sizeof(x) == 1UL) ? 1 : 0; | }; | const int aretiny[] = { istiny(args)... }; | return aretiny[0]; | }; | return lambda(1, 1L, 1.0f, '1'); | } | | } | | namespace test_binary_literals | { | | constexpr auto ivii = 0b0000000000101010; | static_assert(ivii == 42, "wrong value"); | | } | | namespace test_generalized_constexpr | { | | template < typename CharT > | constexpr unsigned long | strlen_c(const CharT *const s) noexcept | { | auto length = 0UL; | for (auto p = s; *p; ++p) | ++length; | return length; | } | | static_assert(strlen_c("") == 0UL, ""); | static_assert(strlen_c("x") == 1UL, ""); | static_assert(strlen_c("test") == 4UL, ""); | static_assert(strlen_c("another\0test") == 7UL, ""); | | } | | namespace test_lambda_init_capture | { | | int | test() | { | auto x = 0; | const auto lambda1 = [a = x](int b){ return a + b; }; | const auto lambda2 = [a = lambda1(x)](){ return a; }; | return lambda2(); | } | | } | | namespace test_digit_separators | { | | constexpr auto ten_million = 100'000'000; | static_assert(ten_million == 100000000, ""); | | } | | namespace test_return_type_deduction | { | | auto f(int& x) { return x; } | decltype(auto) g(int& x) { return x; } | | template < typename T1, typename T2 > | struct is_same | { | static constexpr auto value = false; | }; | | template < typename T > | struct is_same | { | static constexpr auto value = true; | }; | | int | test() | { | auto x = 0; | static_assert(is_same::value, ""); | static_assert(is_same::value, ""); | return x; | } | | } | | } // namespace cxx14 | | #endif // __cplusplus >= 201402L | | | | | // If the compiler admits that it is not ready for C++17, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201703L | | #error "This is not a C++17 compiler" | | #else | | #include | #include | #include | | namespace cxx17 | { | | namespace test_constexpr_lambdas | { | | constexpr int foo = [](){return 42;}(); | | } | | namespace test::nested_namespace::definitions | { | | } | | namespace test_fold_expression | { | | template | int multiply(Args... args) | { | return (args * ... * 1); | } | | template | bool all(Args... args) | { | return (args && ...); | } | | } | | namespace test_extended_static_assert | { | | static_assert (true); | | } | | namespace test_auto_brace_init_list | { | | auto foo = {5}; | auto bar {5}; | | static_assert(std::is_same, decltype(foo)>::value); | static_assert(std::is_same::value); | } | | namespace test_typename_in_template_template_parameter | { | | template typename X> struct D; | | } | | namespace test_fallthrough_nodiscard_maybe_unused_attributes | { | | int f1() | { | return 42; | } | | [[nodiscard]] int f2() | { | [[maybe_unused]] auto unused = f1(); | | switch (f1()) | { | case 17: | f1(); | [[fallthrough]]; | case 42: | f1(); | } | return f1(); | } | | } | | namespace test_extended_aggregate_initialization | { | | struct base1 | { | int b1, b2 = 42; | }; | | struct base2 | { | base2() { | b3 = 42; | } | int b3; | }; | | struct derived : base1, base2 | { | int d; | }; | | derived d1 {{1, 2}, {}, 4}; // full initialization | derived d2 {{}, {}, 4}; // value-initialized bases | | } | | namespace test_general_range_based_for_loop | { | | struct iter | { | int i; | | int& operator* () | { | return i; | } | | const int& operator* () const | { | return i; | } | | iter& operator++() | { | ++i; | return *this; | } | }; | | struct sentinel | { | int i; | }; | | bool operator== (const iter& i, const sentinel& s) | { | return i.i == s.i; | } | | bool operator!= (const iter& i, const sentinel& s) | { | return !(i == s); | } | | struct range | { | iter begin() const | { | return {0}; | } | | sentinel end() const | { | return {5}; | } | }; | | void f() | { | range r {}; | | for (auto i : r) | { | [[maybe_unused]] auto v = i; | } | } | | } | | namespace test_lambda_capture_asterisk_this_by_value | { | | struct t | { | int i; | int foo() | { | return [*this]() | { | return i; | }(); | } | }; | | } | | namespace test_enum_class_construction | { | | enum class byte : unsigned char | {}; | | byte foo {42}; | | } | | namespace test_constexpr_if | { | | template | int f () | { | if constexpr(cond) | { | return 13; | } | else | { | return 42; | } | } | | } | | namespace test_selection_statement_with_initializer | { | | int f() | { | return 13; | } | | int f2() | { | if (auto i = f(); i > 0) | { | return 3; | } | | switch (auto i = f(); i + 4) | { | case 17: | return 2; | | default: | return 1; | } | } | | } | | namespace test_template_argument_deduction_for_class_templates | { | | template | struct pair | { | pair (T1 p1, T2 p2) | : m1 {p1}, | m2 {p2} | {} | | T1 m1; | T2 m2; | }; | | void f() | { | [[maybe_unused]] auto p = pair{13, 42u}; | } | | } | | namespace test_non_type_auto_template_parameters | { | | template | struct B | {}; | | B<5> b1; | B<'a'> b2; | | } | | namespace test_structured_bindings | { | | int arr[2] = { 1, 2 }; | std::pair pr = { 1, 2 }; | | auto f1() -> int(&)[2] | { | return arr; | } | | auto f2() -> std::pair& | { | return pr; | } | | struct S | { | int x1 : 2; | volatile double y1; | }; | | S f3() | { | return {}; | } | | auto [ x1, y1 ] = f1(); | auto& [ xr1, yr1 ] = f1(); | auto [ x2, y2 ] = f2(); | auto& [ xr2, yr2 ] = f2(); | const auto [ x3, y3 ] = f3(); | | } | | namespace test_exception_spec_type_system | { | | struct Good {}; | struct Bad {}; | | void g1() noexcept; | void g2(); | | template | Bad | f(T*, T*); | | template | Good | f(T1*, T2*); | | static_assert (std::is_same_v); | | } | | namespace test_inline_variables | { | | template void f(T) | {} | | template inline T g(T) | { | return T{}; | } | | template<> inline void f<>(int) | {} | | template<> int g<>(int) | { | return 5; | } | | } | | } // namespace cxx17 | | #endif // __cplusplus < 201703L | | | configure:6061: result: no configure:5258: checking whether /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ supports C++17 features with +std=c++1z configure:6052: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ +std=c++1z -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 mips-mti-linux-gnu-g++: error: +std=c++1z: No such file or directory configure:6052: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | /* 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" | | #else | | namespace cxx11 | { | | namespace test_static_assert | { | | template | struct check | { | static_assert(sizeof(int) <= sizeof(T), "not big enough"); | }; | | } | | namespace test_final_override | { | | struct Base | { | virtual void f() {} | }; | | struct Derived : public Base | { | virtual void f() override {} | }; | | } | | namespace test_double_right_angle_brackets | { | | template < typename T > | struct check {}; | | typedef check single_type; | typedef check> double_type; | typedef check>> triple_type; | typedef check>>> 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 | { | 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::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::value == false, ""); | auto ac = c; | auto av = v; | auto sumi = ac + av + 'x'; | auto sumf = ac + av + 1.0; | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::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 | struct sum; | | template | struct sum | { | static constexpr auto value = N0 + sum::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 | using member = typename T::member_type; | | template | void func(...) {} | | template | void func(member*) {} | | void test(); | | void test() { func(0); } | | } | | } // namespace cxx11 | | #endif // __cplusplus >= 201103L | | | | | // If the compiler admits that it is not ready for C++14, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201402L | | #error "This is not a C++14 compiler" | | #else | | namespace cxx14 | { | | namespace test_polymorphic_lambdas | { | | int | test() | { | const auto lambda = [](auto&&... args){ | const auto istiny = [](auto x){ | return (sizeof(x) == 1UL) ? 1 : 0; | }; | const int aretiny[] = { istiny(args)... }; | return aretiny[0]; | }; | return lambda(1, 1L, 1.0f, '1'); | } | | } | | namespace test_binary_literals | { | | constexpr auto ivii = 0b0000000000101010; | static_assert(ivii == 42, "wrong value"); | | } | | namespace test_generalized_constexpr | { | | template < typename CharT > | constexpr unsigned long | strlen_c(const CharT *const s) noexcept | { | auto length = 0UL; | for (auto p = s; *p; ++p) | ++length; | return length; | } | | static_assert(strlen_c("") == 0UL, ""); | static_assert(strlen_c("x") == 1UL, ""); | static_assert(strlen_c("test") == 4UL, ""); | static_assert(strlen_c("another\0test") == 7UL, ""); | | } | | namespace test_lambda_init_capture | { | | int | test() | { | auto x = 0; | const auto lambda1 = [a = x](int b){ return a + b; }; | const auto lambda2 = [a = lambda1(x)](){ return a; }; | return lambda2(); | } | | } | | namespace test_digit_separators | { | | constexpr auto ten_million = 100'000'000; | static_assert(ten_million == 100000000, ""); | | } | | namespace test_return_type_deduction | { | | auto f(int& x) { return x; } | decltype(auto) g(int& x) { return x; } | | template < typename T1, typename T2 > | struct is_same | { | static constexpr auto value = false; | }; | | template < typename T > | struct is_same | { | static constexpr auto value = true; | }; | | int | test() | { | auto x = 0; | static_assert(is_same::value, ""); | static_assert(is_same::value, ""); | return x; | } | | } | | } // namespace cxx14 | | #endif // __cplusplus >= 201402L | | | | | // If the compiler admits that it is not ready for C++17, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201703L | | #error "This is not a C++17 compiler" | | #else | | #include | #include | #include | | namespace cxx17 | { | | namespace test_constexpr_lambdas | { | | constexpr int foo = [](){return 42;}(); | | } | | namespace test::nested_namespace::definitions | { | | } | | namespace test_fold_expression | { | | template | int multiply(Args... args) | { | return (args * ... * 1); | } | | template | bool all(Args... args) | { | return (args && ...); | } | | } | | namespace test_extended_static_assert | { | | static_assert (true); | | } | | namespace test_auto_brace_init_list | { | | auto foo = {5}; | auto bar {5}; | | static_assert(std::is_same, decltype(foo)>::value); | static_assert(std::is_same::value); | } | | namespace test_typename_in_template_template_parameter | { | | template typename X> struct D; | | } | | namespace test_fallthrough_nodiscard_maybe_unused_attributes | { | | int f1() | { | return 42; | } | | [[nodiscard]] int f2() | { | [[maybe_unused]] auto unused = f1(); | | switch (f1()) | { | case 17: | f1(); | [[fallthrough]]; | case 42: | f1(); | } | return f1(); | } | | } | | namespace test_extended_aggregate_initialization | { | | struct base1 | { | int b1, b2 = 42; | }; | | struct base2 | { | base2() { | b3 = 42; | } | int b3; | }; | | struct derived : base1, base2 | { | int d; | }; | | derived d1 {{1, 2}, {}, 4}; // full initialization | derived d2 {{}, {}, 4}; // value-initialized bases | | } | | namespace test_general_range_based_for_loop | { | | struct iter | { | int i; | | int& operator* () | { | return i; | } | | const int& operator* () const | { | return i; | } | | iter& operator++() | { | ++i; | return *this; | } | }; | | struct sentinel | { | int i; | }; | | bool operator== (const iter& i, const sentinel& s) | { | return i.i == s.i; | } | | bool operator!= (const iter& i, const sentinel& s) | { | return !(i == s); | } | | struct range | { | iter begin() const | { | return {0}; | } | | sentinel end() const | { | return {5}; | } | }; | | void f() | { | range r {}; | | for (auto i : r) | { | [[maybe_unused]] auto v = i; | } | } | | } | | namespace test_lambda_capture_asterisk_this_by_value | { | | struct t | { | int i; | int foo() | { | return [*this]() | { | return i; | }(); | } | }; | | } | | namespace test_enum_class_construction | { | | enum class byte : unsigned char | {}; | | byte foo {42}; | | } | | namespace test_constexpr_if | { | | template | int f () | { | if constexpr(cond) | { | return 13; | } | else | { | return 42; | } | } | | } | | namespace test_selection_statement_with_initializer | { | | int f() | { | return 13; | } | | int f2() | { | if (auto i = f(); i > 0) | { | return 3; | } | | switch (auto i = f(); i + 4) | { | case 17: | return 2; | | default: | return 1; | } | } | | } | | namespace test_template_argument_deduction_for_class_templates | { | | template | struct pair | { | pair (T1 p1, T2 p2) | : m1 {p1}, | m2 {p2} | {} | | T1 m1; | T2 m2; | }; | | void f() | { | [[maybe_unused]] auto p = pair{13, 42u}; | } | | } | | namespace test_non_type_auto_template_parameters | { | | template | struct B | {}; | | B<5> b1; | B<'a'> b2; | | } | | namespace test_structured_bindings | { | | int arr[2] = { 1, 2 }; | std::pair pr = { 1, 2 }; | | auto f1() -> int(&)[2] | { | return arr; | } | | auto f2() -> std::pair& | { | return pr; | } | | struct S | { | int x1 : 2; | volatile double y1; | }; | | S f3() | { | return {}; | } | | auto [ x1, y1 ] = f1(); | auto& [ xr1, yr1 ] = f1(); | auto [ x2, y2 ] = f2(); | auto& [ xr2, yr2 ] = f2(); | const auto [ x3, y3 ] = f3(); | | } | | namespace test_exception_spec_type_system | { | | struct Good {}; | struct Bad {}; | | void g1() noexcept; | void g2(); | | template | Bad | f(T*, T*); | | template | Good | f(T1*, T2*); | | static_assert (std::is_same_v); | | } | | namespace test_inline_variables | { | | template void f(T) | {} | | template inline T g(T) | { | return T{}; | } | | template<> inline void f<>(int) | {} | | template<> int g<>(int) | { | return 5; | } | | } | | } // namespace cxx17 | | #endif // __cplusplus < 201703L | | | configure:6061: result: no configure:5258: checking whether /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ supports C++17 features with -h std=c++1z configure:6052: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -h std=c++1z -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 conftest.cpp:429:2: error: #error "This is not a C++17 compiler" #error "This is not a C++17 compiler" ^~~~~ configure:6052: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | /* 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" | | #else | | namespace cxx11 | { | | namespace test_static_assert | { | | template | struct check | { | static_assert(sizeof(int) <= sizeof(T), "not big enough"); | }; | | } | | namespace test_final_override | { | | struct Base | { | virtual void f() {} | }; | | struct Derived : public Base | { | virtual void f() override {} | }; | | } | | namespace test_double_right_angle_brackets | { | | template < typename T > | struct check {}; | | typedef check single_type; | typedef check> double_type; | typedef check>> triple_type; | typedef check>>> 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 | { | 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::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::value == false, ""); | auto ac = c; | auto av = v; | auto sumi = ac + av + 'x'; | auto sumf = ac + av + 1.0; | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == true, ""); | static_assert(is_same::value == false, ""); | static_assert(is_same::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 | struct sum; | | template | struct sum | { | static constexpr auto value = N0 + sum::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 | using member = typename T::member_type; | | template | void func(...) {} | | template | void func(member*) {} | | void test(); | | void test() { func(0); } | | } | | } // namespace cxx11 | | #endif // __cplusplus >= 201103L | | | | | // If the compiler admits that it is not ready for C++14, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201402L | | #error "This is not a C++14 compiler" | | #else | | namespace cxx14 | { | | namespace test_polymorphic_lambdas | { | | int | test() | { | const auto lambda = [](auto&&... args){ | const auto istiny = [](auto x){ | return (sizeof(x) == 1UL) ? 1 : 0; | }; | const int aretiny[] = { istiny(args)... }; | return aretiny[0]; | }; | return lambda(1, 1L, 1.0f, '1'); | } | | } | | namespace test_binary_literals | { | | constexpr auto ivii = 0b0000000000101010; | static_assert(ivii == 42, "wrong value"); | | } | | namespace test_generalized_constexpr | { | | template < typename CharT > | constexpr unsigned long | strlen_c(const CharT *const s) noexcept | { | auto length = 0UL; | for (auto p = s; *p; ++p) | ++length; | return length; | } | | static_assert(strlen_c("") == 0UL, ""); | static_assert(strlen_c("x") == 1UL, ""); | static_assert(strlen_c("test") == 4UL, ""); | static_assert(strlen_c("another\0test") == 7UL, ""); | | } | | namespace test_lambda_init_capture | { | | int | test() | { | auto x = 0; | const auto lambda1 = [a = x](int b){ return a + b; }; | const auto lambda2 = [a = lambda1(x)](){ return a; }; | return lambda2(); | } | | } | | namespace test_digit_separators | { | | constexpr auto ten_million = 100'000'000; | static_assert(ten_million == 100000000, ""); | | } | | namespace test_return_type_deduction | { | | auto f(int& x) { return x; } | decltype(auto) g(int& x) { return x; } | | template < typename T1, typename T2 > | struct is_same | { | static constexpr auto value = false; | }; | | template < typename T > | struct is_same | { | static constexpr auto value = true; | }; | | int | test() | { | auto x = 0; | static_assert(is_same::value, ""); | static_assert(is_same::value, ""); | return x; | } | | } | | } // namespace cxx14 | | #endif // __cplusplus >= 201402L | | | | | // If the compiler admits that it is not ready for C++17, why torture it? | // Hopefully, this will speed up the test. | | #ifndef __cplusplus | | #error "This is not a C++ compiler" | | #elif __cplusplus < 201703L | | #error "This is not a C++17 compiler" | | #else | | #include | #include | #include | | namespace cxx17 | { | | namespace test_constexpr_lambdas | { | | constexpr int foo = [](){return 42;}(); | | } | | namespace test::nested_namespace::definitions | { | | } | | namespace test_fold_expression | { | | template | int multiply(Args... args) | { | return (args * ... * 1); | } | | template | bool all(Args... args) | { | return (args && ...); | } | | } | | namespace test_extended_static_assert | { | | static_assert (true); | | } | | namespace test_auto_brace_init_list | { | | auto foo = {5}; | auto bar {5}; | | static_assert(std::is_same, decltype(foo)>::value); | static_assert(std::is_same::value); | } | | namespace test_typename_in_template_template_parameter | { | | template typename X> struct D; | | } | | namespace test_fallthrough_nodiscard_maybe_unused_attributes | { | | int f1() | { | return 42; | } | | [[nodiscard]] int f2() | { | [[maybe_unused]] auto unused = f1(); | | switch (f1()) | { | case 17: | f1(); | [[fallthrough]]; | case 42: | f1(); | } | return f1(); | } | | } | | namespace test_extended_aggregate_initialization | { | | struct base1 | { | int b1, b2 = 42; | }; | | struct base2 | { | base2() { | b3 = 42; | } | int b3; | }; | | struct derived : base1, base2 | { | int d; | }; | | derived d1 {{1, 2}, {}, 4}; // full initialization | derived d2 {{}, {}, 4}; // value-initialized bases | | } | | namespace test_general_range_based_for_loop | { | | struct iter | { | int i; | | int& operator* () | { | return i; | } | | const int& operator* () const | { | return i; | } | | iter& operator++() | { | ++i; | return *this; | } | }; | | struct sentinel | { | int i; | }; | | bool operator== (const iter& i, const sentinel& s) | { | return i.i == s.i; | } | | bool operator!= (const iter& i, const sentinel& s) | { | return !(i == s); | } | | struct range | { | iter begin() const | { | return {0}; | } | | sentinel end() const | { | return {5}; | } | }; | | void f() | { | range r {}; | | for (auto i : r) | { | [[maybe_unused]] auto v = i; | } | } | | } | | namespace test_lambda_capture_asterisk_this_by_value | { | | struct t | { | int i; | int foo() | { | return [*this]() | { | return i; | }(); | } | }; | | } | | namespace test_enum_class_construction | { | | enum class byte : unsigned char | {}; | | byte foo {42}; | | } | | namespace test_constexpr_if | { | | template | int f () | { | if constexpr(cond) | { | return 13; | } | else | { | return 42; | } | } | | } | | namespace test_selection_statement_with_initializer | { | | int f() | { | return 13; | } | | int f2() | { | if (auto i = f(); i > 0) | { | return 3; | } | | switch (auto i = f(); i + 4) | { | case 17: | return 2; | | default: | return 1; | } | } | | } | | namespace test_template_argument_deduction_for_class_templates | { | | template | struct pair | { | pair (T1 p1, T2 p2) | : m1 {p1}, | m2 {p2} | {} | | T1 m1; | T2 m2; | }; | | void f() | { | [[maybe_unused]] auto p = pair{13, 42u}; | } | | } | | namespace test_non_type_auto_template_parameters | { | | template | struct B | {}; | | B<5> b1; | B<'a'> b2; | | } | | namespace test_structured_bindings | { | | int arr[2] = { 1, 2 }; | std::pair pr = { 1, 2 }; | | auto f1() -> int(&)[2] | { | return arr; | } | | auto f2() -> std::pair& | { | return pr; | } | | struct S | { | int x1 : 2; | volatile double y1; | }; | | S f3() | { | return {}; | } | | auto [ x1, y1 ] = f1(); | auto& [ xr1, yr1 ] = f1(); | auto [ x2, y2 ] = f2(); | auto& [ xr2, yr2 ] = f2(); | const auto [ x3, y3 ] = f3(); | | } | | namespace test_exception_spec_type_system | { | | struct Good {}; | struct Bad {}; | | void g1() noexcept; | void g2(); | | template | Bad | f(T*, T*); | | template | Good | f(T1*, T2*); | | static_assert (std::is_same_v); | | } | | namespace test_inline_variables | { | | template void f(T) | {} | | template inline T g(T) | { | return T{}; | } | | template<> inline void f<>(int) | {} | | template<> int g<>(int) | { | return 5; | } | | } | | } // namespace cxx17 | | #endif // __cplusplus < 201703L | | | configure:6061: result: no configure:6090: No compiler with C++17 support was found configure:6123: checking whether /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ supports C++14 features with -std=gnu++14 configure:6539: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:6539: $? = 0 configure:6548: result: yes configure:7139: checking how to run the C++ preprocessor configure:7166: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -E -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp configure:7166: $? = 0 configure:7180: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -E -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp conftest.cpp:21:28: fatal error: ac_nonexistent.h: No such file or directory #include ^ compilation terminated. configure:7180: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | #define HAVE_CXX14 1 | #define HAVE_CXX14 1 | #define HAVE_CXX11 1 | #define SYSCONF_LOC "/etc" | #define LOCALSTATE_DIR "/var" | #define BIN_LOC "/usr/bin" | #define LIB_LOC "/usr/lib" | #define DATA_LOC "/usr/share" | /* end confdefs.h. */ | #include configure:7205: result: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -E configure:7225: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -E -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp configure:7225: $? = 0 configure:7239: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -E -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp conftest.cpp:21:28: fatal error: ac_nonexistent.h: No such file or directory #include ^ compilation terminated. configure:7239: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | #define HAVE_CXX14 1 | #define HAVE_CXX14 1 | #define HAVE_CXX11 1 | #define SYSCONF_LOC "/etc" | #define LOCALSTATE_DIR "/var" | #define BIN_LOC "/usr/bin" | #define LIB_LOC "/usr/lib" | #define DATA_LOC "/usr/share" | /* end confdefs.h. */ | #include configure:7268: checking for grep that handles long lines and -e configure:7326: result: /bin/grep configure:7331: checking for egrep configure:7393: result: /bin/grep -E configure:7398: checking for ANSI C header files configure:7418: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:7418: $? = 0 configure:7502: result: yes configure:7515: checking for sys/types.h configure:7515: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:7515: $? = 0 configure:7515: result: yes configure:7515: checking for sys/stat.h configure:7515: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:7515: $? = 0 configure:7515: result: yes configure:7515: checking for stdlib.h configure:7515: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:7515: $? = 0 configure:7515: result: yes configure:7515: checking for string.h configure:7515: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:7515: $? = 0 configure:7515: result: yes configure:7515: checking for memory.h configure:7515: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:7515: $? = 0 configure:7515: result: yes configure:7515: checking for strings.h configure:7515: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:7515: $? = 0 configure:7515: result: yes configure:7515: checking for inttypes.h configure:7515: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:7515: $? = 0 configure:7515: result: yes configure:7515: checking for stdint.h configure:7515: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:7515: $? = 0 configure:7515: result: yes configure:7515: checking for unistd.h configure:7515: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:7515: $? = 0 configure:7515: result: yes configure:7527: checking whether byte ordering is bigendian configure:7733: result: no configure:7858: WARNING: Disabling Python and Python-related tools configure:8162: checking for stdint.h configure:8162: result: yes configure:8196: checking for strerror_r() return configure:8216: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp >&5 conftest.cpp: In function 'int main()': conftest.cpp:44:27: error: invalid conversion from 'char*' to 'int' [-fpermissive] r = strerror_r(1, (char *) NULL, 0); ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ configure:8216: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | #define HAVE_CXX14 1 | #define HAVE_CXX14 1 | #define HAVE_CXX11 1 | #define SYSCONF_LOC "/etc" | #define LOCALSTATE_DIR "/var" | #define BIN_LOC "/usr/bin" | #define LIB_LOC "/usr/lib" | #define DATA_LOC "/usr/share" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define DEBUG_MUTEX_NAME 1 | #define TE_TYPE_SAFETY 1 | #define DISABLE_BACKWARD 1 | #define HAVE_STDINT_H 1 | /* end confdefs.h. */ | | #include | | int | main () | { | | int r; | | r = strerror_r(1, (char *) NULL, 0); | return 0; | | ; | return 0; | } configure:8231: result: char * configure:8239: checking for accept() addrlen type configure:8266: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp >&5 configure:8266: $? = 0 configure:8274: result: socklen_t configure:8286: checking for pipe2 configure:8308: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp >&5 conftest.cpp: In function 'int main()': conftest.cpp:46:25: warning: ignoring return value of 'int pipe2(int*, int)', declared with attribute warn_unused_result [-Wunused-result] pipe2(fd, flags); ^ configure:8308: $? = 0 configure:8316: result: yes configure:8335: checking for special C compiler options needed for large files configure:8380: result: no configure:8386: checking for _FILE_OFFSET_BITS value needed for large files configure:8411: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:8411: $? = 0 configure:8443: result: no configure:8531: checking for dlopen in -ldl configure:8556: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -ldl >&5 /tmp/ccC8eGED.o: In function `main': conftest.cpp:(.text.startup+0x8): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking configure:8556: $? = 0 configure:8565: result: yes configure:8580: checking for deflate in -lz configure:8605: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -lz -ldl >&5 configure:8605: $? = 0 configure:8614: result: yes configure:8625: checking for libatomic configure:8643: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -ldl -lz -latomic >&5 configure:8643: $? = 0 configure:8651: result: yes configure:8665: checking for pthread_mutex_timedlock configure:8684: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -ldl -lz -latomic >&5 /tmp/ccWcqkLl.o: In function `main': conftest.cpp:(.text.startup+0xc): undefined reference to `pthread_mutex_timedlock' collect2: error: ld returned 1 exit status configure:8684: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | #define HAVE_CXX14 1 | #define HAVE_CXX14 1 | #define HAVE_CXX11 1 | #define SYSCONF_LOC "/etc" | #define LOCALSTATE_DIR "/var" | #define BIN_LOC "/usr/bin" | #define LIB_LOC "/usr/lib" | #define DATA_LOC "/usr/share" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define DEBUG_MUTEX_NAME 1 | #define TE_TYPE_SAFETY 1 | #define DISABLE_BACKWARD 1 | #define HAVE_STDINT_H 1 | #define STRERROR_R_T char * | #define HAVE_SOCKLEN_T 1 | #define HAVE_PIPE2 1 | /* end confdefs.h. */ | | #include | #include | | int | main () | { | | pthread_mutex_timedlock(NULL, NULL); | return 0; | | ; | return 0; | } configure:8698: result: no configure:8703: checking for libm math function in std libs configure:8725: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -ldl -lz -latomic >&5 configure:8725: $? = 0 configure:8780: result: yes configure:8790: checking for main in -lstdc++ configure:8809: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -lstdc++ -ldl -lz -latomic >&5 configure:8809: $? = 0 configure:8818: result: yes configure:8853: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -ldl -lz -latomic >&5 configure:8853: $? = 0 configure:8881: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -ldl -lz -latomic >&5 configure:8881: $? = 0 configure:8894: checking for group 'root' configure:8901: result: yes configure:8910: checking for setproctitle configure:8910: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -ldl -lz -latomic >&5 /tmp/ccxRTw76.o: In function `main': conftest.cpp:(.text.startup+0x8): undefined reference to `setproctitle' collect2: error: ld returned 1 exit status configure:8910: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | #define HAVE_CXX14 1 | #define HAVE_CXX14 1 | #define HAVE_CXX11 1 | #define SYSCONF_LOC "/etc" | #define LOCALSTATE_DIR "/var" | #define BIN_LOC "/usr/bin" | #define LIB_LOC "/usr/lib" | #define DATA_LOC "/usr/share" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define DEBUG_MUTEX_NAME 1 | #define TE_TYPE_SAFETY 1 | #define DISABLE_BACKWARD 1 | #define HAVE_STDINT_H 1 | #define STRERROR_R_T char * | #define HAVE_SOCKLEN_T 1 | #define HAVE_PIPE2 1 | /* end confdefs.h. */ | /* Define setproctitle to an innocuous variant, in case declares setproctitle. | For example, HP-UX 11i declares gettimeofday. */ | #define setproctitle innocuous_setproctitle | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char setproctitle (); below. | Prefer to if __STDC__ is defined, since | exists even on freestanding compilers. */ | | #ifdef __STDC__ | # include | #else | # include | #endif | | #undef setproctitle | | /* Override any GCC internal prototype to avoid an error. | Use char because int might match the return type of a GCC | builtin and then its argument prototype would still apply. */ | #ifdef __cplusplus | extern "C" | #endif | char setproctitle (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_setproctitle || defined __stub___setproctitle | choke me | #endif | | int | main () | { | return setproctitle (); | ; | return 0; | } configure:8910: result: no configure:8921: checking libutil.h usability configure:8921: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 conftest.cpp:71:21: fatal error: libutil.h: No such file or directory #include ^ compilation terminated. configure:8921: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | #define HAVE_CXX14 1 | #define HAVE_CXX14 1 | #define HAVE_CXX11 1 | #define SYSCONF_LOC "/etc" | #define LOCALSTATE_DIR "/var" | #define BIN_LOC "/usr/bin" | #define LIB_LOC "/usr/lib" | #define DATA_LOC "/usr/share" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define DEBUG_MUTEX_NAME 1 | #define TE_TYPE_SAFETY 1 | #define DISABLE_BACKWARD 1 | #define HAVE_STDINT_H 1 | #define STRERROR_R_T char * | #define HAVE_SOCKLEN_T 1 | #define HAVE_PIPE2 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef STDC_HEADERS | # include | # include | #else | # ifdef HAVE_STDLIB_H | # include | # endif | #endif | #ifdef HAVE_STRING_H | # if !defined STDC_HEADERS && defined HAVE_MEMORY_H | # include | # endif | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:8921: result: no configure:8921: checking libutil.h presence configure:8921: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -E -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp conftest.cpp:38:21: fatal error: libutil.h: No such file or directory #include ^ compilation terminated. configure:8921: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | #define HAVE_CXX14 1 | #define HAVE_CXX14 1 | #define HAVE_CXX11 1 | #define SYSCONF_LOC "/etc" | #define LOCALSTATE_DIR "/var" | #define BIN_LOC "/usr/bin" | #define LIB_LOC "/usr/lib" | #define DATA_LOC "/usr/share" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define DEBUG_MUTEX_NAME 1 | #define TE_TYPE_SAFETY 1 | #define DISABLE_BACKWARD 1 | #define HAVE_STDINT_H 1 | #define STRERROR_R_T char * | #define HAVE_SOCKLEN_T 1 | #define HAVE_PIPE2 1 | /* end confdefs.h. */ | #include configure:8921: result: no configure:8921: checking for libutil.h configure:8921: result: no configure:8931: checking for setproctitle in -lutil configure:8956: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -lutil -ldl -lz -latomic >&5 /tmp/ccHwm3HJ.o: In function `main': conftest.cpp:(.text.startup+0x8): undefined reference to `setproctitle' collect2: error: ld returned 1 exit status configure:8956: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | #define HAVE_CXX14 1 | #define HAVE_CXX14 1 | #define HAVE_CXX11 1 | #define SYSCONF_LOC "/etc" | #define LOCALSTATE_DIR "/var" | #define BIN_LOC "/usr/bin" | #define LIB_LOC "/usr/lib" | #define DATA_LOC "/usr/share" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define DEBUG_MUTEX_NAME 1 | #define TE_TYPE_SAFETY 1 | #define DISABLE_BACKWARD 1 | #define HAVE_STDINT_H 1 | #define STRERROR_R_T char * | #define HAVE_SOCKLEN_T 1 | #define HAVE_PIPE2 1 | /* end confdefs.h. */ | | /* Override any GCC internal prototype to avoid an error. | Use char because int might match the return type of a GCC | builtin and then its argument prototype would still apply. */ | #ifdef __cplusplus | extern "C" | #endif | char setproctitle (); | int | main () | { | return setproctitle (); | ; | return 0; | } configure:8965: result: no configure:8982: checking sys/pstat.h usability configure:8982: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 conftest.cpp:71:23: fatal error: sys/pstat.h: No such file or directory #include ^ compilation terminated. configure:8982: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | #define HAVE_CXX14 1 | #define HAVE_CXX14 1 | #define HAVE_CXX11 1 | #define SYSCONF_LOC "/etc" | #define LOCALSTATE_DIR "/var" | #define BIN_LOC "/usr/bin" | #define LIB_LOC "/usr/lib" | #define DATA_LOC "/usr/share" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define DEBUG_MUTEX_NAME 1 | #define TE_TYPE_SAFETY 1 | #define DISABLE_BACKWARD 1 | #define HAVE_STDINT_H 1 | #define STRERROR_R_T char * | #define HAVE_SOCKLEN_T 1 | #define HAVE_PIPE2 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef STDC_HEADERS | # include | # include | #else | # ifdef HAVE_STDLIB_H | # include | # endif | #endif | #ifdef HAVE_STRING_H | # if !defined STDC_HEADERS && defined HAVE_MEMORY_H | # include | # endif | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:8982: result: no configure:8982: checking sys/pstat.h presence configure:8982: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -E -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp conftest.cpp:38:23: fatal error: sys/pstat.h: No such file or directory #include ^ compilation terminated. configure:8982: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define SYS_LINUX 1 | #define GCC_VERSION_MAJOR 6 | #define GCC_VERSION_MINOR 3 | #define GCC_VERSION_PATCH 0 | #define HAVE_CXX14 1 | #define HAVE_CXX14 1 | #define HAVE_CXX11 1 | #define SYSCONF_LOC "/etc" | #define LOCALSTATE_DIR "/var" | #define BIN_LOC "/usr/bin" | #define LIB_LOC "/usr/lib" | #define DATA_LOC "/usr/share" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define DEBUG_MUTEX_NAME 1 | #define TE_TYPE_SAFETY 1 | #define DISABLE_BACKWARD 1 | #define HAVE_STDINT_H 1 | #define STRERROR_R_T char * | #define HAVE_SOCKLEN_T 1 | #define HAVE_PIPE2 1 | /* end confdefs.h. */ | #include configure:8982: result: no configure:8982: checking for sys/pstat.h configure:8982: result: no conftest.cpp:38:22: fatal error: sys/exec.h: No such file or directory #include ^ compilation terminated. configure:9042: checking whether __progname and __progname_full are available configure:9058: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -ldl -lz -latomic >&5 conftest.cpp: In function 'int main()': conftest.cpp:42:14: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] __progname = "foo"; __progname_full = "foo bar"; ^~~~~ conftest.cpp:42:39: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] __progname = "foo"; __progname_full = "foo bar"; ^~~~~~~~~ configure:9058: $? = 0 configure:9066: result: yes configure:9075: checking which argv replacement method to use configure:9097: result: writeable configure:9165: checking for linux/wireless.h configure:9165: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.cpp >&5 configure:9165: $? = 0 configure:9165: result: yes configure:9183: checking that linux/wireless.h is what we expect configure:9209: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -ldl -lz -latomic >&5 configure:9209: $? = 0 configure:9221: result: yes configure:9230: checking can we use iw_freq.flags configure:9253: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static -rdynamic conftest.cpp -ldl -lz -latomic >&5 configure:9253: $? = 0 configure:9265: result: yes configure:9921: checking pkg-config is at least version 0.9.0 configure:9924: result: yes configure:10102: checking for libpcap configure:10109: $PKG_CONFIG --exists --print-errors "libpcap" configure:10112: $? = 0 configure:10126: $PKG_CONFIG --exists --print-errors "libpcap" configure:10129: $? = 0 configure:10173: result: yes configure:10442: checking for libprotobuf-c configure:10449: $PKG_CONFIG --exists --print-errors "libprotobuf-c" configure:10452: $? = 0 configure:10466: $PKG_CONFIG --exists --print-errors "libprotobuf-c" configure:10469: $? = 0 configure:10507: result: yes configure:10582: checking for protoc-c configure:10598: found /nvmedata/autobuild/instance-18/output-1/host/bin/protoc-c configure:10609: result: yes configure:10923: result: Using local radiotap headers configure:10965: checking for libnm configure:10972: $PKG_CONFIG --exists --print-errors "libnm" Package libnm was not found in the pkg-config search path. Perhaps you should add the directory containing `libnm.pc' to the PKG_CONFIG_PATH environment variable Package 'libnm', required by 'virtual:world', not found configure:10975: $? = 1 configure:10989: $PKG_CONFIG --exists --print-errors "libnm" Package libnm was not found in the pkg-config search path. Perhaps you should add the directory containing `libnm.pc' to the PKG_CONFIG_PATH environment variable Package 'libnm', required by 'virtual:world', not found configure:10992: $? = 1 configure:11006: result: no Package 'libnm', required by 'virtual:world', not found configure:11088: WARNING: Libnm missing device_set_managed function may be a very old version configure:11136: checking for libnl-3.0 configure:11143: $PKG_CONFIG --exists --print-errors "libnl-3.0" configure:11146: $? = 0 configure:11160: $PKG_CONFIG --exists --print-errors "libnl-3.0" configure:11163: $? = 0 configure:11201: result: yes configure:11207: checking for libnl-genl-3.0 configure:11214: $PKG_CONFIG --exists --print-errors "libnl-genl-3.0" configure:11217: $? = 0 configure:11231: $PKG_CONFIG --exists --print-errors "libnl-genl-3.0" configure:11234: $? = 0 configure:11272: result: yes configure:11278: checking for libnl-2.0 configure:11285: $PKG_CONFIG --exists --print-errors "libnl-2.0" Package libnl-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libnl-2.0.pc' to the PKG_CONFIG_PATH environment variable Package 'libnl-2.0', required by 'virtual:world', not found configure:11288: $? = 1 configure:11302: $PKG_CONFIG --exists --print-errors "libnl-2.0" Package libnl-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libnl-2.0.pc' to the PKG_CONFIG_PATH environment variable Package 'libnl-2.0', required by 'virtual:world', not found configure:11305: $? = 1 configure:11319: result: no Package 'libnl-2.0', required by 'virtual:world', not found configure:11349: checking for libnl-1 configure:11356: $PKG_CONFIG --exists --print-errors "libnl-1" Package libnl-1 was not found in the pkg-config search path. Perhaps you should add the directory containing `libnl-1.pc' to the PKG_CONFIG_PATH environment variable Package 'libnl-1', required by 'virtual:world', not found configure:11359: $? = 1 configure:11373: $PKG_CONFIG --exists --print-errors "libnl-1" Package libnl-1 was not found in the pkg-config search path. Perhaps you should add the directory containing `libnl-1.pc' to the PKG_CONFIG_PATH environment variable Package 'libnl-1', required by 'virtual:world', not found configure:11376: $? = 1 configure:11390: result: no Package 'libnl-1', required by 'virtual:world', not found configure:11502: checking For mac80211 support in netlink library configure:11530: /nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/include/libnl3 -static -rdynamic conftest.cpp -ldl -lz -latomic -L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lpthread -lnl-genl-3 -lnl-3 -lpthread >&5 configure:11530: $? = 0 configure:11547: result: yes configure:11709: WARNING: missing libusb, ubertooth-one support will not be built configure:11863: WARNING: missing one or more required libraries for ubertooth-one configure:12291: creating ./config.status ## ---------------------- ## ## Running config.status. ## ## ---------------------- ## This file was extended by config.status, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = CONFIG_HEADERS = CONFIG_LINKS = CONFIG_COMMANDS = $ ./config.status on james-x399 config.status:970: creating Makefile config.status:970: creating Makefile.inc config.status:1073: WARNING: 'Makefile.inc.in' seems to ignore the --datarootdir setting config.status:970: creating packaging/kismet.pc config.status:970: creating packaging/systemd/kismet.service config.status:970: creating packaging/systemd/debug/kismet-debug.service config.status:970: creating capture_linux_bluetooth/Makefile config.status:970: creating capture_linux_wifi/Makefile config.status:970: creating capture_osx_corewlan_wifi/Makefile config.status:970: creating capture_sdr_rtl433/Makefile config.status:970: creating capture_sdr_rtlamr/Makefile config.status:970: creating capture_sdr_rtladsb/Makefile config.status:970: creating capture_bt_geiger/Makefile config.status:970: creating capture_freaklabs_zigbee/Makefile config.status:970: creating capture_nrf_mousejack/Makefile config.status:970: creating capture_ti_cc_2540/Makefile config.status:970: creating capture_ti_cc_2531/Makefile config.status:970: creating capture_ubertooth_one/Makefile config.status:970: creating capture_nrf_51822/Makefile config.status:970: creating capture_nxp_kw41z/Makefile config.status:970: creating capture_rz_killerbee/Makefile config.status:970: creating capture_bladerf_wiphy/Makefile config.status:970: creating capture_proxy_adsb/Makefile config.status:970: creating capture_nrf_52840/Makefile config.status:970: creating config.h configure:13473: WARNING: unrecognized options: --disable-gtk-doc, --disable-gtk-doc-html, --disable-doc, --disable-docs, --disable-documentation, --with-xmlto, --with-fop, --disable-dependency-tracking, --enable-ipv6, --disable-nls, --enable-static, --disable-shared ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_build=x86_64-pc-linux-gnu ac_cv_c_bigendian=no ac_cv_c_compiler_gnu=yes ac_cv_cxx_compiler_gnu=yes ac_cv_env_CCC_set= ac_cv_env_CCC_value= ac_cv_env_CC_set=set ac_cv_env_CC_value=/nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value='-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static' ac_cv_env_CPPFLAGS_set=set ac_cv_env_CPPFLAGS_value='-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' ac_cv_env_CPP_set=set ac_cv_env_CPP_value=/nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-cpp ac_cv_env_CXXCPP_set= ac_cv_env_CXXCPP_value= ac_cv_env_CXXFLAGS_set=set ac_cv_env_CXXFLAGS_value='-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static' ac_cv_env_CXX_set=set ac_cv_env_CXX_value=/nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ ac_cv_env_LDFLAGS_set=set ac_cv_env_LDFLAGS_value=' -static' ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_PKG_CONFIG_LIBDIR_set= ac_cv_env_PKG_CONFIG_LIBDIR_value= ac_cv_env_PKG_CONFIG_PATH_set= ac_cv_env_PKG_CONFIG_PATH_value= ac_cv_env_PKG_CONFIG_set=set ac_cv_env_PKG_CONFIG_value=/nvmedata/autobuild/instance-18/output-1/host/bin/pkg-config ac_cv_env_build_alias_set=set ac_cv_env_build_alias_value=x86_64-pc-linux-gnu ac_cv_env_host_alias_set=set ac_cv_env_host_alias_value=mipsel-buildroot-linux-gnu ac_cv_env_libbladeRF_CFLAGS_set= ac_cv_env_libbladeRF_CFLAGS_value= ac_cv_env_libbladeRF_LIBS_set= ac_cv_env_libbladeRF_LIBS_value= ac_cv_env_libnl1_CFLAGS_set= ac_cv_env_libnl1_CFLAGS_value= ac_cv_env_libnl1_LIBS_set= ac_cv_env_libnl1_LIBS_value= ac_cv_env_libnl20_CFLAGS_set= ac_cv_env_libnl20_CFLAGS_value= ac_cv_env_libnl20_LIBS_set= ac_cv_env_libnl20_LIBS_value= ac_cv_env_libnl30_CFLAGS_set= ac_cv_env_libnl30_CFLAGS_value= ac_cv_env_libnl30_LIBS_set= ac_cv_env_libnl30_LIBS_value= ac_cv_env_libnlgenl30_CFLAGS_set= ac_cv_env_libnlgenl30_CFLAGS_value= ac_cv_env_libnlgenl30_LIBS_set= ac_cv_env_libnlgenl30_LIBS_value= ac_cv_env_libnm_CFLAGS_set= ac_cv_env_libnm_CFLAGS_value= ac_cv_env_libnm_LIBS_set= ac_cv_env_libnm_LIBS_value= ac_cv_env_libpcap_CFLAGS_set= ac_cv_env_libpcap_CFLAGS_value= ac_cv_env_libpcap_LIBS_set= ac_cv_env_libpcap_LIBS_value= ac_cv_env_libprotobufc_CFLAGS_set= ac_cv_env_libprotobufc_CFLAGS_value= ac_cv_env_libprotobufc_LIBS_set= ac_cv_env_libprotobufc_LIBS_value= ac_cv_env_libusb_CFLAGS_set= ac_cv_env_libusb_CFLAGS_value= ac_cv_env_libusb_LIBS_set= ac_cv_env_libusb_LIBS_value= ac_cv_env_libwebsockets_CFLAGS_set= ac_cv_env_libwebsockets_CFLAGS_value= ac_cv_env_libwebsockets_LIBS_set= ac_cv_env_libwebsockets_LIBS_value= ac_cv_env_protobuf_CFLAGS_set= ac_cv_env_protobuf_CFLAGS_value= ac_cv_env_protobuf_LIBS_set= ac_cv_env_protobuf_LIBS_value= ac_cv_env_target_alias_set=set ac_cv_env_target_alias_value=mipsel-buildroot-linux-gnu ac_cv_func_calloc_0_nonnull=yes ac_cv_func_malloc_0_nonnull=yes ac_cv_func_memcmp_working=yes ac_cv_func_mmap_fixed_mapped=yes ac_cv_func_realloc_0_nonnull=yes ac_cv_func_setproctitle=no ac_cv_have_decl_malloc=yes ac_cv_header_inttypes_h=yes ac_cv_header_libutil_h=no ac_cv_header_linux_wireless_h=yes ac_cv_header_memory_h=yes ac_cv_header_stdc=yes ac_cv_header_stdint_h=yes ac_cv_header_stdlib_h=yes ac_cv_header_string_h=yes ac_cv_header_strings_h=yes ac_cv_header_sys_pstat_h=no ac_cv_header_sys_stat_h=yes ac_cv_header_sys_types_h=yes ac_cv_header_unistd_h=yes ac_cv_host=mipsel-buildroot-linux-gnu ac_cv_lbl_unaligned_fail=yes ac_cv_lib_dl_dlopen=yes ac_cv_lib_stdcpp_main=yes ac_cv_lib_util_setproctitle=no ac_cv_lib_z_deflate=yes ac_cv_objext=o ac_cv_path_EGREP='/bin/grep -E' ac_cv_path_GREP=/bin/grep ac_cv_path_install='/usr/bin/install -c' ac_cv_prog_CC=/nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc ac_cv_prog_CPP=/nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-cpp ac_cv_prog_CXXCPP='/nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -E' ac_cv_prog_cc_c89= ac_cv_prog_cc_c99= ac_cv_prog_cc_g=yes ac_cv_prog_cc_stdc= ac_cv_prog_cxx_g=yes ac_cv_prog_make_make_set=yes ac_cv_prog_protocc=yes ac_cv_sys_file_offset_bits=no ac_cv_sys_largefile_CC=no ax_cv_cxx_compile_cxx14__std_gnupp14=yes ax_cv_cxx_compile_cxx17__h_std_cpp17=no ax_cv_cxx_compile_cxx17__h_std_cpp1z=no ax_cv_cxx_compile_cxx17__std_cpp17=no ax_cv_cxx_compile_cxx17__std_cpp1z=no ax_cv_cxx_compile_cxx17__std_gnupp17=no ax_cv_cxx_compile_cxx17__std_gnupp1z=no ax_cv_cxx_compile_cxx17_pstd_cpp17=no ax_cv_cxx_compile_cxx17_pstd_cpp1z=no ax_cv_gcc_version=6.3.0 gl_cv_func_malloc_0_nonnull=yes lt_cv_sys_lib_search_path_spec= pf_cv_argv_type=writeable pf_cv_var_progname=yes pkg_cv_libnl30_CFLAGS='-I/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/include/libnl3 ' pkg_cv_libnl30_LIBS='-L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lnl-3 -lpthread ' pkg_cv_libnlgenl30_CFLAGS='-I/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/include/libnl3 ' pkg_cv_libnlgenl30_LIBS='-L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lnl-genl-3 -lnl-3 -lpthread ' pkg_cv_libpcap_CFLAGS= pkg_cv_libpcap_LIBS='-L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lpcap -L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lnl-genl-3 -lnl-3 -lpthread ' pkg_cv_libprotobufc_CFLAGS= pkg_cv_libprotobufc_LIBS='-L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lprotobuf-c ' ## ----------------- ## ## Output variables. ## ## ----------------- ## ALLTARGETS='$(DS_ONLY)' BASE_DIR='/usr' BIN_DIR='/usr/bin' BLADERFCFLAGS='' BLADERFLIBS='' BUILD_CAPTURE_BLADERF_WLAN='0' BUILD_CAPTURE_BT_GEIGER='0' BUILD_CAPTURE_FREAKLABS_ZIGBEE='0' BUILD_CAPTURE_HACKRF_SWEEP='0' BUILD_CAPTURE_KISMETDB='1' BUILD_CAPTURE_LINUX_BLUETOOTH='1' BUILD_CAPTURE_LINUX_WIFI='1' BUILD_CAPTURE_NRF_51822='1' BUILD_CAPTURE_NRF_52840='1' BUILD_CAPTURE_NRF_MOUSEJACK='0' BUILD_CAPTURE_NXP_KW41Z='1' BUILD_CAPTURE_OSX_COREWLAN='0' BUILD_CAPTURE_PCAPFILE='1' BUILD_CAPTURE_PROXY_ADSB='0' BUILD_CAPTURE_RZ_KILLERBEE='0' BUILD_CAPTURE_SDR_RTL433='0' BUILD_CAPTURE_SDR_RTLADSB='0' BUILD_CAPTURE_SDR_RTLAMR='0' BUILD_CAPTURE_TI_CC_2531='0' BUILD_CAPTURE_TI_CC_2540='0' BUILD_CAPTURE_UBERTOOTH_ONE='0' BUILD_PYTHON_MODULES='0' CC='/nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-gcc' CFLAGS='-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -O3' CONFFILE_DIR='/etc' CPP='/nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-cpp' CPPFLAGS='-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' CXX='/nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14' CXXCPP='/nvmedata/autobuild/instance-18/output-1/host/bin/mips-mti-linux-gnu-g++ -std=gnu++14 -E' CXXFLAGS='-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -D_FORTIFY_SOURCE=1 -static -static -O3' CXXLIBS=' -lstdc++' DATASOURCE_BINS='$(CAPTURE_KISMETDB) $(CAPTURE_PCAPFILE) $(CAPTURE_LINUX_WIFI) $(CAPTURE_LINUX_BLUETOOTH) $(CAPTURE_NRF_51822) $(CAPTURE_NXP_KW41Z) $(CAPTURE_NRF_52840)' DATA_DIR='/usr/share' DEFS='-DHAVE_CONFIG_H' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='/bin/grep -E' EXEEXT='' GCC_VERSION='6.3.0' GREP='/bin/grep' HAVE_CXX14='1' HAVE_CXX17='0' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' KSLIBS='' LDFLAGS=' -static -rdynamic' LIBBTBBCFLAGS='' LIBBTBBLIBS='' LIBMLIB='-lm' LIBOBJS='' LIBPRELUDE_CFLAGS='' LIBPRELUDE_CONFIG='' LIBPRELUDE_CONFIG_PREFIX='' LIBPRELUDE_LDFLAGS='' LIBPRELUDE_LIBS='' LIBPRELUDE_PREFIX='' LIBPRELUDE_PTHREAD_CFLAGS='' LIBS=' -ldl -lz -latomic' LIBUBERTOOTHCFLAGS='' LIBUBERTOOTHLIBS='' LIBUSBCFLAGS='' LIBUSBLIBS='' LIBWSCFLAGS='' LIBWSLIBS='' LIB_DIR='/usr/lib' LOCALSTATE_DIR='/var' LTLIBOBJS='' NLCFLAGS='-I/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/include/libnl3 ' NLLIBS='-L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lpthread -lnl-genl-3 -lnl-3 -lpthread ' NMCFLAGS='' NMLIBS='' OBJEXT='o' PACKAGE_BUGREPORT='' PACKAGE_NAME='' PACKAGE_STRING='' PACKAGE_TARNAME='' PACKAGE_URL='' PACKAGE_VERSION='' PATH_SEPARATOR=':' PCAPCFLAGS='' PCAPLIBS='-L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lpcap -L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lnl-genl-3 -lnl-3 -lpthread ' PKG_CONFIG='/nvmedata/autobuild/instance-18/output-1/host/bin/pkg-config' PKG_CONFIG_LIBDIR='' PKG_CONFIG_PATH='' PLUGINLDFLAGS='' PROTOBUF_CPP_H_TARGET='' PROTOBUF_CPP_O_TARGET='' PROTOCBIN='' PROTOCCBIN='protoc-c' PROTOCCFLAGS='' PROTOCFLAGS='' PROTOCLIBS='-L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lprotobuf-c ' PROTOLIBS='' PTHREAD_CFLAGS='-pthread' PTHREAD_LIBS='-lpthread' PYTHON='python3' PYTHON_VERSION='3' SET_MAKE='' SHELL='/bin/bash' VERSION='' ac_ct_CC='' ac_ct_CXX='' bindir='${exec_prefix}/bin' build='x86_64-pc-linux-gnu' build_alias='x86_64-pc-linux-gnu' build_cpu='x86_64' build_os='linux-gnu' build_vendor='pc' caplibs='' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE}' dvidir='${docdir}' exec_prefix='/usr' host='mipsel-buildroot-linux-gnu' host_alias='mipsel-buildroot-linux-gnu' host_cpu='mipsel' host_os='linux-gnu' host_vendor='buildroot' htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' instgrp='root' libbladeRF_CFLAGS='' libbladeRF_LIBS='' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' libnl1_CFLAGS='' libnl1_LIBS='' libnl20_CFLAGS='' libnl20_LIBS='' libnl30_CFLAGS='-I/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/include/libnl3 ' libnl30_LIBS='-L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lnl-3 -lpthread ' libnlgenl30_CFLAGS='-I/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/include/libnl3 ' libnlgenl30_LIBS='-L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lnl-genl-3 -lnl-3 -lpthread ' libnm_CFLAGS='' libnm_LIBS='' libpcap_CFLAGS='' libpcap_LIBS='-L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lpcap -L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lnl-genl-3 -lnl-3 -lpthread ' libprotobufc_CFLAGS='' libprotobufc_LIBS='-L/nvmedata/autobuild/instance-18/output-1/host/bin/../mipsel-buildroot-linux-gnu/sysroot/usr/lib -lprotobuf-c ' libusb_CFLAGS='' libusb_LIBS='' libwebsockets_CFLAGS='' libwebsockets_LIBS='' localedir='${datarootdir}/locale' localstatedir='/var' mandir='${datarootdir}/man' oldincludedir='/usr/include' pcap='yes' pdfdir='${docdir}' prefix='/usr' program_transform_name='s,x,x,' protobuf_CFLAGS='' protobuf_LIBS='' protoc='' protocc='yes' psdir='${docdir}' runstatedir='${localstatedir}/run' sbindir='${exec_prefix}/sbin' sharedatadir='${prefix}/share' sharedstatedir='${prefix}/com' suidgroup='kismet' sysconfdir='/etc' target_alias='mipsel-buildroot-linux-gnu' ## ----------- ## ## confdefs.h. ## ## ----------- ## /* confdefs.h */ #define PACKAGE_NAME "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" #define PACKAGE_STRING "" #define PACKAGE_BUGREPORT "" #define PACKAGE_URL "" #define SYS_LINUX 1 #define GCC_VERSION_MAJOR 6 #define GCC_VERSION_MINOR 3 #define GCC_VERSION_PATCH 0 #define HAVE_CXX14 1 #define HAVE_CXX14 1 #define HAVE_CXX11 1 #define SYSCONF_LOC "/etc" #define LOCALSTATE_DIR "/var" #define BIN_LOC "/usr/bin" #define LIB_LOC "/usr/lib" #define DATA_LOC "/usr/share" #define STDC_HEADERS 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STRINGS_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_STDINT_H 1 #define HAVE_UNISTD_H 1 #define DEBUG_MUTEX_NAME 1 #define TE_TYPE_SAFETY 1 #define DISABLE_BACKWARD 1 #define HAVE_STDINT_H 1 #define STRERROR_R_T char * #define HAVE_SOCKLEN_T 1 #define HAVE_PIPE2 1 #define HAVE___PROGNAME 1 #define PF_ARGV_TYPE PF_ARGV_WRITEABLE #define HAVE_LINUX_WIRELESS 1 #define HAVE_LINUX_IWFREQFLAG 1 #define HAVE_LIBPCAP 1 #define HAVE_LOCAL_RADIOTAP 1 #define HAVE_LIBNL 1 #define HAVE_LIBNL30 1 #define HAVE_LINUX_NETLINK 1 #define HAVE_GPS 1 configure: exit 0