## ---------------------------------- ## ## osmo-pcu 1.4.0.11-7572 test suite. ## ## ---------------------------------- ## testsuite: command line was: $ ../../../tests/testsuite ## --------- ## ## Platform. ## ## --------- ## hostname = ba69c6ad05cd uname -m = armv7l uname -r = 5.15.76-v7l+ uname -s = Linux uname -v = #1597 SMP Fri Nov 4 12:14:58 GMT 2022 /usr/bin/uname -p = unknown /bin/uname -X = unknown /bin/arch = armv7l /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /build/osmo-pcu-1.4.0.11-7572/_build/sub/tests/ PATH: /build/osmo-pcu-1.4.0.11-7572/tests/ PATH: /build/deps/install/bin/ PATH: /usr/lib/ccache/ PATH: /usr/local/sbin/ PATH: /usr/local/bin/ PATH: /usr/sbin/ PATH: /usr/bin/ PATH: /sbin/ PATH: /bin/ testsuite: atconfig: | # Configurable variable values for building test suites. | # Generated by ./config.status. | # Copyright (C) 2021 Free Software Foundation, Inc. | | # The test suite will define top_srcdir=/../.. etc. | at_testdir='tests' | abs_builddir='/build/osmo-pcu-1.4.0.11-7572/_build/sub/tests' | at_srcdir='../../../tests' | abs_srcdir='/build/osmo-pcu-1.4.0.11-7572/_build/sub/../../tests' | at_top_srcdir='../../..' | abs_top_srcdir='/build/osmo-pcu-1.4.0.11-7572/_build/sub/../..' | at_top_build_prefix='../' | abs_top_builddir='/build/osmo-pcu-1.4.0.11-7572/_build/sub' | | # Backward compatibility with Autotest <= 2.59b: | at_top_builddir=$at_top_build_prefix | | | EXEEXT='' | AUTOTEST_PATH='tests' | | SHELL=${CONFIG_SHELL-'/bin/bash'} ## ------------------ ## ## Running the tests. ## ## ------------------ ## testsuite: starting at: Sun Apr 28 07:35:49 UTC 2024 1. rlcmac (testsuite.at:5): ok (0m0.050s 0m0.117s) 2. multi_slot (testsuite.at:12): ok (0m0.275s 0m0.141s) 3. ts_alloc (testsuite.at:18): ok (0m56.255s 0m38.286s) 5. bitcomp (testsuite.at:31): ok (0m0.106s 0m0.043s) 6. edge (testsuite.at:38): ok (0m0.156s 0m0.132s) 7. types (testsuite.at:45): ok (0m0.097s 0m0.111s) 8. ms (testsuite.at:52): ok (0m0.199s 0m0.123s) 9. llc (testsuite.at:59): ok (0m0.119s 0m0.133s) 10. llist (testsuite.at:66): ok (0m0.050s 0m0.043s) 11. codel (testsuite.at:73): ok (0m0.059s 0m0.084s) 12. fn (testsuite.at:79): ok (0m0.057s 0m0.150s) 13. app_info (testsuite.at:85): ok (0m0.089s 0m0.103s) 14. ulc (testsuite.at:92): ok (0m0.080s 0m0.116s) testsuite: ending at: Sun Apr 28 07:37:47 UTC 2024 testsuite: test suite duration: 0h 1m 58s ## ------------- ## ## Test results. ## ## ------------- ## ERROR: All 14 tests were run, 1 failed unexpectedly. ## ------------------------ ## ## Summary of the failures. ## ## ------------------------ ## Failed tests: osmo-pcu 1.4.0.11-7572 test suite test groups: NUM: FILE-NAME:LINE TEST-GROUP-NAME KEYWORDS 4: testsuite.at:25 tbf tbf ## ---------------------- ## ## Detailed failed tests. ## ## ---------------------- ## # -*- compilation -*- 4. testsuite.at:25: testing tbf ... ../../../tests/testsuite.at:28: $OSMO_QEMU $abs_top_builddir/tests/tbf/TbfTest --- experr 2024-04-28 07:37:41.309810157 +0000 +++ /build/osmo-pcu-1.4.0.11-7572/_build/sub/tests/testsuite.dir/at-groups/4/stderr 2024-04-28 07:37:43.529750622 +0000 @@ -5018,6 +5018,7 @@ PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) +MS(TLLI-0xf1223344:TA-7:MSCLS-1-1:UL) UL RSSI: 31 dBm MS(TLLI-0xf1223344:TA-7:MSCLS-1-1:UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: MCS-2 -> MCS-3 TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} BSN 0 storing in window (0..63) stdout: 4. testsuite.at:25: 4. tbf (testsuite.at:25): FAILED (testsuite.at:28) ## ------------- ## ## ../config.log ## ## ------------- ## | This file contains any messages produced by compilers while | running configure, to aid debugging if configure makes a mistake. | | It was created by osmo-pcu configure 1.4.0.11-7572, which was | generated by GNU Autoconf 2.71. Invocation command line was | | $ ../../configure --with-systemdsystemunitdir=/build/osmo-pcu-1.4.0.11-7572/_inst/ --enable-werror --enable-sanitize --enable-er-e1-ccu --srcdir=../.. --prefix=/build/osmo-pcu-1.4.0.11-7572/_inst | | ## --------- ## | ## Platform. ## | ## --------- ## | | hostname = ba69c6ad05cd | uname -m = armv7l | uname -r = 5.15.76-v7l+ | uname -s = Linux | uname -v = #1597 SMP Fri Nov 4 12:14:58 GMT 2022 | | /usr/bin/uname -p = unknown | /bin/uname -X = unknown | | /bin/arch = armv7l | /usr/bin/arch -k = unknown | /usr/convex/getsysinfo = unknown | /usr/bin/hostinfo = unknown | /bin/machine = unknown | /usr/bin/oslevel = unknown | /bin/universe = unknown | | PATH: /build/deps/install/bin/ | PATH: /usr/lib/ccache/ | PATH: /usr/local/sbin/ | PATH: /usr/local/bin/ | PATH: /usr/sbin/ | PATH: /usr/bin/ | PATH: /sbin/ | PATH: /bin/ | | | ## ----------- ## | ## Core tests. ## | ## ----------- ## | | configure:2856: looking for aux files: config.guess config.sub ltmain.sh compile missing install-sh | configure:2869: trying ../.././ | configure:2898: ../.././config.guess found | configure:2898: ../.././config.sub found | configure:2898: ../.././ltmain.sh found | configure:2898: ../.././compile found | configure:2898: ../.././missing found | configure:2880: ../.././install-sh found | configure:3030: checking for a BSD-compatible install | configure:3103: result: /usr/bin/install -c | configure:3114: checking whether build environment is sane | configure:3169: result: yes | configure:3328: checking for a race-free mkdir -p | configure:3372: result: /usr/bin/mkdir -p | configure:3379: checking for gawk | configure:3414: result: no | configure:3379: checking for mawk | configure:3400: found /usr/bin/mawk | configure:3411: result: mawk | configure:3422: checking whether make sets $(MAKE) | configure:3445: result: yes | configure:3475: checking whether make supports nested variables | configure:3493: result: yes | configure:3647: checking whether make supports nested variables | configure:3665: result: yes | configure:3680: checking whether make sets $(MAKE) | configure:3703: result: yes | configure:3774: checking for gcc | configure:3795: found /usr/lib/ccache/gcc | configure:3806: result: gcc | configure:4159: checking for C compiler version | configure:4168: gcc --version >&5 | gcc (Debian 12.2.0-14) 12.2.0 | Copyright (C) 2022 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:4179: $? = 0 | configure:4168: gcc -v >&5 | Using built-in specs. | COLLECT_GCC=/usr/bin/gcc | COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/12/lto-wrapper | Target: arm-linux-gnueabihf | Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv7-a+fp --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf | Thread model: posix | Supported LTO compression algorithms: zlib zstd | gcc version 12.2.0 (Debian 12.2.0-14) | configure:4179: $? = 0 | configure:4168: gcc -V >&5 | gcc: error: unrecognized command-line option '-V' | gcc: fatal error: no input files | compilation terminated. | configure:4179: $? = 1 | configure:4168: gcc -qversion >&5 | gcc: error: unrecognized command-line option '-qversion'; did you mean '--version'? | gcc: fatal error: no input files | compilation terminated. | configure:4179: $? = 1 | configure:4168: gcc -version >&5 | gcc: error: unrecognized command-line option '-version' | gcc: fatal error: no input files | compilation terminated. | configure:4179: $? = 1 | configure:4199: checking whether the C compiler works | configure:4221: gcc -std=gnu11 conftest.c >&5 | configure:4225: $? = 0 | configure:4275: result: yes | configure:4278: checking for C compiler default output file name | configure:4280: result: a.out | configure:4286: checking for suffix of executables | configure:4293: gcc -o conftest -std=gnu11 conftest.c >&5 | configure:4297: $? = 0 | configure:4320: result: | configure:4342: checking whether we are cross compiling | configure:4350: gcc -o conftest -std=gnu11 conftest.c >&5 | configure:4354: $? = 0 | configure:4361: ./conftest | configure:4365: $? = 0 | configure:4380: result: no | configure:4385: checking for suffix of object files | configure:4408: gcc -c -std=gnu11 conftest.c >&5 | configure:4412: $? = 0 | configure:4434: result: o | configure:4438: checking whether the compiler supports GNU C | configure:4458: gcc -c -std=gnu11 conftest.c >&5 | configure:4458: $? = 0 | configure:4468: result: yes | configure:4479: checking whether gcc accepts -g | configure:4500: gcc -c -g conftest.c >&5 | configure:4500: $? = 0 | configure:4544: result: yes | configure:4564: checking for gcc option to enable C11 features | configure:4579: gcc -c -std=gnu11 conftest.c >&5 | configure:4579: $? = 0 | configure:4597: result: none needed | configure:4713: checking whether gcc understands -c and -o together | configure:4736: gcc -c conftest.c -o conftest2.o | configure:4739: $? = 0 | configure:4736: gcc -c conftest.c -o conftest2.o | configure:4739: $? = 0 | configure:4751: result: yes | configure:4771: checking whether make supports the include directive | configure:4786: make -f confmf.GNU && cat confinc.out | make[1]: Entering directory '/build/osmo-pcu-1.4.0.11-7572/_build/sub' | make[1]: Leaving directory '/build/osmo-pcu-1.4.0.11-7572/_build/sub' | this is the am__doit target | configure:4789: $? = 0 | configure:4808: result: yes (GNU style) | configure:4834: checking dependency style of gcc | configure:4946: result: gcc3 | configure:5030: checking for g++ | configure:5051: found /usr/lib/ccache/g++ | configure:5062: result: g++ | configure:5089: checking for C++ compiler version | configure:5098: g++ --version >&5 | g++ (Debian 12.2.0-14) 12.2.0 | Copyright (C) 2022 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:5109: $? = 0 | configure:5098: g++ -v >&5 | Using built-in specs. | COLLECT_GCC=/usr/bin/g++ | COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/12/lto-wrapper | Target: arm-linux-gnueabihf | Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv7-a+fp --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf | Thread model: posix | Supported LTO compression algorithms: zlib zstd | gcc version 12.2.0 (Debian 12.2.0-14) | configure:5109: $? = 0 | configure:5098: g++ -V >&5 | g++: error: unrecognized command-line option '-V' | g++: fatal error: no input files | compilation terminated. | configure:5109: $? = 1 | configure:5098: g++ -qversion >&5 | g++: error: unrecognized command-line option '-qversion'; did you mean '--version'? | g++: fatal error: no input files | compilation terminated. | configure:5109: $? = 1 | configure:5113: checking whether the compiler supports GNU C++ | configure:5133: g++ -c -std=gnu++03 conftest.cpp >&5 | configure:5133: $? = 0 | configure:5143: result: yes | configure:5154: checking whether g++ accepts -g | configure:5175: g++ -c -g conftest.cpp >&5 | configure:5175: $? = 0 | configure:5219: result: yes | configure:5239: checking for g++ option to enable C++11 features | configure:5254: g++ -c -std=gnu++03 conftest.cpp >&5 | conftest.cpp:57:3: error: #error "Compiler does not advertise C++11 conformance" | 57 | # error "Compiler does not advertise C++11 conformance" | | ^~~~~ | conftest.cpp:62:3: error: 'constexpr' does not name a type | 62 | constexpr int get_val() { return 20; } | | ^~~~~~~~~ | conftest.cpp:62:3: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11' | conftest.cpp: In constructor 'cxx11test::delegate::delegate()': | conftest.cpp:74:30: warning: delegating constructors only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 74 | delegate(): delegate(2354) {} | | ^ | conftest.cpp: At global scope: | conftest.cpp:85:24: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^ | conftest.cpp:85:26: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^~~~~~~~ | conftest.cpp:92:16: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 92 | nocopy() = default; | | ^~~~~~~ | conftest.cpp:93:29: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 93 | nocopy(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:94:41: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 94 | nocopy & operator=(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:106:30: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 106 | template auto sum(V first) -> V | | ^~~ | conftest.cpp:106:25: error: top-level declaration of 'sum' specifies 'auto' | 106 | template auto sum(V first) -> V | | ^~~~ | conftest.cpp:106:46: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 106 | template auto sum(V first) -> V | | ^ | conftest.cpp:110:33: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:69: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:48: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:43: error: top-level declaration of 'sum' specifies 'auto' | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:78: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 110 | template auto sum(V first, Args... rest) -> V | | ^ | conftest.cpp: In function 'int main(int, char**)': | conftest.cpp:134:8: error: 'a1' does not name a type | 134 | auto a1 = 6538; | | ^~ | conftest.cpp:135:8: error: 'a2' does not name a type | 135 | auto a2 = 48573953.4; | | ^~ | conftest.cpp:136:8: error: 'a3' does not name a type | 136 | auto a3 = "String literal"; | | ^~ | conftest.cpp:139:13: error: 'i' does not name a type | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:139:20: error: expected ';' before '*' token | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^~ | | ; | conftest.cpp:139:22: error: 'i' was not declared in this scope | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:141:12: error: 'a2' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~ | conftest.cpp:141:3: error: 'decltype' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~~~~~~~ | conftest.cpp:145:23: error: 'get_val' is not a member of 'cxx11test'; did you mean 'eval'? | 145 | short sa[cxx11test::get_val()] = { 0 }; | | ^~~~~~~ | | eval | conftest.cpp:155:14: error: ISO C++ forbids declaration of 'x' with no type [-fpermissive] | 155 | for (auto &x : array) { x += 23; } | | ^ | conftest.cpp:155:18: warning: range-based 'for' loops only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 155 | for (auto &x : array) { x += 23; } | | ^~~~~ | conftest.cpp:160:41: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ^ | conftest.cpp:160:16: error: no matching function for call to 'eval(main(int, char**)::, int)' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = int; Fn = main(int, char**)::]': | conftest.cpp:160:16: required from here | conftest.cpp:160:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:160:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:162:48: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ^ | conftest.cpp:162:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:162:16: required from here | conftest.cpp:162:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:162:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:164:56: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ^ | conftest.cpp:164:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:164:16: required from here | conftest.cpp:164:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:164:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:169:20: error: 'sum' has not been declared in 'cxx11test' | 169 | using cxx11test::sum; | | ^~~ | conftest.cpp:170:8: error: 'a' does not name a type | 170 | auto a = sum(1); | | ^ | conftest.cpp:171:8: error: 'b' does not name a type | 171 | auto b = sum(1, 2); | | ^ | conftest.cpp:172:8: error: 'c' does not name a type | 172 | auto c = sum(1.0, 2.0, 3.0); | | ^ | conftest.cpp:177:25: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse] | 177 | cxx11test::delegate d2(); | | ^~ | conftest.cpp:177:25: note: remove parentheses to default-initialize a variable | 177 | cxx11test::delegate d2(); | | ^~ | | -- | conftest.cpp:186:13: error: 'nullptr' was not declared in this scope | 186 | char *c = nullptr; | | ^~~~~~~ | conftest.cpp:190:36: error: '>>' should be '> >' within a nested template argument list | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | | > > | conftest.cpp:190:16: error: '<::' cannot begin a template-argument list [-fpermissive] | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | conftest.cpp:190:16: note: '<:' is an alternate spelling for '['. Insert whitespace between '<' and '::' | conftest.cpp:190:16: note: (if you use '-fpermissive' or '-std=c++11', or '-std=gnu++11' G++ will accept your code) | conftest.cpp:194:22: error: 'u8' was not declared in this scope; did you mean 'utf8'? | 194 | char const *utf8 = u8"UTF-8 string \u2500"; | | ^~ | | utf8 | conftest.cpp:195:3: error: 'char16_t' was not declared in this scope | 195 | char16_t const *utf16 = u"UTF-8 string \u2500"; | | ^~~~~~~~ | conftest.cpp:196:3: error: 'char32_t' was not declared in this scope | 196 | char32_t const *utf32 = U"UTF-32 string \u2500"; | | ^~~~~~~~ | configure:5254: $? = 1 | configure: failed program was: | | /* confdefs.h */ | | #define PACKAGE_NAME "osmo-pcu" | | #define PACKAGE_TARNAME "osmo-pcu" | | #define PACKAGE_VERSION "1.4.0.11-7572" | | #define PACKAGE_STRING "osmo-pcu 1.4.0.11-7572" | | #define PACKAGE_BUGREPORT "osmocom-net-gprs@lists.osmocom.org" | | #define PACKAGE_URL "" | | #define PACKAGE "osmo-pcu" | | #define VERSION "1.4.0.11-7572" | | /* end confdefs.h. */ | | | | // Does the compiler advertise C++98 conformance? | | #if !defined __cplusplus || __cplusplus < 199711L | | # error "Compiler does not advertise C++98 conformance" | | #endif | | | | // These inclusions are to reject old compilers that | | // lack the unsuffixed header files. | | #include | | #include | | | | // and are *not* freestanding headers in C++98. | | extern void assert (int); | | namespace std { | | extern int strcmp (const char *, const char *); | | } | | | | // Namespaces, exceptions, and templates were all added after "C++ 2.0". | | using std::exception; | | using std::strcmp; | | | | namespace { | | | | void test_exception_syntax() | | { | | try { | | throw "test"; | | } catch (const char *s) { | | // Extra parentheses suppress a warning when building autoconf itself, | | // due to lint rules shared with more typical C programs. | | assert (!(strcmp) (s, "test")); | | } | | } | | | | template struct test_template | | { | | T const val; | | explicit test_template(T t) : val(t) {} | | template T add(U u) { return static_cast(u) + val; } | | }; | | | | } // anonymous namespace | | | | | | // Does the compiler advertise C++ 2011 conformance? | | #if !defined __cplusplus || __cplusplus < 201103L | | # error "Compiler does not advertise C++11 conformance" | | #endif | | | | namespace cxx11test | | { | | constexpr int get_val() { return 20; } | | | | struct testinit | | { | | int i; | | double d; | | }; | | | | class delegate | | { | | public: | | delegate(int n) : n(n) {} | | delegate(): delegate(2354) {} | | | | virtual int getval() { return this->n; }; | | protected: | | int n; | | }; | | | | class overridden : public delegate | | { | | public: | | overridden(int n): delegate(n) {} | | virtual int getval() override final { return this->n * 2; } | | }; | | | | class nocopy | | { | | public: | | nocopy(int i): i(i) {} | | nocopy() = default; | | nocopy(const nocopy&) = delete; | | nocopy & operator=(const nocopy&) = delete; | | private: | | int i; | | }; | | | | // for testing lambda expressions | | template Ret eval(Fn f, Ret v) | | { | | return f(v); | | } | | | | // for testing variadic templates and trailing return types | | template auto sum(V first) -> V | | { | | return first; | | } | | template auto sum(V first, Args... rest) -> V | | { | | return first + sum(rest...); | | } | | } | | | | | | int | | main (int argc, char **argv) | | { | | int ok = 0; | | | | assert (argc); | | assert (! argv[0]); | | { | | test_exception_syntax (); | | test_template tt (2.0); | | assert (tt.add (4) == 6.0); | | assert (true && !false); | | } | | | | | | { | | // Test auto and decltype | | auto a1 = 6538; | | auto a2 = 48573953.4; | | auto a3 = "String literal"; | | | | int total = 0; | | for (auto i = a3; *i; ++i) { total += *i; } | | | | decltype(a2) a4 = 34895.034; | | } | | { | | // Test constexpr | | short sa[cxx11test::get_val()] = { 0 }; | | } | | { | | // Test initializer lists | | cxx11test::testinit il = { 4323, 435234.23544 }; | | } | | { | | // Test range-based for | | int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, | | 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; | | for (auto &x : array) { x += 23; } | | } | | { | | // Test lambda expressions | | using cxx11test::eval; | | assert (eval ([](int x) { return x*2; }, 21) == 42); | | double d = 2.0; | | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | assert (d == 5.0); | | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | assert (d == 5.0); | | } | | { | | // Test use of variadic templates | | using cxx11test::sum; | | auto a = sum(1); | | auto b = sum(1, 2); | | auto c = sum(1.0, 2.0, 3.0); | | } | | { | | // Test constructor delegation | | cxx11test::delegate d1; | | cxx11test::delegate d2(); | | cxx11test::delegate d3(45); | | } | | { | | // Test override and final | | cxx11test::overridden o1(55464); | | } | | { | | // Test nullptr | | char *c = nullptr; | | } | | { | | // Test template brackets | | test_template<::test_template> v(test_template(12)); | | } | | { | | // Unicode literals | | char const *utf8 = u8"UTF-8 string \u2500"; | | char16_t const *utf16 = u"UTF-8 string \u2500"; | | char32_t const *utf32 = U"UTF-32 string \u2500"; | | } | | | | return ok; | | } | | | configure:5254: g++ -std=gnu++11 -c -std=gnu++03 conftest.cpp >&5 | conftest.cpp:57:3: error: #error "Compiler does not advertise C++11 conformance" | 57 | # error "Compiler does not advertise C++11 conformance" | | ^~~~~ | conftest.cpp:62:3: error: 'constexpr' does not name a type | 62 | constexpr int get_val() { return 20; } | | ^~~~~~~~~ | conftest.cpp:62:3: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11' | conftest.cpp: In constructor 'cxx11test::delegate::delegate()': | conftest.cpp:74:30: warning: delegating constructors only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 74 | delegate(): delegate(2354) {} | | ^ | conftest.cpp: At global scope: | conftest.cpp:85:24: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^ | conftest.cpp:85:26: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^~~~~~~~ | conftest.cpp:92:16: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 92 | nocopy() = default; | | ^~~~~~~ | conftest.cpp:93:29: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 93 | nocopy(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:94:41: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 94 | nocopy & operator=(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:106:30: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 106 | template auto sum(V first) -> V | | ^~~ | conftest.cpp:106:25: error: top-level declaration of 'sum' specifies 'auto' | 106 | template auto sum(V first) -> V | | ^~~~ | conftest.cpp:106:46: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 106 | template auto sum(V first) -> V | | ^ | conftest.cpp:110:33: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:69: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:48: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:43: error: top-level declaration of 'sum' specifies 'auto' | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:78: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 110 | template auto sum(V first, Args... rest) -> V | | ^ | conftest.cpp: In function 'int main(int, char**)': | conftest.cpp:134:8: error: 'a1' does not name a type | 134 | auto a1 = 6538; | | ^~ | conftest.cpp:135:8: error: 'a2' does not name a type | 135 | auto a2 = 48573953.4; | | ^~ | conftest.cpp:136:8: error: 'a3' does not name a type | 136 | auto a3 = "String literal"; | | ^~ | conftest.cpp:139:13: error: 'i' does not name a type | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:139:20: error: expected ';' before '*' token | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^~ | | ; | conftest.cpp:139:22: error: 'i' was not declared in this scope | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:141:12: error: 'a2' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~ | conftest.cpp:141:3: error: 'decltype' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~~~~~~~ | conftest.cpp:145:23: error: 'get_val' is not a member of 'cxx11test'; did you mean 'eval'? | 145 | short sa[cxx11test::get_val()] = { 0 }; | | ^~~~~~~ | | eval | conftest.cpp:155:14: error: ISO C++ forbids declaration of 'x' with no type [-fpermissive] | 155 | for (auto &x : array) { x += 23; } | | ^ | conftest.cpp:155:18: warning: range-based 'for' loops only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 155 | for (auto &x : array) { x += 23; } | | ^~~~~ | conftest.cpp:160:41: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ^ | conftest.cpp:160:16: error: no matching function for call to 'eval(main(int, char**)::, int)' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = int; Fn = main(int, char**)::]': | conftest.cpp:160:16: required from here | conftest.cpp:160:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:160:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:162:48: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ^ | conftest.cpp:162:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:162:16: required from here | conftest.cpp:162:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:162:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:164:56: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ^ | conftest.cpp:164:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:164:16: required from here | conftest.cpp:164:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:164:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:169:20: error: 'sum' has not been declared in 'cxx11test' | 169 | using cxx11test::sum; | | ^~~ | conftest.cpp:170:8: error: 'a' does not name a type | 170 | auto a = sum(1); | | ^ | conftest.cpp:171:8: error: 'b' does not name a type | 171 | auto b = sum(1, 2); | | ^ | conftest.cpp:172:8: error: 'c' does not name a type | 172 | auto c = sum(1.0, 2.0, 3.0); | | ^ | conftest.cpp:177:25: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse] | 177 | cxx11test::delegate d2(); | | ^~ | conftest.cpp:177:25: note: remove parentheses to default-initialize a variable | 177 | cxx11test::delegate d2(); | | ^~ | | -- | conftest.cpp:186:13: error: 'nullptr' was not declared in this scope | 186 | char *c = nullptr; | | ^~~~~~~ | conftest.cpp:190:36: error: '>>' should be '> >' within a nested template argument list | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | | > > | conftest.cpp:190:16: error: '<::' cannot begin a template-argument list [-fpermissive] | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | conftest.cpp:190:16: note: '<:' is an alternate spelling for '['. Insert whitespace between '<' and '::' | conftest.cpp:190:16: note: (if you use '-fpermissive' or '-std=c++11', or '-std=gnu++11' G++ will accept your code) | conftest.cpp:194:22: error: 'u8' was not declared in this scope; did you mean 'utf8'? | 194 | char const *utf8 = u8"UTF-8 string \u2500"; | | ^~ | | utf8 | conftest.cpp:195:3: error: 'char16_t' was not declared in this scope | 195 | char16_t const *utf16 = u"UTF-8 string \u2500"; | | ^~~~~~~~ | conftest.cpp:196:3: error: 'char32_t' was not declared in this scope | 196 | char32_t const *utf32 = U"UTF-32 string \u2500"; | | ^~~~~~~~ | configure:5254: $? = 1 | configure: failed program was: | | /* confdefs.h */ | | #define PACKAGE_NAME "osmo-pcu" | | #define PACKAGE_TARNAME "osmo-pcu" | | #define PACKAGE_VERSION "1.4.0.11-7572" | | #define PACKAGE_STRING "osmo-pcu 1.4.0.11-7572" | | #define PACKAGE_BUGREPORT "osmocom-net-gprs@lists.osmocom.org" | | #define PACKAGE_URL "" | | #define PACKAGE "osmo-pcu" | | #define VERSION "1.4.0.11-7572" | | /* end confdefs.h. */ | | | | // Does the compiler advertise C++98 conformance? | | #if !defined __cplusplus || __cplusplus < 199711L | | # error "Compiler does not advertise C++98 conformance" | | #endif | | | | // These inclusions are to reject old compilers that | | // lack the unsuffixed header files. | | #include | | #include | | | | // and are *not* freestanding headers in C++98. | | extern void assert (int); | | namespace std { | | extern int strcmp (const char *, const char *); | | } | | | | // Namespaces, exceptions, and templates were all added after "C++ 2.0". | | using std::exception; | | using std::strcmp; | | | | namespace { | | | | void test_exception_syntax() | | { | | try { | | throw "test"; | | } catch (const char *s) { | | // Extra parentheses suppress a warning when building autoconf itself, | | // due to lint rules shared with more typical C programs. | | assert (!(strcmp) (s, "test")); | | } | | } | | | | template struct test_template | | { | | T const val; | | explicit test_template(T t) : val(t) {} | | template T add(U u) { return static_cast(u) + val; } | | }; | | | | } // anonymous namespace | | | | | | // Does the compiler advertise C++ 2011 conformance? | | #if !defined __cplusplus || __cplusplus < 201103L | | # error "Compiler does not advertise C++11 conformance" | | #endif | | | | namespace cxx11test | | { | | constexpr int get_val() { return 20; } | | | | struct testinit | | { | | int i; | | double d; | | }; | | | | class delegate | | { | | public: | | delegate(int n) : n(n) {} | | delegate(): delegate(2354) {} | | | | virtual int getval() { return this->n; }; | | protected: | | int n; | | }; | | | | class overridden : public delegate | | { | | public: | | overridden(int n): delegate(n) {} | | virtual int getval() override final { return this->n * 2; } | | }; | | | | class nocopy | | { | | public: | | nocopy(int i): i(i) {} | | nocopy() = default; | | nocopy(const nocopy&) = delete; | | nocopy & operator=(const nocopy&) = delete; | | private: | | int i; | | }; | | | | // for testing lambda expressions | | template Ret eval(Fn f, Ret v) | | { | | return f(v); | | } | | | | // for testing variadic templates and trailing return types | | template auto sum(V first) -> V | | { | | return first; | | } | | template auto sum(V first, Args... rest) -> V | | { | | return first + sum(rest...); | | } | | } | | | | | | int | | main (int argc, char **argv) | | { | | int ok = 0; | | | | assert (argc); | | assert (! argv[0]); | | { | | test_exception_syntax (); | | test_template tt (2.0); | | assert (tt.add (4) == 6.0); | | assert (true && !false); | | } | | | | | | { | | // Test auto and decltype | | auto a1 = 6538; | | auto a2 = 48573953.4; | | auto a3 = "String literal"; | | | | int total = 0; | | for (auto i = a3; *i; ++i) { total += *i; } | | | | decltype(a2) a4 = 34895.034; | | } | | { | | // Test constexpr | | short sa[cxx11test::get_val()] = { 0 }; | | } | | { | | // Test initializer lists | | cxx11test::testinit il = { 4323, 435234.23544 }; | | } | | { | | // Test range-based for | | int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, | | 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; | | for (auto &x : array) { x += 23; } | | } | | { | | // Test lambda expressions | | using cxx11test::eval; | | assert (eval ([](int x) { return x*2; }, 21) == 42); | | double d = 2.0; | | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | assert (d == 5.0); | | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | assert (d == 5.0); | | } | | { | | // Test use of variadic templates | | using cxx11test::sum; | | auto a = sum(1); | | auto b = sum(1, 2); | | auto c = sum(1.0, 2.0, 3.0); | | } | | { | | // Test constructor delegation | | cxx11test::delegate d1; | | cxx11test::delegate d2(); | | cxx11test::delegate d3(45); | | } | | { | | // Test override and final | | cxx11test::overridden o1(55464); | | } | | { | | // Test nullptr | | char *c = nullptr; | | } | | { | | // Test template brackets | | test_template<::test_template> v(test_template(12)); | | } | | { | | // Unicode literals | | char const *utf8 = u8"UTF-8 string \u2500"; | | char16_t const *utf16 = u"UTF-8 string \u2500"; | | char32_t const *utf32 = U"UTF-32 string \u2500"; | | } | | | | return ok; | | } | | | configure:5254: g++ -std=gnu++0x -c -std=gnu++03 conftest.cpp >&5 | conftest.cpp:57:3: error: #error "Compiler does not advertise C++11 conformance" | 57 | # error "Compiler does not advertise C++11 conformance" | | ^~~~~ | conftest.cpp:62:3: error: 'constexpr' does not name a type | 62 | constexpr int get_val() { return 20; } | | ^~~~~~~~~ | conftest.cpp:62:3: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11' | conftest.cpp: In constructor 'cxx11test::delegate::delegate()': | conftest.cpp:74:30: warning: delegating constructors only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 74 | delegate(): delegate(2354) {} | | ^ | conftest.cpp: At global scope: | conftest.cpp:85:24: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^ | conftest.cpp:85:26: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^~~~~~~~ | conftest.cpp:92:16: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 92 | nocopy() = default; | | ^~~~~~~ | conftest.cpp:93:29: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 93 | nocopy(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:94:41: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 94 | nocopy & operator=(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:106:30: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 106 | template auto sum(V first) -> V | | ^~~ | conftest.cpp:106:25: error: top-level declaration of 'sum' specifies 'auto' | 106 | template auto sum(V first) -> V | | ^~~~ | conftest.cpp:106:46: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 106 | template auto sum(V first) -> V | | ^ | conftest.cpp:110:33: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:69: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:48: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:43: error: top-level declaration of 'sum' specifies 'auto' | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:78: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 110 | template auto sum(V first, Args... rest) -> V | | ^ | conftest.cpp: In function 'int main(int, char**)': | conftest.cpp:134:8: error: 'a1' does not name a type | 134 | auto a1 = 6538; | | ^~ | conftest.cpp:135:8: error: 'a2' does not name a type | 135 | auto a2 = 48573953.4; | | ^~ | conftest.cpp:136:8: error: 'a3' does not name a type | 136 | auto a3 = "String literal"; | | ^~ | conftest.cpp:139:13: error: 'i' does not name a type | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:139:20: error: expected ';' before '*' token | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^~ | | ; | conftest.cpp:139:22: error: 'i' was not declared in this scope | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:141:12: error: 'a2' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~ | conftest.cpp:141:3: error: 'decltype' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~~~~~~~ | conftest.cpp:145:23: error: 'get_val' is not a member of 'cxx11test'; did you mean 'eval'? | 145 | short sa[cxx11test::get_val()] = { 0 }; | | ^~~~~~~ | | eval | conftest.cpp:155:14: error: ISO C++ forbids declaration of 'x' with no type [-fpermissive] | 155 | for (auto &x : array) { x += 23; } | | ^ | conftest.cpp:155:18: warning: range-based 'for' loops only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 155 | for (auto &x : array) { x += 23; } | | ^~~~~ | conftest.cpp:160:41: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ^ | conftest.cpp:160:16: error: no matching function for call to 'eval(main(int, char**)::, int)' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = int; Fn = main(int, char**)::]': | conftest.cpp:160:16: required from here | conftest.cpp:160:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:160:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:162:48: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ^ | conftest.cpp:162:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:162:16: required from here | conftest.cpp:162:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:162:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:164:56: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ^ | conftest.cpp:164:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:164:16: required from here | conftest.cpp:164:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:164:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:169:20: error: 'sum' has not been declared in 'cxx11test' | 169 | using cxx11test::sum; | | ^~~ | conftest.cpp:170:8: error: 'a' does not name a type | 170 | auto a = sum(1); | | ^ | conftest.cpp:171:8: error: 'b' does not name a type | 171 | auto b = sum(1, 2); | | ^ | conftest.cpp:172:8: error: 'c' does not name a type | 172 | auto c = sum(1.0, 2.0, 3.0); | | ^ | conftest.cpp:177:25: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse] | 177 | cxx11test::delegate d2(); | | ^~ | conftest.cpp:177:25: note: remove parentheses to default-initialize a variable | 177 | cxx11test::delegate d2(); | | ^~ | | -- | conftest.cpp:186:13: error: 'nullptr' was not declared in this scope | 186 | char *c = nullptr; | | ^~~~~~~ | conftest.cpp:190:36: error: '>>' should be '> >' within a nested template argument list | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | | > > | conftest.cpp:190:16: error: '<::' cannot begin a template-argument list [-fpermissive] | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | conftest.cpp:190:16: note: '<:' is an alternate spelling for '['. Insert whitespace between '<' and '::' | conftest.cpp:190:16: note: (if you use '-fpermissive' or '-std=c++11', or '-std=gnu++11' G++ will accept your code) | conftest.cpp:194:22: error: 'u8' was not declared in this scope; did you mean 'utf8'? | 194 | char const *utf8 = u8"UTF-8 string \u2500"; | | ^~ | | utf8 | conftest.cpp:195:3: error: 'char16_t' was not declared in this scope | 195 | char16_t const *utf16 = u"UTF-8 string \u2500"; | | ^~~~~~~~ | conftest.cpp:196:3: error: 'char32_t' was not declared in this scope | 196 | char32_t const *utf32 = U"UTF-32 string \u2500"; | | ^~~~~~~~ | configure:5254: $? = 1 | configure: failed program was: | | /* confdefs.h */ | | #define PACKAGE_NAME "osmo-pcu" | | #define PACKAGE_TARNAME "osmo-pcu" | | #define PACKAGE_VERSION "1.4.0.11-7572" | | #define PACKAGE_STRING "osmo-pcu 1.4.0.11-7572" | | #define PACKAGE_BUGREPORT "osmocom-net-gprs@lists.osmocom.org" | | #define PACKAGE_URL "" | | #define PACKAGE "osmo-pcu" | | #define VERSION "1.4.0.11-7572" | | /* end confdefs.h. */ | | | | // Does the compiler advertise C++98 conformance? | | #if !defined __cplusplus || __cplusplus < 199711L | | # error "Compiler does not advertise C++98 conformance" | | #endif | | | | // These inclusions are to reject old compilers that | | // lack the unsuffixed header files. | | #include | | #include | | | | // and are *not* freestanding headers in C++98. | | extern void assert (int); | | namespace std { | | extern int strcmp (const char *, const char *); | | } | | | | // Namespaces, exceptions, and templates were all added after "C++ 2.0". | | using std::exception; | | using std::strcmp; | | | | namespace { | | | | void test_exception_syntax() | | { | | try { | | throw "test"; | | } catch (const char *s) { | | // Extra parentheses suppress a warning when building autoconf itself, | | // due to lint rules shared with more typical C programs. | | assert (!(strcmp) (s, "test")); | | } | | } | | | | template struct test_template | | { | | T const val; | | explicit test_template(T t) : val(t) {} | | template T add(U u) { return static_cast(u) + val; } | | }; | | | | } // anonymous namespace | | | | | | // Does the compiler advertise C++ 2011 conformance? | | #if !defined __cplusplus || __cplusplus < 201103L | | # error "Compiler does not advertise C++11 conformance" | | #endif | | | | namespace cxx11test | | { | | constexpr int get_val() { return 20; } | | | | struct testinit | | { | | int i; | | double d; | | }; | | | | class delegate | | { | | public: | | delegate(int n) : n(n) {} | | delegate(): delegate(2354) {} | | | | virtual int getval() { return this->n; }; | | protected: | | int n; | | }; | | | | class overridden : public delegate | | { | | public: | | overridden(int n): delegate(n) {} | | virtual int getval() override final { return this->n * 2; } | | }; | | | | class nocopy | | { | | public: | | nocopy(int i): i(i) {} | | nocopy() = default; | | nocopy(const nocopy&) = delete; | | nocopy & operator=(const nocopy&) = delete; | | private: | | int i; | | }; | | | | // for testing lambda expressions | | template Ret eval(Fn f, Ret v) | | { | | return f(v); | | } | | | | // for testing variadic templates and trailing return types | | template auto sum(V first) -> V | | { | | return first; | | } | | template auto sum(V first, Args... rest) -> V | | { | | return first + sum(rest...); | | } | | } | | | | | | int | | main (int argc, char **argv) | | { | | int ok = 0; | | | | assert (argc); | | assert (! argv[0]); | | { | | test_exception_syntax (); | | test_template tt (2.0); | | assert (tt.add (4) == 6.0); | | assert (true && !false); | | } | | | | | | { | | // Test auto and decltype | | auto a1 = 6538; | | auto a2 = 48573953.4; | | auto a3 = "String literal"; | | | | int total = 0; | | for (auto i = a3; *i; ++i) { total += *i; } | | | | decltype(a2) a4 = 34895.034; | | } | | { | | // Test constexpr | | short sa[cxx11test::get_val()] = { 0 }; | | } | | { | | // Test initializer lists | | cxx11test::testinit il = { 4323, 435234.23544 }; | | } | | { | | // Test range-based for | | int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, | | 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; | | for (auto &x : array) { x += 23; } | | } | | { | | // Test lambda expressions | | using cxx11test::eval; | | assert (eval ([](int x) { return x*2; }, 21) == 42); | | double d = 2.0; | | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | assert (d == 5.0); | | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | assert (d == 5.0); | | } | | { | | // Test use of variadic templates | | using cxx11test::sum; | | auto a = sum(1); | | auto b = sum(1, 2); | | auto c = sum(1.0, 2.0, 3.0); | | } | | { | | // Test constructor delegation | | cxx11test::delegate d1; | | cxx11test::delegate d2(); | | cxx11test::delegate d3(45); | | } | | { | | // Test override and final | | cxx11test::overridden o1(55464); | | } | | { | | // Test nullptr | | char *c = nullptr; | | } | | { | | // Test template brackets | | test_template<::test_template> v(test_template(12)); | | } | | { | | // Unicode literals | | char const *utf8 = u8"UTF-8 string \u2500"; | | char16_t const *utf16 = u"UTF-8 string \u2500"; | | char32_t const *utf32 = U"UTF-32 string \u2500"; | | } | | | | return ok; | | } | | | configure:5254: g++ -std=c++11 -c -std=gnu++03 conftest.cpp >&5 | conftest.cpp:57:3: error: #error "Compiler does not advertise C++11 conformance" | 57 | # error "Compiler does not advertise C++11 conformance" | | ^~~~~ | conftest.cpp:62:3: error: 'constexpr' does not name a type | 62 | constexpr int get_val() { return 20; } | | ^~~~~~~~~ | conftest.cpp:62:3: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11' | conftest.cpp: In constructor 'cxx11test::delegate::delegate()': | conftest.cpp:74:30: warning: delegating constructors only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 74 | delegate(): delegate(2354) {} | | ^ | conftest.cpp: At global scope: | conftest.cpp:85:24: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^ | conftest.cpp:85:26: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^~~~~~~~ | conftest.cpp:92:16: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 92 | nocopy() = default; | | ^~~~~~~ | conftest.cpp:93:29: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 93 | nocopy(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:94:41: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 94 | nocopy & operator=(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:106:30: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 106 | template auto sum(V first) -> V | | ^~~ | conftest.cpp:106:25: error: top-level declaration of 'sum' specifies 'auto' | 106 | template auto sum(V first) -> V | | ^~~~ | conftest.cpp:106:46: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 106 | template auto sum(V first) -> V | | ^ | conftest.cpp:110:33: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:69: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:48: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:43: error: top-level declaration of 'sum' specifies 'auto' | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:78: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 110 | template auto sum(V first, Args... rest) -> V | | ^ | conftest.cpp: In function 'int main(int, char**)': | conftest.cpp:134:8: error: 'a1' does not name a type | 134 | auto a1 = 6538; | | ^~ | conftest.cpp:135:8: error: 'a2' does not name a type | 135 | auto a2 = 48573953.4; | | ^~ | conftest.cpp:136:8: error: 'a3' does not name a type | 136 | auto a3 = "String literal"; | | ^~ | conftest.cpp:139:13: error: 'i' does not name a type | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:139:20: error: expected ';' before '*' token | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^~ | | ; | conftest.cpp:139:22: error: 'i' was not declared in this scope | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:141:12: error: 'a2' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~ | conftest.cpp:141:3: error: 'decltype' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~~~~~~~ | conftest.cpp:145:23: error: 'get_val' is not a member of 'cxx11test'; did you mean 'eval'? | 145 | short sa[cxx11test::get_val()] = { 0 }; | | ^~~~~~~ | | eval | conftest.cpp:155:14: error: ISO C++ forbids declaration of 'x' with no type [-fpermissive] | 155 | for (auto &x : array) { x += 23; } | | ^ | conftest.cpp:155:18: warning: range-based 'for' loops only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 155 | for (auto &x : array) { x += 23; } | | ^~~~~ | conftest.cpp:160:41: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ^ | conftest.cpp:160:16: error: no matching function for call to 'eval(main(int, char**)::, int)' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = int; Fn = main(int, char**)::]': | conftest.cpp:160:16: required from here | conftest.cpp:160:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:160:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:162:48: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ^ | conftest.cpp:162:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:162:16: required from here | conftest.cpp:162:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:162:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:164:56: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ^ | conftest.cpp:164:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:164:16: required from here | conftest.cpp:164:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:164:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:169:20: error: 'sum' has not been declared in 'cxx11test' | 169 | using cxx11test::sum; | | ^~~ | conftest.cpp:170:8: error: 'a' does not name a type | 170 | auto a = sum(1); | | ^ | conftest.cpp:171:8: error: 'b' does not name a type | 171 | auto b = sum(1, 2); | | ^ | conftest.cpp:172:8: error: 'c' does not name a type | 172 | auto c = sum(1.0, 2.0, 3.0); | | ^ | conftest.cpp:177:25: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse] | 177 | cxx11test::delegate d2(); | | ^~ | conftest.cpp:177:25: note: remove parentheses to default-initialize a variable | 177 | cxx11test::delegate d2(); | | ^~ | | -- | conftest.cpp:186:13: error: 'nullptr' was not declared in this scope | 186 | char *c = nullptr; | | ^~~~~~~ | conftest.cpp:190:36: error: '>>' should be '> >' within a nested template argument list | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | | > > | conftest.cpp:190:16: error: '<::' cannot begin a template-argument list [-fpermissive] | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | conftest.cpp:190:16: note: '<:' is an alternate spelling for '['. Insert whitespace between '<' and '::' | conftest.cpp:190:16: note: (if you use '-fpermissive' or '-std=c++11', or '-std=gnu++11' G++ will accept your code) | conftest.cpp:194:22: error: 'u8' was not declared in this scope; did you mean 'utf8'? | 194 | char const *utf8 = u8"UTF-8 string \u2500"; | | ^~ | | utf8 | conftest.cpp:195:3: error: 'char16_t' was not declared in this scope | 195 | char16_t const *utf16 = u"UTF-8 string \u2500"; | | ^~~~~~~~ | conftest.cpp:196:3: error: 'char32_t' was not declared in this scope | 196 | char32_t const *utf32 = U"UTF-32 string \u2500"; | | ^~~~~~~~ | configure:5254: $? = 1 | configure: failed program was: | | /* confdefs.h */ | | #define PACKAGE_NAME "osmo-pcu" | | #define PACKAGE_TARNAME "osmo-pcu" | | #define PACKAGE_VERSION "1.4.0.11-7572" | | #define PACKAGE_STRING "osmo-pcu 1.4.0.11-7572" | | #define PACKAGE_BUGREPORT "osmocom-net-gprs@lists.osmocom.org" | | #define PACKAGE_URL "" | | #define PACKAGE "osmo-pcu" | | #define VERSION "1.4.0.11-7572" | | /* end confdefs.h. */ | | | | // Does the compiler advertise C++98 conformance? | | #if !defined __cplusplus || __cplusplus < 199711L | | # error "Compiler does not advertise C++98 conformance" | | #endif | | | | // These inclusions are to reject old compilers that | | // lack the unsuffixed header files. | | #include | | #include | | | | // and are *not* freestanding headers in C++98. | | extern void assert (int); | | namespace std { | | extern int strcmp (const char *, const char *); | | } | | | | // Namespaces, exceptions, and templates were all added after "C++ 2.0". | | using std::exception; | | using std::strcmp; | | | | namespace { | | | | void test_exception_syntax() | | { | | try { | | throw "test"; | | } catch (const char *s) { | | // Extra parentheses suppress a warning when building autoconf itself, | | // due to lint rules shared with more typical C programs. | | assert (!(strcmp) (s, "test")); | | } | | } | | | | template struct test_template | | { | | T const val; | | explicit test_template(T t) : val(t) {} | | template T add(U u) { return static_cast(u) + val; } | | }; | | | | } // anonymous namespace | | | | | | // Does the compiler advertise C++ 2011 conformance? | | #if !defined __cplusplus || __cplusplus < 201103L | | # error "Compiler does not advertise C++11 conformance" | | #endif | | | | namespace cxx11test | | { | | constexpr int get_val() { return 20; } | | | | struct testinit | | { | | int i; | | double d; | | }; | | | | class delegate | | { | | public: | | delegate(int n) : n(n) {} | | delegate(): delegate(2354) {} | | | | virtual int getval() { return this->n; }; | | protected: | | int n; | | }; | | | | class overridden : public delegate | | { | | public: | | overridden(int n): delegate(n) {} | | virtual int getval() override final { return this->n * 2; } | | }; | | | | class nocopy | | { | | public: | | nocopy(int i): i(i) {} | | nocopy() = default; | | nocopy(const nocopy&) = delete; | | nocopy & operator=(const nocopy&) = delete; | | private: | | int i; | | }; | | | | // for testing lambda expressions | | template Ret eval(Fn f, Ret v) | | { | | return f(v); | | } | | | | // for testing variadic templates and trailing return types | | template auto sum(V first) -> V | | { | | return first; | | } | | template auto sum(V first, Args... rest) -> V | | { | | return first + sum(rest...); | | } | | } | | | | | | int | | main (int argc, char **argv) | | { | | int ok = 0; | | | | assert (argc); | | assert (! argv[0]); | | { | | test_exception_syntax (); | | test_template tt (2.0); | | assert (tt.add (4) == 6.0); | | assert (true && !false); | | } | | | | | | { | | // Test auto and decltype | | auto a1 = 6538; | | auto a2 = 48573953.4; | | auto a3 = "String literal"; | | | | int total = 0; | | for (auto i = a3; *i; ++i) { total += *i; } | | | | decltype(a2) a4 = 34895.034; | | } | | { | | // Test constexpr | | short sa[cxx11test::get_val()] = { 0 }; | | } | | { | | // Test initializer lists | | cxx11test::testinit il = { 4323, 435234.23544 }; | | } | | { | | // Test range-based for | | int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, | | 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; | | for (auto &x : array) { x += 23; } | | } | | { | | // Test lambda expressions | | using cxx11test::eval; | | assert (eval ([](int x) { return x*2; }, 21) == 42); | | double d = 2.0; | | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | assert (d == 5.0); | | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | assert (d == 5.0); | | } | | { | | // Test use of variadic templates | | using cxx11test::sum; | | auto a = sum(1); | | auto b = sum(1, 2); | | auto c = sum(1.0, 2.0, 3.0); | | } | | { | | // Test constructor delegation | | cxx11test::delegate d1; | | cxx11test::delegate d2(); | | cxx11test::delegate d3(45); | | } | | { | | // Test override and final | | cxx11test::overridden o1(55464); | | } | | { | | // Test nullptr | | char *c = nullptr; | | } | | { | | // Test template brackets | | test_template<::test_template> v(test_template(12)); | | } | | { | | // Unicode literals | | char const *utf8 = u8"UTF-8 string \u2500"; | | char16_t const *utf16 = u"UTF-8 string \u2500"; | | char32_t const *utf32 = U"UTF-32 string \u2500"; | | } | | | | return ok; | | } | | | configure:5254: g++ -std=c++0x -c -std=gnu++03 conftest.cpp >&5 | conftest.cpp:57:3: error: #error "Compiler does not advertise C++11 conformance" | 57 | # error "Compiler does not advertise C++11 conformance" | | ^~~~~ | conftest.cpp:62:3: error: 'constexpr' does not name a type | 62 | constexpr int get_val() { return 20; } | | ^~~~~~~~~ | conftest.cpp:62:3: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11' | conftest.cpp: In constructor 'cxx11test::delegate::delegate()': | conftest.cpp:74:30: warning: delegating constructors only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 74 | delegate(): delegate(2354) {} | | ^ | conftest.cpp: At global scope: | conftest.cpp:85:24: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^ | conftest.cpp:85:26: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^~~~~~~~ | conftest.cpp:92:16: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 92 | nocopy() = default; | | ^~~~~~~ | conftest.cpp:93:29: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 93 | nocopy(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:94:41: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 94 | nocopy & operator=(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:106:30: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 106 | template auto sum(V first) -> V | | ^~~ | conftest.cpp:106:25: error: top-level declaration of 'sum' specifies 'auto' | 106 | template auto sum(V first) -> V | | ^~~~ | conftest.cpp:106:46: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 106 | template auto sum(V first) -> V | | ^ | conftest.cpp:110:33: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:69: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:48: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:43: error: top-level declaration of 'sum' specifies 'auto' | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:78: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 110 | template auto sum(V first, Args... rest) -> V | | ^ | conftest.cpp: In function 'int main(int, char**)': | conftest.cpp:134:8: error: 'a1' does not name a type | 134 | auto a1 = 6538; | | ^~ | conftest.cpp:135:8: error: 'a2' does not name a type | 135 | auto a2 = 48573953.4; | | ^~ | conftest.cpp:136:8: error: 'a3' does not name a type | 136 | auto a3 = "String literal"; | | ^~ | conftest.cpp:139:13: error: 'i' does not name a type | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:139:20: error: expected ';' before '*' token | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^~ | | ; | conftest.cpp:139:22: error: 'i' was not declared in this scope | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:141:12: error: 'a2' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~ | conftest.cpp:141:3: error: 'decltype' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~~~~~~~ | conftest.cpp:145:23: error: 'get_val' is not a member of 'cxx11test'; did you mean 'eval'? | 145 | short sa[cxx11test::get_val()] = { 0 }; | | ^~~~~~~ | | eval | conftest.cpp:155:14: error: ISO C++ forbids declaration of 'x' with no type [-fpermissive] | 155 | for (auto &x : array) { x += 23; } | | ^ | conftest.cpp:155:18: warning: range-based 'for' loops only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 155 | for (auto &x : array) { x += 23; } | | ^~~~~ | conftest.cpp:160:41: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ^ | conftest.cpp:160:16: error: no matching function for call to 'eval(main(int, char**)::, int)' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = int; Fn = main(int, char**)::]': | conftest.cpp:160:16: required from here | conftest.cpp:160:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:160:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:162:48: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ^ | conftest.cpp:162:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:162:16: required from here | conftest.cpp:162:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:162:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:164:56: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ^ | conftest.cpp:164:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:164:16: required from here | conftest.cpp:164:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:164:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:169:20: error: 'sum' has not been declared in 'cxx11test' | 169 | using cxx11test::sum; | | ^~~ | conftest.cpp:170:8: error: 'a' does not name a type | 170 | auto a = sum(1); | | ^ | conftest.cpp:171:8: error: 'b' does not name a type | 171 | auto b = sum(1, 2); | | ^ | conftest.cpp:172:8: error: 'c' does not name a type | 172 | auto c = sum(1.0, 2.0, 3.0); | | ^ | conftest.cpp:177:25: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse] | 177 | cxx11test::delegate d2(); | | ^~ | conftest.cpp:177:25: note: remove parentheses to default-initialize a variable | 177 | cxx11test::delegate d2(); | | ^~ | | -- | conftest.cpp:186:13: error: 'nullptr' was not declared in this scope | 186 | char *c = nullptr; | | ^~~~~~~ | conftest.cpp:190:36: error: '>>' should be '> >' within a nested template argument list | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | | > > | conftest.cpp:190:16: error: '<::' cannot begin a template-argument list [-fpermissive] | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | conftest.cpp:190:16: note: '<:' is an alternate spelling for '['. Insert whitespace between '<' and '::' | conftest.cpp:190:16: note: (if you use '-fpermissive' or '-std=c++11', or '-std=gnu++11' G++ will accept your code) | conftest.cpp:194:22: error: 'u8' was not declared in this scope; did you mean 'utf8'? | 194 | char const *utf8 = u8"UTF-8 string \u2500"; | | ^~ | | utf8 | conftest.cpp:195:3: error: 'char16_t' was not declared in this scope | 195 | char16_t const *utf16 = u"UTF-8 string \u2500"; | | ^~~~~~~~ | conftest.cpp:196:3: error: 'char32_t' was not declared in this scope | 196 | char32_t const *utf32 = U"UTF-32 string \u2500"; | | ^~~~~~~~ | configure:5254: $? = 1 | configure: failed program was: | | /* confdefs.h */ | | #define PACKAGE_NAME "osmo-pcu" | | #define PACKAGE_TARNAME "osmo-pcu" | | #define PACKAGE_VERSION "1.4.0.11-7572" | | #define PACKAGE_STRING "osmo-pcu 1.4.0.11-7572" | | #define PACKAGE_BUGREPORT "osmocom-net-gprs@lists.osmocom.org" | | #define PACKAGE_URL "" | | #define PACKAGE "osmo-pcu" | | #define VERSION "1.4.0.11-7572" | | /* end confdefs.h. */ | | | | // Does the compiler advertise C++98 conformance? | | #if !defined __cplusplus || __cplusplus < 199711L | | # error "Compiler does not advertise C++98 conformance" | | #endif | | | | // These inclusions are to reject old compilers that | | // lack the unsuffixed header files. | | #include | | #include | | | | // and are *not* freestanding headers in C++98. | | extern void assert (int); | | namespace std { | | extern int strcmp (const char *, const char *); | | } | | | | // Namespaces, exceptions, and templates were all added after "C++ 2.0". | | using std::exception; | | using std::strcmp; | | | | namespace { | | | | void test_exception_syntax() | | { | | try { | | throw "test"; | | } catch (const char *s) { | | // Extra parentheses suppress a warning when building autoconf itself, | | // due to lint rules shared with more typical C programs. | | assert (!(strcmp) (s, "test")); | | } | | } | | | | template struct test_template | | { | | T const val; | | explicit test_template(T t) : val(t) {} | | template T add(U u) { return static_cast(u) + val; } | | }; | | | | } // anonymous namespace | | | | | | // Does the compiler advertise C++ 2011 conformance? | | #if !defined __cplusplus || __cplusplus < 201103L | | # error "Compiler does not advertise C++11 conformance" | | #endif | | | | namespace cxx11test | | { | | constexpr int get_val() { return 20; } | | | | struct testinit | | { | | int i; | | double d; | | }; | | | | class delegate | | { | | public: | | delegate(int n) : n(n) {} | | delegate(): delegate(2354) {} | | | | virtual int getval() { return this->n; }; | | protected: | | int n; | | }; | | | | class overridden : public delegate | | { | | public: | | overridden(int n): delegate(n) {} | | virtual int getval() override final { return this->n * 2; } | | }; | | | | class nocopy | | { | | public: | | nocopy(int i): i(i) {} | | nocopy() = default; | | nocopy(const nocopy&) = delete; | | nocopy & operator=(const nocopy&) = delete; | | private: | | int i; | | }; | | | | // for testing lambda expressions | | template Ret eval(Fn f, Ret v) | | { | | return f(v); | | } | | | | // for testing variadic templates and trailing return types | | template auto sum(V first) -> V | | { | | return first; | | } | | template auto sum(V first, Args... rest) -> V | | { | | return first + sum(rest...); | | } | | } | | | | | | int | | main (int argc, char **argv) | | { | | int ok = 0; | | | | assert (argc); | | assert (! argv[0]); | | { | | test_exception_syntax (); | | test_template tt (2.0); | | assert (tt.add (4) == 6.0); | | assert (true && !false); | | } | | | | | | { | | // Test auto and decltype | | auto a1 = 6538; | | auto a2 = 48573953.4; | | auto a3 = "String literal"; | | | | int total = 0; | | for (auto i = a3; *i; ++i) { total += *i; } | | | | decltype(a2) a4 = 34895.034; | | } | | { | | // Test constexpr | | short sa[cxx11test::get_val()] = { 0 }; | | } | | { | | // Test initializer lists | | cxx11test::testinit il = { 4323, 435234.23544 }; | | } | | { | | // Test range-based for | | int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, | | 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; | | for (auto &x : array) { x += 23; } | | } | | { | | // Test lambda expressions | | using cxx11test::eval; | | assert (eval ([](int x) { return x*2; }, 21) == 42); | | double d = 2.0; | | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | assert (d == 5.0); | | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | assert (d == 5.0); | | } | | { | | // Test use of variadic templates | | using cxx11test::sum; | | auto a = sum(1); | | auto b = sum(1, 2); | | auto c = sum(1.0, 2.0, 3.0); | | } | | { | | // Test constructor delegation | | cxx11test::delegate d1; | | cxx11test::delegate d2(); | | cxx11test::delegate d3(45); | | } | | { | | // Test override and final | | cxx11test::overridden o1(55464); | | } | | { | | // Test nullptr | | char *c = nullptr; | | } | | { | | // Test template brackets | | test_template<::test_template> v(test_template(12)); | | } | | { | | // Unicode literals | | char const *utf8 = u8"UTF-8 string \u2500"; | | char16_t const *utf16 = u"UTF-8 string \u2500"; | | char32_t const *utf32 = U"UTF-32 string \u2500"; | | } | | | | return ok; | | } | | | configure:5254: g++ -qlanglvl=extended0x -c -std=gnu++03 conftest.cpp >&5 | g++: error: unrecognized command-line option '-qlanglvl=extended0x' | configure:5254: $? = 1 | configure: failed program was: | | /* confdefs.h */ | | #define PACKAGE_NAME "osmo-pcu" | | #define PACKAGE_TARNAME "osmo-pcu" | | #define PACKAGE_VERSION "1.4.0.11-7572" | | #define PACKAGE_STRING "osmo-pcu 1.4.0.11-7572" | | #define PACKAGE_BUGREPORT "osmocom-net-gprs@lists.osmocom.org" | | #define PACKAGE_URL "" | | #define PACKAGE "osmo-pcu" | | #define VERSION "1.4.0.11-7572" | | /* end confdefs.h. */ | | | | // Does the compiler advertise C++98 conformance? | | #if !defined __cplusplus || __cplusplus < 199711L | | # error "Compiler does not advertise C++98 conformance" | | #endif | | | | // These inclusions are to reject old compilers that | | // lack the unsuffixed header files. | | #include | | #include | | | | // and are *not* freestanding headers in C++98. | | extern void assert (int); | | namespace std { | | extern int strcmp (const char *, const char *); | | } | | | | // Namespaces, exceptions, and templates were all added after "C++ 2.0". | | using std::exception; | | using std::strcmp; | | | | namespace { | | | | void test_exception_syntax() | | { | | try { | | throw "test"; | | } catch (const char *s) { | | // Extra parentheses suppress a warning when building autoconf itself, | | // due to lint rules shared with more typical C programs. | | assert (!(strcmp) (s, "test")); | | } | | } | | | | template struct test_template | | { | | T const val; | | explicit test_template(T t) : val(t) {} | | template T add(U u) { return static_cast(u) + val; } | | }; | | | | } // anonymous namespace | | | | | | // Does the compiler advertise C++ 2011 conformance? | | #if !defined __cplusplus || __cplusplus < 201103L | | # error "Compiler does not advertise C++11 conformance" | | #endif | | | | namespace cxx11test | | { | | constexpr int get_val() { return 20; } | | | | struct testinit | | { | | int i; | | double d; | | }; | | | | class delegate | | { | | public: | | delegate(int n) : n(n) {} | | delegate(): delegate(2354) {} | | | | virtual int getval() { return this->n; }; | | protected: | | int n; | | }; | | | | class overridden : public delegate | | { | | public: | | overridden(int n): delegate(n) {} | | virtual int getval() override final { return this->n * 2; } | | }; | | | | class nocopy | | { | | public: | | nocopy(int i): i(i) {} | | nocopy() = default; | | nocopy(const nocopy&) = delete; | | nocopy & operator=(const nocopy&) = delete; | | private: | | int i; | | }; | | | | // for testing lambda expressions | | template Ret eval(Fn f, Ret v) | | { | | return f(v); | | } | | | | // for testing variadic templates and trailing return types | | template auto sum(V first) -> V | | { | | return first; | | } | | template auto sum(V first, Args... rest) -> V | | { | | return first + sum(rest...); | | } | | } | | | | | | int | | main (int argc, char **argv) | | { | | int ok = 0; | | | | assert (argc); | | assert (! argv[0]); | | { | | test_exception_syntax (); | | test_template tt (2.0); | | assert (tt.add (4) == 6.0); | | assert (true && !false); | | } | | | | | | { | | // Test auto and decltype | | auto a1 = 6538; | | auto a2 = 48573953.4; | | auto a3 = "String literal"; | | | | int total = 0; | | for (auto i = a3; *i; ++i) { total += *i; } | | | | decltype(a2) a4 = 34895.034; | | } | | { | | // Test constexpr | | short sa[cxx11test::get_val()] = { 0 }; | | } | | { | | // Test initializer lists | | cxx11test::testinit il = { 4323, 435234.23544 }; | | } | | { | | // Test range-based for | | int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, | | 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; | | for (auto &x : array) { x += 23; } | | } | | { | | // Test lambda expressions | | using cxx11test::eval; | | assert (eval ([](int x) { return x*2; }, 21) == 42); | | double d = 2.0; | | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | assert (d == 5.0); | | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | assert (d == 5.0); | | } | | { | | // Test use of variadic templates | | using cxx11test::sum; | | auto a = sum(1); | | auto b = sum(1, 2); | | auto c = sum(1.0, 2.0, 3.0); | | } | | { | | // Test constructor delegation | | cxx11test::delegate d1; | | cxx11test::delegate d2(); | | cxx11test::delegate d3(45); | | } | | { | | // Test override and final | | cxx11test::overridden o1(55464); | | } | | { | | // Test nullptr | | char *c = nullptr; | | } | | { | | // Test template brackets | | test_template<::test_template> v(test_template(12)); | | } | | { | | // Unicode literals | | char const *utf8 = u8"UTF-8 string \u2500"; | | char16_t const *utf16 = u"UTF-8 string \u2500"; | | char32_t const *utf32 = U"UTF-32 string \u2500"; | | } | | | | return ok; | | } | | | configure:5254: g++ -AA -c -std=gnu++03 conftest.cpp >&5 | : error: missing '(' after predicate | conftest.cpp:57:3: error: #error "Compiler does not advertise C++11 conformance" | 57 | # error "Compiler does not advertise C++11 conformance" | | ^~~~~ | conftest.cpp:62:3: error: 'constexpr' does not name a type | 62 | constexpr int get_val() { return 20; } | | ^~~~~~~~~ | conftest.cpp:62:3: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11' | conftest.cpp: In constructor 'cxx11test::delegate::delegate()': | conftest.cpp:74:30: warning: delegating constructors only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 74 | delegate(): delegate(2354) {} | | ^ | conftest.cpp: At global scope: | conftest.cpp:85:24: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^ | conftest.cpp:85:26: warning: override controls (override/final) only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 85 | virtual int getval() override final { return this->n * 2; } | | ^~~~~~~~ | conftest.cpp:92:16: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 92 | nocopy() = default; | | ^~~~~~~ | conftest.cpp:93:29: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 93 | nocopy(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:94:41: warning: defaulted and deleted functions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 94 | nocopy & operator=(const nocopy&) = delete; | | ^~~~~~ | conftest.cpp:106:30: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 106 | template auto sum(V first) -> V | | ^~~ | conftest.cpp:106:25: error: top-level declaration of 'sum' specifies 'auto' | 106 | template auto sum(V first) -> V | | ^~~~ | conftest.cpp:106:46: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 106 | template auto sum(V first) -> V | | ^ | conftest.cpp:110:33: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:69: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:48: error: ISO C++ forbids declaration of 'sum' with no type [-fpermissive] | 110 | template auto sum(V first, Args... rest) -> V | | ^~~ | conftest.cpp:110:43: error: top-level declaration of 'sum' specifies 'auto' | 110 | template auto sum(V first, Args... rest) -> V | | ^~~~ | conftest.cpp:110:78: error: trailing return type only available with '-std=c++11' or '-std=gnu++11' | 110 | template auto sum(V first, Args... rest) -> V | | ^ | conftest.cpp: In function 'int main(int, char**)': | conftest.cpp:134:8: error: 'a1' does not name a type | 134 | auto a1 = 6538; | | ^~ | conftest.cpp:135:8: error: 'a2' does not name a type | 135 | auto a2 = 48573953.4; | | ^~ | conftest.cpp:136:8: error: 'a3' does not name a type | 136 | auto a3 = "String literal"; | | ^~ | conftest.cpp:139:13: error: 'i' does not name a type | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:139:20: error: expected ';' before '*' token | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^~ | | ; | conftest.cpp:139:22: error: 'i' was not declared in this scope | 139 | for (auto i = a3; *i; ++i) { total += *i; } | | ^ | conftest.cpp:141:12: error: 'a2' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~ | conftest.cpp:141:3: error: 'decltype' was not declared in this scope | 141 | decltype(a2) a4 = 34895.034; | | ^~~~~~~~ | conftest.cpp:145:23: error: 'get_val' is not a member of 'cxx11test'; did you mean 'eval'? | 145 | short sa[cxx11test::get_val()] = { 0 }; | | ^~~~~~~ | | eval | conftest.cpp:155:14: error: ISO C++ forbids declaration of 'x' with no type [-fpermissive] | 155 | for (auto &x : array) { x += 23; } | | ^ | conftest.cpp:155:18: warning: range-based 'for' loops only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 155 | for (auto &x : array) { x += 23; } | | ^~~~~ | conftest.cpp:160:41: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ^ | conftest.cpp:160:16: error: no matching function for call to 'eval(main(int, char**)::, int)' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = int; Fn = main(int, char**)::]': | conftest.cpp:160:16: required from here | conftest.cpp:160:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 160 | assert (eval ([](int x) { return x*2; }, 21) == 42); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:160:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:162:48: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ^ | conftest.cpp:162:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:162:16: required from here | conftest.cpp:162:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 162 | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:162:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:164:56: warning: lambda expressions only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions] | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ^ | conftest.cpp:164:16: error: no matching function for call to 'eval(main(int, char**)::, double)' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:100:44: note: candidate: 'template Ret cxx11test::eval(Fn, Ret)' | 100 | template Ret eval(Fn f, Ret v) | | ^~~~ | conftest.cpp:100:44: note: template argument deduction/substitution failed: | conftest.cpp: In substitution of 'template Ret cxx11test::eval(Fn, Ret) [with Ret = double; Fn = main(int, char**)::]': | conftest.cpp:164:16: required from here | conftest.cpp:164:16: error: template argument for 'template Ret cxx11test::eval(Fn, Ret)' uses local type 'main(int, char**)::' | 164 | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | conftest.cpp:164:16: error: trying to instantiate 'template Ret cxx11test::eval(Fn, Ret)' | conftest.cpp:169:20: error: 'sum' has not been declared in 'cxx11test' | 169 | using cxx11test::sum; | | ^~~ | conftest.cpp:170:8: error: 'a' does not name a type | 170 | auto a = sum(1); | | ^ | conftest.cpp:171:8: error: 'b' does not name a type | 171 | auto b = sum(1, 2); | | ^ | conftest.cpp:172:8: error: 'c' does not name a type | 172 | auto c = sum(1.0, 2.0, 3.0); | | ^ | conftest.cpp:177:25: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse] | 177 | cxx11test::delegate d2(); | | ^~ | conftest.cpp:177:25: note: remove parentheses to default-initialize a variable | 177 | cxx11test::delegate d2(); | | ^~ | | -- | conftest.cpp:186:13: error: 'nullptr' was not declared in this scope | 186 | char *c = nullptr; | | ^~~~~~~ | conftest.cpp:190:36: error: '>>' should be '> >' within a nested template argument list | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | | > > | conftest.cpp:190:16: error: '<::' cannot begin a template-argument list [-fpermissive] | 190 | test_template<::test_template> v(test_template(12)); | | ^~ | conftest.cpp:190:16: note: '<:' is an alternate spelling for '['. Insert whitespace between '<' and '::' | conftest.cpp:190:16: note: (if you use '-fpermissive' or '-std=c++11', or '-std=gnu++11' G++ will accept your code) | conftest.cpp:194:22: error: 'u8' was not declared in this scope; did you mean 'utf8'? | 194 | char const *utf8 = u8"UTF-8 string \u2500"; | | ^~ | | utf8 | conftest.cpp:195:3: error: 'char16_t' was not declared in this scope | 195 | char16_t const *utf16 = u"UTF-8 string \u2500"; | | ^~~~~~~~ | conftest.cpp:196:3: error: 'char32_t' was not declared in this scope | 196 | char32_t const *utf32 = U"UTF-32 string \u2500"; | | ^~~~~~~~ | configure:5254: $? = 1 | configure: failed program was: | | /* confdefs.h */ | | #define PACKAGE_NAME "osmo-pcu" | | #define PACKAGE_TARNAME "osmo-pcu" | | #define PACKAGE_VERSION "1.4.0.11-7572" | | #define PACKAGE_STRING "osmo-pcu 1.4.0.11-7572" | | #define PACKAGE_BUGREPORT "osmocom-net-gprs@lists.osmocom.org" | | #define PACKAGE_URL "" | | #define PACKAGE "osmo-pcu" | | #define VERSION "1.4.0.11-7572" | | /* end confdefs.h. */ | | | | // Does the compiler advertise C++98 conformance? | | #if !defined __cplusplus || __cplusplus < 199711L | | # error "Compiler does not advertise C++98 conformance" | | #endif | | | | // These inclusions are to reject old compilers that | | // lack the unsuffixed header files. | | #include | | #include | | | | // and are *not* freestanding headers in C++98. | | extern void assert (int); | | namespace std { | | extern int strcmp (const char *, const char *); | | } | | | | // Namespaces, exceptions, and templates were all added after "C++ 2.0". | | using std::exception; | | using std::strcmp; | | | | namespace { | | | | void test_exception_syntax() | | { | | try { | | throw "test"; | | } catch (const char *s) { | | // Extra parentheses suppress a warning when building autoconf itself, | | // due to lint rules shared with more typical C programs. | | assert (!(strcmp) (s, "test")); | | } | | } | | | | template struct test_template | | { | | T const val; | | explicit test_template(T t) : val(t) {} | | template T add(U u) { return static_cast(u) + val; } | | }; | | | | } // anonymous namespace | | | | | | // Does the compiler advertise C++ 2011 conformance? | | #if !defined __cplusplus || __cplusplus < 201103L | | # error "Compiler does not advertise C++11 conformance" | | #endif | | | | namespace cxx11test | | { | | constexpr int get_val() { return 20; } | | | | struct testinit | | { | | int i; | | double d; | | }; | | | | class delegate | | { | | public: | | delegate(int n) : n(n) {} | | delegate(): delegate(2354) {} | | | | virtual int getval() { return this->n; }; | | protected: | | int n; | | }; | | | | class overridden : public delegate | | { | | public: | | overridden(int n): delegate(n) {} | | virtual int getval() override final { return this->n * 2; } | | }; | | | | class nocopy | | { | | public: | | nocopy(int i): i(i) {} | | nocopy() = default; | | nocopy(const nocopy&) = delete; | | nocopy & operator=(const nocopy&) = delete; | | private: | | int i; | | }; | | | | // for testing lambda expressions | | template Ret eval(Fn f, Ret v) | | { | | return f(v); | | } | | | | // for testing variadic templates and trailing return types | | template auto sum(V first) -> V | | { | | return first; | | } | | template auto sum(V first, Args... rest) -> V | | { | | return first + sum(rest...); | | } | | } | | | | | | int | | main (int argc, char **argv) | | { | | int ok = 0; | | | | assert (argc); | | assert (! argv[0]); | | { | | test_exception_syntax (); | | test_template tt (2.0); | | assert (tt.add (4) == 6.0); | | assert (true && !false); | | } | | | | | | { | | // Test auto and decltype | | auto a1 = 6538; | | auto a2 = 48573953.4; | | auto a3 = "String literal"; | | | | int total = 0; | | for (auto i = a3; *i; ++i) { total += *i; } | | | | decltype(a2) a4 = 34895.034; | | } | | { | | // Test constexpr | | short sa[cxx11test::get_val()] = { 0 }; | | } | | { | | // Test initializer lists | | cxx11test::testinit il = { 4323, 435234.23544 }; | | } | | { | | // Test range-based for | | int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, | | 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; | | for (auto &x : array) { x += 23; } | | } | | { | | // Test lambda expressions | | using cxx11test::eval; | | assert (eval ([](int x) { return x*2; }, 21) == 42); | | double d = 2.0; | | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | | assert (d == 5.0); | | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | | assert (d == 5.0); | | } | | { | | // Test use of variadic templates | | using cxx11test::sum; | | auto a = sum(1); | | auto b = sum(1, 2); | | auto c = sum(1.0, 2.0, 3.0); | | } | | { | | // Test constructor delegation | | cxx11test::delegate d1; | | cxx11test::delegate d2(); | | cxx11test::delegate d3(45); | | } | | { | | // Test override and final | | cxx11test::overridden o1(55464); | | } | | { | | // Test nullptr | | char *c = nullptr; | | } | | { | | // Test template brackets | | test_template<::test_template> v(test_template(12)); | | } | | { | | // Unicode literals | | char const *utf8 = u8"UTF-8 string \u2500"; | | char16_t const *utf16 = u"UTF-8 string \u2500"; | | char32_t const *utf32 = U"UTF-32 string \u2500"; | | } | | | | return ok; | | } | | | configure:5267: result: unsupported | configure:5285: checking for g++ option to enable C++98 features | configure:5300: g++ -c -std=gnu++03 conftest.cpp >&5 | configure:5300: $? = 0 | configure:5318: result: none needed | configure:5338: checking dependency style of g++ | configure:5450: result: gcc3 | configure:5498: checking build system type | configure:5513: result: armv7l-unknown-linux-gnueabihf | configure:5533: checking host system type | configure:5547: result: armv7l-unknown-linux-gnueabihf | configure:5588: checking how to print strings | configure:5615: result: printf | configure:5636: checking for a sed that does not truncate output | configure:5706: result: /usr/bin/sed | configure:5724: checking for grep that handles long lines and -e | configure:5788: result: /usr/bin/grep | configure:5793: checking for egrep | configure:5861: result: /usr/bin/grep -E | configure:5866: checking for fgrep | configure:5934: result: /usr/bin/grep -F | configure:5970: checking for ld used by gcc | configure:6038: result: /usr/bin/ld | configure:6045: checking if the linker (/usr/bin/ld) is GNU ld | configure:6061: result: yes | configure:6073: checking for BSD- or MS-compatible name lister (nm) | configure:6128: result: /usr/bin/nm -B | configure:6268: checking the name lister (/usr/bin/nm -B) interface | configure:6276: gcc -c -std=gnu11 conftest.c >&5 | configure:6279: /usr/bin/nm -B "conftest.o" | configure:6282: output | 00000000 B some_variable | configure:6289: result: BSD nm | configure:6292: checking whether ln -s works | configure:6296: result: yes | configure:6304: checking the maximum length of command line arguments | configure:6436: result: 1572864 | configure:6484: checking how to convert armv7l-unknown-linux-gnueabihf file names to armv7l-unknown-linux-gnueabihf format | configure:6525: result: func_convert_file_noop | configure:6532: checking how to convert armv7l-unknown-linux-gnueabihf file names to toolchain format | configure:6553: result: func_convert_file_noop | configure:6560: checking for /usr/bin/ld option to reload object files | configure:6568: result: -r | configure:6647: checking for file | configure:6668: found /usr/bin/file | configure:6679: result: file | configure:6755: checking for objdump | configure:6776: found /usr/bin/objdump | configure:6787: result: objdump | configure:6819: checking how to recognize dependent libraries | configure:7020: result: pass_all | configure:7110: checking for dlltool | configure:7145: result: no | configure:7175: checking how to associate runtime and link libraries | configure:7203: result: printf %s\n | configure:7269: checking for ar | configure:7290: found /usr/bin/ar | configure:7301: result: ar | configure:7354: checking for archiver @FILE support | configure:7372: gcc -c -std=gnu11 conftest.c >&5 | configure:7372: $? = 0 | configure:7376: ar cr libconftest.a @conftest.lst >&5 | configure:7379: $? = 0 | configure:7384: ar cr libconftest.a @conftest.lst >&5 | ar: conftest.o: No such file or directory | configure:7387: $? = 1 | configure:7399: result: @ | configure:7462: checking for strip | configure:7483: found /usr/bin/strip | configure:7494: result: strip | configure:7571: checking for ranlib | configure:7592: found /usr/bin/ranlib | configure:7603: result: ranlib | configure:7705: checking command to parse /usr/bin/nm -B output from gcc object | configure:7859: gcc -c -std=gnu11 conftest.c >&5 | configure:7862: $? = 0 | configure:7866: /usr/bin/nm -B conftest.o | /usr/bin/sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | /usr/bin/sed '/ __gnu_lto/d' > conftest.nm | configure:7932: gcc -o conftest -std=gnu11 conftest.c conftstm.o >&5 | configure:7935: $? = 0 | configure:7973: result: ok | configure:8020: checking for sysroot | configure:8051: result: no | configure:8058: checking for a working dd | configure:8102: result: /usr/bin/dd | configure:8106: checking how to truncate binary pipes | configure:8122: result: /usr/bin/dd bs=4096 count=1 | configure:8459: checking for mt | configure:8494: result: no | configure:8514: checking if : is a manifest tool | configure:8521: : '-?' | configure:8529: result: no | configure:9254: checking for stdio.h | configure:9254: gcc -c -std=gnu11 conftest.c >&5 | configure:9254: $? = 0 | configure:9254: result: yes | configure:9254: checking for stdlib.h | configure:9254: gcc -c -std=gnu11 conftest.c >&5 | configure:9254: $? = 0 | configure:9254: result: yes | configure:9254: checking for string.h | configure:9254: gcc -c -std=gnu11 conftest.c >&5 | configure:9254: $? = 0 | configure:9254: result: yes | configure:9254: checking for inttypes.h | configure:9254: gcc -c -std=gnu11 conftest.c >&5 | configure:9254: $? = 0 | configure:9254: result: yes | configure:9254: checking for stdint.h | configure:9254: gcc -c -std=gnu11 conftest.c >&5 | configure:9254: $? = 0 | configure:9254: result: yes | configure:9254: checking for strings.h | configure:9254: gcc -c -std=gnu11 conftest.c >&5 | configure:9254: $? = 0 | configure:9254: result: yes | configure:9254: checking for sys/stat.h | configure:9254: gcc -c -std=gnu11 conftest.c >&5 | configure:9254: $? = 0 | configure:9254: result: yes | configure:9254: checking for sys/types.h | configure:9254: gcc -c -std=gnu11 conftest.c >&5 | configure:9254: $? = 0 | configure:9254: result: yes | configure:9254: checking for unistd.h | configure:9254: gcc -c -std=gnu11 conftest.c >&5 | configure:9254: $? = 0 | configure:9254: result: yes | configure:9279: checking for dlfcn.h | configure:9279: gcc -c -std=gnu11 conftest.c >&5 | configure:9279: $? = 0 | configure:9279: result: yes | configure:9549: checking for objdir | configure:9565: result: .libs | configure:9825: checking if gcc supports -fno-rtti -fno-exceptions | configure:9844: gcc -c -std=gnu11 -fno-rtti -fno-exceptions conftest.c >&5 | cc1: warning: command-line option '-fno-rtti' is valid for C++/D/ObjC++ but not for C | configure:9848: $? = 0 | configure:9861: result: no | configure:10225: checking for gcc option to produce PIC | configure:10233: result: -fPIC -DPIC | configure:10241: checking if gcc PIC flag -fPIC -DPIC works | configure:10260: gcc -c -std=gnu11 -fPIC -DPIC -DPIC conftest.c >&5 | configure:10264: $? = 0 | configure:10277: result: yes | configure:10306: checking if gcc static flag -static works | configure:10335: result: yes | configure:10350: checking if gcc supports -c -o file.o | configure:10372: gcc -c -std=gnu11 -o out/conftest2.o conftest.c >&5 | configure:10376: $? = 0 | configure:10398: result: yes | configure:10406: checking if gcc supports -c -o file.o | configure:10454: result: yes | configure:10487: checking whether the gcc linker (/usr/bin/ld) supports shared libraries | configure:11761: result: yes | configure:11798: checking whether -lc should be explicitly linked in | configure:11807: gcc -c -std=gnu11 conftest.c >&5 | configure:11810: $? = 0 | configure:11825: gcc -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /usr/bin/grep -lc \>/dev/null 2\>\&1 | configure:11828: $? = 0 | configure:11842: result: no | configure:12002: checking dynamic linker characteristics | configure:12584: gcc -o conftest -std=gnu11 -Wl,-rpath -Wl,/foo conftest.c >&5 | configure:12584: $? = 0 | configure:12835: result: GNU/Linux ld.so | configure:12957: checking how to hardcode library paths into programs | configure:12982: result: immediate | configure:13534: checking whether stripping libraries is possible | configure:13543: result: yes | configure:13585: checking if libtool supports shared libraries | configure:13587: result: yes | configure:13590: checking whether to build shared libraries | configure:13615: result: yes | configure:13618: checking whether to build static libraries | configure:13622: result: yes | configure:13645: checking how to run the C++ preprocessor | configure:13667: g++ -E conftest.cpp | configure:13667: $? = 0 | configure:13682: g++ -E conftest.cpp | conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory | 23 | #include | | ^~~~~~~~~~~~~~~~~~ | compilation terminated. | configure:13682: $? = 1 | configure: failed program was: | | /* confdefs.h */ | | #define PACKAGE_NAME "osmo-pcu" | | #define PACKAGE_TARNAME "osmo-pcu" | | #define PACKAGE_VERSION "1.4.0.11-7572" | | #define PACKAGE_STRING "osmo-pcu 1.4.0.11-7572" | | #define PACKAGE_BUGREPORT "osmocom-net-gprs@lists.osmocom.org" | | #define PACKAGE_URL "" | | #define PACKAGE "osmo-pcu" | | #define VERSION "1.4.0.11-7572" | | #define HAVE_STDIO_H 1 | | #define HAVE_STDLIB_H 1 | | #define HAVE_STRING_H 1 | | #define HAVE_INTTYPES_H 1 | | #define HAVE_STDINT_H 1 | | #define HAVE_STRINGS_H 1 | | #define HAVE_SYS_STAT_H 1 | | #define HAVE_SYS_TYPES_H 1 | | #define HAVE_UNISTD_H 1 | | #define STDC_HEADERS 1 | | #define HAVE_DLFCN_H 1 | | #define LT_OBJDIR ".libs/" | | /* end confdefs.h. */ | | #include | configure:13709: result: g++ -E | configure:13723: g++ -E conftest.cpp | configure:13723: $? = 0 | configure:13738: g++ -E conftest.cpp | conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory | 23 | #include | | ^~~~~~~~~~~~~~~~~~ | compilation terminated. | configure:13738: $? = 1 | configure: failed program was: | | /* confdefs.h */ | | #define PACKAGE_NAME "osmo-pcu" | | #define PACKAGE_TARNAME "osmo-pcu" | | #define PACKAGE_VERSION "1.4.0.11-7572" | | #define PACKAGE_STRING "osmo-pcu 1.4.0.11-7572" | | #define PACKAGE_BUGREPORT "osmocom-net-gprs@lists.osmocom.org" | | #define PACKAGE_URL "" | | #define PACKAGE "osmo-pcu" | | #define VERSION "1.4.0.11-7572" | | #define HAVE_STDIO_H 1 | | #define HAVE_STDLIB_H 1 | | #define HAVE_STRING_H 1 | | #define HAVE_INTTYPES_H 1 | | #define HAVE_STDINT_H 1 | | #define HAVE_STRINGS_H 1 | | #define HAVE_SYS_STAT_H 1 | | #define HAVE_SYS_TYPES_H 1 | | #define HAVE_UNISTD_H 1 | | #define STDC_HEADERS 1 | | #define HAVE_DLFCN_H 1 | | #define LT_OBJDIR ".libs/" | | /* end confdefs.h. */ | | #include | configure:13903: checking for ld used by g++ | configure:13971: result: /usr/bin/ld | configure:13978: checking if the linker (/usr/bin/ld) is GNU ld | configure:13994: result: yes | configure:14049: checking whether the g++ linker (/usr/bin/ld) supports shared libraries | configure:15127: result: yes | configure:15163: g++ -c -std=gnu++03 conftest.cpp >&5 | configure:15166: $? = 0 | configure:15647: checking for g++ option to produce PIC | configure:15655: result: -fPIC -DPIC | configure:15663: checking if g++ PIC flag -fPIC -DPIC works | configure:15682: g++ -c -std=gnu++03 -fPIC -DPIC -DPIC conftest.cpp >&5 | configure:15686: $? = 0 | configure:15699: result: yes | configure:15722: checking if g++ static flag -static works | configure:15751: result: yes | configure:15763: checking if g++ supports -c -o file.o | configure:15785: g++ -c -std=gnu++03 -o out/conftest2.o conftest.cpp >&5 | configure:15789: $? = 0 | configure:15811: result: yes | configure:15816: checking if g++ supports -c -o file.o | configure:15864: result: yes | configure:15894: checking whether the g++ linker (/usr/bin/ld) supports shared libraries | configure:15937: result: yes | configure:16079: checking dynamic linker characteristics | configure:16839: result: GNU/Linux ld.so | configure:16904: checking how to hardcode library paths into programs | configure:16929: result: immediate | configure:17005: checking for pkg-config | configure:17028: found /usr/bin/pkg-config | configure:17041: result: /usr/bin/pkg-config | configure:17112: checking for pkg-config | configure:17135: found /usr/bin/pkg-config | configure:17147: result: /usr/bin/pkg-config | configure:17172: checking pkg-config is at least version 0.20 | configure:17175: result: yes | configure:17187: checking for egrep | configure:17255: result: /usr/bin/grep -E | configure:17312: checking for libosmocore >= 1.9.0 | configure:17319: $PKG_CONFIG --exists --print-errors "libosmocore >= 1.9.0" | configure:17322: $? = 0 | configure:17336: $PKG_CONFIG --exists --print-errors "libosmocore >= 1.9.0" | configure:17339: $? = 0 | configure:17397: result: yes | configure:17403: checking for libosmovty >= 1.9.0 | configure:17410: $PKG_CONFIG --exists --print-errors "libosmovty >= 1.9.0" | configure:17413: $? = 0 | configure:17427: $PKG_CONFIG --exists --print-errors "libosmovty >= 1.9.0" | configure:17430: $? = 0 | configure:17488: result: yes | configure:17494: checking for libosmoctrl >= 1.9.0 | configure:17501: $PKG_CONFIG --exists --print-errors "libosmoctrl >= 1.9.0" | configure:17504: $? = 0 | configure:17518: $PKG_CONFIG --exists --print-errors "libosmoctrl >= 1.9.0" | configure:17521: $? = 0 | configure:17579: result: yes | configure:17585: checking for libosmogsm >= 1.9.0 | configure:17592: $PKG_CONFIG --exists --print-errors "libosmogsm >= 1.9.0" | configure:17595: $? = 0 | configure:17609: $PKG_CONFIG --exists --print-errors "libosmogsm >= 1.9.0" | configure:17612: $? = 0 | configure:17670: result: yes | configure:17676: checking for libosmogb >= 1.9.0 | configure:17683: $PKG_CONFIG --exists --print-errors "libosmogb >= 1.9.0" | configure:17686: $? = 0 | configure:17700: $PKG_CONFIG --exists --print-errors "libosmogb >= 1.9.0" | configure:17703: $? = 0 | configure:17761: result: yes | configure:17766: checking whether to enable direct DSP access for PDCH of sysmocom-bts | configure:17803: result: unset | configure:17835: checking whether to enable direct PHY access for PDCH of NuRAN Wireless Litecell 1.5 BTS | configure:17856: result: no | configure:17881: checking whether to enable direct PHY access for PDCH of NuRAN Wireless OC-2G BTS | configure:17902: result: no | configure:17927: checking whether to enable direct E1 CCU access for PDCH of Ericsson RBS | configure:17937: result: yes | configure:17952: checking for libosmoabis >= 1.5.0 | configure:17959: $PKG_CONFIG --exists --print-errors "libosmoabis >= 1.5.0" | configure:17962: $? = 0 | configure:17976: $PKG_CONFIG --exists --print-errors "libosmoabis >= 1.5.0" | configure:17979: $? = 0 | configure:18037: result: yes | configure:18043: checking for libosmotrau >= 1.5.0 | configure:18050: $PKG_CONFIG --exists --print-errors "libosmotrau >= 1.5.0" | configure:18053: $? = 0 | configure:18067: $PKG_CONFIG --exists --print-errors "libosmotrau >= 1.5.0" | configure:18070: $? = 0 | configure:18128: result: yes | configure:18543: checking whether to enable VTY tests | configure:18545: result: no | configure:18649: result: CPPFLAGS=" -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" | configure:18651: result: CFLAGS=" -std=gnu11 -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" | configure:18653: result: CXXFLAGS=" -std=gnu++03 -fsanitize=address -fsanitize=undefined" | configure:18655: result: LDFLAGS=" -fsanitize=address -fsanitize=undefined" | configure:18797: checking that generated files are newer than configure | configure:18803: result: done | configure:18858: creating ./config.status | | ## ---------------------- ## | ## Running config.status. ## | ## ---------------------- ## | | This file was extended by osmo-pcu config.status 1.4.0.11-7572, which was | generated by GNU Autoconf 2.71. Invocation command line was | | CONFIG_FILES = | CONFIG_HEADERS = | CONFIG_LINKS = | CONFIG_COMMANDS = | $ ./config.status | | on ba69c6ad05cd | | config.status:1129: creating include/Makefile | config.status:1129: creating src/Makefile | config.status:1129: creating doc/Makefile | config.status:1129: creating doc/examples/Makefile | config.status:1129: creating tests/Makefile | config.status:1129: creating doc/manuals/Makefile | config.status:1129: creating contrib/Makefile | config.status:1129: creating contrib/systemd/Makefile | config.status:1129: creating contrib/osmo-pcu.spec | config.status:1129: creating Makefile | config.status:1286: executing tests/atconfig commands | config.status:1286: executing depfiles commands | config.status:1388: cd src && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles | make[1]: Entering directory '/build/osmo-pcu-1.4.0.11-7572/_build/sub/src' | make[1]: Leaving directory '/build/osmo-pcu-1.4.0.11-7572/_build/sub/src' | config.status:1393: $? = 0 | config.status:1388: cd tests && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles | make[1]: Entering directory '/build/osmo-pcu-1.4.0.11-7572/_build/sub/tests' | make[1]: Leaving directory '/build/osmo-pcu-1.4.0.11-7572/_build/sub/tests' | config.status:1393: $? = 0 | config.status:1286: executing libtool commands | | ## ---------------- ## | ## Cache variables. ## | ## ---------------- ## | | ac_cv_build=armv7l-unknown-linux-gnueabihf | 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= | ac_cv_env_CC_value= | ac_cv_env_CFLAGS_set= | ac_cv_env_CFLAGS_value= | ac_cv_env_CPPFLAGS_set= | ac_cv_env_CPPFLAGS_value= | ac_cv_env_CXXCPP_set= | ac_cv_env_CXXCPP_value= | ac_cv_env_CXXFLAGS_set= | ac_cv_env_CXXFLAGS_value= | ac_cv_env_CXX_set= | ac_cv_env_CXX_value= | ac_cv_env_LDFLAGS_set= | ac_cv_env_LDFLAGS_value= | ac_cv_env_LIBOSMOABIS_CFLAGS_set= | ac_cv_env_LIBOSMOABIS_CFLAGS_value= | ac_cv_env_LIBOSMOABIS_LIBS_set= | ac_cv_env_LIBOSMOABIS_LIBS_value= | ac_cv_env_LIBOSMOCORE_CFLAGS_set= | ac_cv_env_LIBOSMOCORE_CFLAGS_value= | ac_cv_env_LIBOSMOCORE_LIBS_set= | ac_cv_env_LIBOSMOCORE_LIBS_value= | ac_cv_env_LIBOSMOCTRL_CFLAGS_set= | ac_cv_env_LIBOSMOCTRL_CFLAGS_value= | ac_cv_env_LIBOSMOCTRL_LIBS_set= | ac_cv_env_LIBOSMOCTRL_LIBS_value= | ac_cv_env_LIBOSMOGB_CFLAGS_set= | ac_cv_env_LIBOSMOGB_CFLAGS_value= | ac_cv_env_LIBOSMOGB_LIBS_set= | ac_cv_env_LIBOSMOGB_LIBS_value= | ac_cv_env_LIBOSMOGSM_CFLAGS_set= | ac_cv_env_LIBOSMOGSM_CFLAGS_value= | ac_cv_env_LIBOSMOGSM_LIBS_set= | ac_cv_env_LIBOSMOGSM_LIBS_value= | ac_cv_env_LIBOSMOTRAU_CFLAGS_set= | ac_cv_env_LIBOSMOTRAU_CFLAGS_value= | ac_cv_env_LIBOSMOTRAU_LIBS_set= | ac_cv_env_LIBOSMOTRAU_LIBS_value= | ac_cv_env_LIBOSMOVTY_CFLAGS_set= | ac_cv_env_LIBOSMOVTY_CFLAGS_value= | ac_cv_env_LIBOSMOVTY_LIBS_set= | ac_cv_env_LIBOSMOVTY_LIBS_value= | ac_cv_env_LIBS_set= | ac_cv_env_LIBS_value= | ac_cv_env_LT_SYS_LIBRARY_PATH_set= | ac_cv_env_LT_SYS_LIBRARY_PATH_value= | ac_cv_env_OSMO_GSM_MANUALS_DIR_set=set | ac_cv_env_OSMO_GSM_MANUALS_DIR_value=/opt/osmo-gsm-manuals | ac_cv_env_PKG_CONFIG_LIBDIR_set= | ac_cv_env_PKG_CONFIG_LIBDIR_value= | ac_cv_env_PKG_CONFIG_PATH_set=set | ac_cv_env_PKG_CONFIG_PATH_value=/build/deps/install/lib/pkgconfig: | ac_cv_env_PKG_CONFIG_set= | ac_cv_env_PKG_CONFIG_value= | ac_cv_env_PYTHON_set= | ac_cv_env_PYTHON_value= | ac_cv_env_build_alias_set= | ac_cv_env_build_alias_value= | ac_cv_env_host_alias_set= | ac_cv_env_host_alias_value= | ac_cv_env_target_alias_set= | ac_cv_env_target_alias_value= | ac_cv_header_dlfcn_h=yes | ac_cv_header_inttypes_h=yes | ac_cv_header_stdint_h=yes | ac_cv_header_stdio_h=yes | ac_cv_header_stdlib_h=yes | ac_cv_header_string_h=yes | ac_cv_header_strings_h=yes | ac_cv_header_sys_stat_h=yes | ac_cv_header_sys_types_h=yes | ac_cv_header_unistd_h=yes | ac_cv_host=armv7l-unknown-linux-gnueabihf | ac_cv_objext=o | ac_cv_path_EGREP='/usr/bin/grep -E' | ac_cv_path_FGREP='/usr/bin/grep -F' | ac_cv_path_GREP=/usr/bin/grep | ac_cv_path_PKG_CONFIG_INSTALLED=/usr/bin/pkg-config | ac_cv_path_SED=/usr/bin/sed | ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config | ac_cv_path_install='/usr/bin/install -c' | ac_cv_path_lt_DD=/usr/bin/dd | ac_cv_path_mkdir=/usr/bin/mkdir | ac_cv_prog_AWK=mawk | ac_cv_prog_CXXCPP='g++ -E' | ac_cv_prog_ac_ct_AR=ar | ac_cv_prog_ac_ct_CC=gcc | ac_cv_prog_ac_ct_CXX=g++ | ac_cv_prog_ac_ct_FILECMD=file | ac_cv_prog_ac_ct_OBJDUMP=objdump | ac_cv_prog_ac_ct_RANLIB=ranlib | ac_cv_prog_ac_ct_STRIP=strip | ac_cv_prog_cc_c11= | ac_cv_prog_cc_g=yes | ac_cv_prog_cc_stdc= | ac_cv_prog_cxx_cxx11=no | ac_cv_prog_cxx_cxx98= | ac_cv_prog_cxx_g=yes | ac_cv_prog_cxx_stdcxx= | ac_cv_prog_make_make_set=yes | am_cv_CC_dependencies_compiler_type=gcc3 | am_cv_CXX_dependencies_compiler_type=gcc3 | am_cv_make_support_nested_variables=yes | am_cv_prog_cc_c_o=yes | lt_cv_ar_at_file=@ | lt_cv_archive_cmds_need_lc=no | lt_cv_deplibs_check_method=pass_all | lt_cv_file_magic_cmd='$MAGIC_CMD' | lt_cv_file_magic_test_file= | lt_cv_ld_reload_flag=-r | lt_cv_nm_interface='BSD nm' | lt_cv_objdir=.libs | lt_cv_path_LD=/usr/bin/ld | lt_cv_path_LDCXX=/usr/bin/ld | lt_cv_path_NM='/usr/bin/nm -B' | lt_cv_path_mainfest_tool=no | lt_cv_prog_compiler_c_o=yes | lt_cv_prog_compiler_c_o_CXX=yes | lt_cv_prog_compiler_pic='-fPIC -DPIC' | lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC' | lt_cv_prog_compiler_pic_works=yes | lt_cv_prog_compiler_pic_works_CXX=yes | lt_cv_prog_compiler_rtti_exceptions=no | lt_cv_prog_compiler_static_works=yes | lt_cv_prog_compiler_static_works_CXX=yes | lt_cv_prog_gnu_ld=yes | lt_cv_prog_gnu_ldcxx=yes | lt_cv_sharedlib_from_linklib_cmd='printf %s\n' | lt_cv_shlibpath_overrides_runpath=yes | lt_cv_sys_global_symbol_pipe='/usr/bin/sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | /usr/bin/sed '\''/ __gnu_lto/d'\''' | lt_cv_sys_global_symbol_to_c_name_address='/usr/bin/sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"\1", (void *) \&\1},/p'\''' | lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='/usr/bin/sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/ {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"lib\1", (void *) \&\1},/p'\''' | lt_cv_sys_global_symbol_to_cdecl='/usr/bin/sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\''' | lt_cv_sys_global_symbol_to_import= | lt_cv_sys_max_cmd_len=1572864 | lt_cv_to_host_file_cmd=func_convert_file_noop | lt_cv_to_tool_file_cmd=func_convert_file_noop | lt_cv_truncate_bin='/usr/bin/dd bs=4096 count=1' | pkg_cv_LIBOSMOABIS_CFLAGS='-I/build/deps/install/stow/libosmo-abis/include/ -I/build/deps/install/stow/libosmocore/include/ -pthread ' | pkg_cv_LIBOSMOABIS_LIBS='-L/build/deps/install/stow/libosmo-abis/lib -losmoabis -L/build/deps/install/stow/libosmocore/lib -losmocore -ltalloc -lmnl ' | pkg_cv_LIBOSMOCORE_CFLAGS='-I/build/deps/install/stow/libosmocore/include/ -pthread ' | pkg_cv_LIBOSMOCORE_LIBS='-L/build/deps/install/stow/libosmocore/lib -losmocore -ltalloc -lmnl ' | pkg_cv_LIBOSMOCTRL_CFLAGS='-I/build/deps/install/stow/libosmocore/include/ -pthread ' | pkg_cv_LIBOSMOCTRL_LIBS='-L/build/deps/install/stow/libosmocore/lib -losmoctrl -losmogsm -losmoisdn -losmocore -ltalloc -lmnl ' | pkg_cv_LIBOSMOGB_CFLAGS='-I/build/deps/install/stow/libosmocore/include/ -fno-strict-aliasing -pthread ' | pkg_cv_LIBOSMOGB_LIBS='-L/build/deps/install/stow/libosmocore/lib -losmogb -losmovty -losmogsm -losmoisdn -losmocore -ltalloc -lmnl ' | pkg_cv_LIBOSMOGSM_CFLAGS='-I/build/deps/install/stow/libosmocore/include/ -pthread ' | pkg_cv_LIBOSMOGSM_LIBS='-L/build/deps/install/stow/libosmocore/lib -losmogsm -losmoisdn -losmocore -ltalloc -lmnl ' | pkg_cv_LIBOSMOTRAU_CFLAGS='-I/build/deps/install/stow/libosmo-abis/include/ -I/build/deps/install/stow/libosmocore/include/ -pthread ' | pkg_cv_LIBOSMOTRAU_LIBS='-L/build/deps/install/stow/libosmo-abis/lib -losmotrau -L/build/deps/install/stow/libosmocore/lib -losmocore -ltalloc -lmnl ' | pkg_cv_LIBOSMOVTY_CFLAGS='-I/build/deps/install/stow/libosmocore/include/ -pthread ' | pkg_cv_LIBOSMOVTY_LIBS='-L/build/deps/install/stow/libosmocore/lib -losmovty -losmocore -ltalloc -lmnl ' | | ## ----------------- ## | ## Output variables. ## | ## ----------------- ## | | ACLOCAL='${SHELL} '\''/build/osmo-pcu-1.4.0.11-7572/missing'\'' aclocal-1.16' | AMDEPBACKSLASH='\' | AMDEP_FALSE='#' | AMDEP_TRUE='' | AMTAR='$${TAR-tar}' | AM_BACKSLASH='\' | AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' | AM_DEFAULT_VERBOSITY='0' | AM_V='$(V)' | AR='ar' | AUTOCONF='${SHELL} '\''/build/osmo-pcu-1.4.0.11-7572/missing'\'' autoconf' | AUTOHEADER='${SHELL} '\''/build/osmo-pcu-1.4.0.11-7572/missing'\'' autoheader' | AUTOMAKE='${SHELL} '\''/build/osmo-pcu-1.4.0.11-7572/missing'\'' automake-1.16' | AWK='mawk' | BUILD_MANUALS_FALSE='' | BUILD_MANUALS_TRUE='#' | CC='gcc' | CCDEPMODE='depmode=gcc3' | CFLAGS=' -std=gnu11 -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp' | CPPFLAGS=' -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp' | CSCOPE='cscope' | CTAGS='ctags' | CXX='g++' | CXXCPP='g++ -E' | CXXDEPMODE='depmode=gcc3' | CXXFLAGS=' -std=gnu++03 -fsanitize=address -fsanitize=undefined' | CYGPATH_W='echo' | DEFS='-DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"1.4.0.11-7572\" -DPACKAGE_STRING=\"osmo-pcu\ 1.4.0.11-7572\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs@lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"1.4.0.11-7572\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"' | DEPDIR='.deps' | DLLTOOL='false' | DSYMUTIL='' | DUMPBIN='' | ECHO_C='' | ECHO_N='-n' | ECHO_T='' | EGREP='/usr/bin/grep -E' | ENABLE_ER_E1_CCU_FALSE='#' | ENABLE_ER_E1_CCU_TRUE='' | ENABLE_LC15BTS_PHY_FALSE='' | ENABLE_LC15BTS_PHY_TRUE='#' | ENABLE_OC2GBTS_PHY_FALSE='' | ENABLE_OC2GBTS_PHY_TRUE='#' | ENABLE_SYSMODSP_FALSE='' | ENABLE_SYSMODSP_TRUE='#' | ENABLE_VTY_TESTS_FALSE='' | ENABLE_VTY_TESTS_TRUE='#' | ETAGS='etags' | EXEEXT='' | FGREP='/usr/bin/grep -F' | FILECMD='file' | GREP='/usr/bin/grep' | HAVE_SYSTEMD_FALSE='#' | HAVE_SYSTEMD_TRUE='' | INSTALL_DATA='${INSTALL} -m 644' | INSTALL_PROGRAM='${INSTALL}' | INSTALL_SCRIPT='${INSTALL}' | INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' | LD='/usr/bin/ld' | LDFLAGS=' -fsanitize=address -fsanitize=undefined' | LIBOBJS='' | LIBOSMOABIS_CFLAGS='-I/build/deps/install/stow/libosmo-abis/include/ -I/build/deps/install/stow/libosmocore/include/ -pthread ' | LIBOSMOABIS_LIBS='-L/build/deps/install/stow/libosmo-abis/lib -losmoabis -L/build/deps/install/stow/libosmocore/lib -losmocore -ltalloc -lmnl ' | LIBOSMOCORE_CFLAGS='-I/build/deps/install/stow/libosmocore/include/ -pthread ' | LIBOSMOCORE_LIBS='-L/build/deps/install/stow/libosmocore/lib -losmocore -ltalloc -lmnl ' | LIBOSMOCTRL_CFLAGS='-I/build/deps/install/stow/libosmocore/include/ -pthread ' | LIBOSMOCTRL_LIBS='-L/build/deps/install/stow/libosmocore/lib -losmoctrl -losmogsm -losmoisdn -losmocore -ltalloc -lmnl ' | LIBOSMOGB_CFLAGS='-I/build/deps/install/stow/libosmocore/include/ -fno-strict-aliasing -pthread ' | LIBOSMOGB_LIBS='-L/build/deps/install/stow/libosmocore/lib -losmogb -losmovty -losmogsm -losmoisdn -losmocore -ltalloc -lmnl ' | LIBOSMOGSM_CFLAGS='-I/build/deps/install/stow/libosmocore/include/ -pthread ' | LIBOSMOGSM_LIBS='-L/build/deps/install/stow/libosmocore/lib -losmogsm -losmoisdn -losmocore -ltalloc -lmnl ' | LIBOSMOTRAU_CFLAGS='-I/build/deps/install/stow/libosmo-abis/include/ -I/build/deps/install/stow/libosmocore/include/ -pthread ' | LIBOSMOTRAU_LIBS='-L/build/deps/install/stow/libosmo-abis/lib -losmotrau -L/build/deps/install/stow/libosmocore/lib -losmocore -ltalloc -lmnl ' | LIBOSMOVTY_CFLAGS='-I/build/deps/install/stow/libosmocore/include/ -pthread ' | LIBOSMOVTY_LIBS='-L/build/deps/install/stow/libosmocore/lib -losmovty -losmocore -ltalloc -lmnl ' | LIBS='' | LIBTOOL='$(SHELL) $(top_builddir)/libtool' | LIPO='' | LITECELL15_CFLAGS='' | LN_S='ln -s' | LTLIBOBJS='' | LT_SYS_LIBRARY_PATH='' | MAKEINFO='${SHELL} '\''/build/osmo-pcu-1.4.0.11-7572/missing'\'' makeinfo' | MANIFEST_TOOL=':' | MKDIR_P='/usr/bin/mkdir -p' | NM='/usr/bin/nm -B' | NMEDIT='' | OBJDUMP='objdump' | OBJEXT='o' | OC2G_INCDIR='' | OSMOTESTVTY_CHECK='' | OSMO_GSM_MANUALS_DIR='/opt/osmo-gsm-manuals' | OTOOL64='' | OTOOL='' | PACKAGE='osmo-pcu' | PACKAGE_BUGREPORT='osmocom-net-gprs@lists.osmocom.org' | PACKAGE_NAME='osmo-pcu' | PACKAGE_STRING='osmo-pcu 1.4.0.11-7572' | PACKAGE_TARNAME='osmo-pcu' | PACKAGE_URL='' | PACKAGE_VERSION='1.4.0.11-7572' | PATH_SEPARATOR=':' | PKG_CONFIG='/usr/bin/pkg-config' | PKG_CONFIG_INSTALLED='/usr/bin/pkg-config' | PKG_CONFIG_LIBDIR='' | PKG_CONFIG_PATH='/build/deps/install/lib/pkgconfig:' | PYTHON='' | PYTHON_EXEC_PREFIX='' | PYTHON_PLATFORM='' | PYTHON_PREFIX='' | PYTHON_VERSION='' | RANLIB='ranlib' | RELMAKE='-include osmo-release.mk' | SED='/usr/bin/sed' | SET_MAKE='' | SHELL='/bin/bash' | STD_DEFINES_AND_INCLUDES='-Wall' | STRIP='strip' | SYSMOBTS_INCDIR='' | VERSION='1.4.0.11-7572' | ac_ct_AR='ar' | ac_ct_CC='gcc' | ac_ct_CXX='g++' | ac_ct_DUMPBIN='' | am__EXEEXT_FALSE='' | am__EXEEXT_TRUE='#' | am__fastdepCC_FALSE='#' | am__fastdepCC_TRUE='' | am__fastdepCXX_FALSE='#' | am__fastdepCXX_TRUE='' | am__include='include' | am__isrc=' -I$(srcdir)' | am__leading_dot='.' | am__nodep='_no' | am__quote='' | am__tar='$${TAR-tar} chof - "$$tardir"' | am__untar='$${TAR-tar} xf -' | bindir='${exec_prefix}/bin' | build='armv7l-unknown-linux-gnueabihf' | build_alias='' | build_cpu='armv7l' | build_os='linux-gnueabihf' | build_vendor='unknown' | datadir='${datarootdir}' | datarootdir='${prefix}/share' | docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' | dvidir='${docdir}' | exec_prefix='${prefix}' | host='armv7l-unknown-linux-gnueabihf' | host_alias='' | host_cpu='armv7l' | host_os='linux-gnueabihf' | host_vendor='unknown' | htmldir='${docdir}' | includedir='${prefix}/include' | infodir='${datarootdir}/info' | install_sh='${SHELL} /build/osmo-pcu-1.4.0.11-7572/install-sh' | libdir='${exec_prefix}/lib' | libexecdir='${exec_prefix}/libexec' | localedir='${datarootdir}/locale' | localstatedir='${prefix}/var' | mandir='${datarootdir}/man' | mkdir_p='$(MKDIR_P)' | oldincludedir='/usr/include' | pdfdir='${docdir}' | pkgpyexecdir='' | pkgpythondir='' | prefix='/build/osmo-pcu-1.4.0.11-7572/_inst' | program_transform_name='s,x,x,' | psdir='${docdir}' | pyexecdir='' | pythondir='' | runstatedir='${localstatedir}/run' | sbindir='${exec_prefix}/sbin' | sharedstatedir='${prefix}/com' | sysconfdir='${prefix}/etc' | systemdsystemunitdir='/build/osmo-pcu-1.4.0.11-7572/_inst/' | target_alias='' | | ## ----------- ## | ## confdefs.h. ## | ## ----------- ## | | /* confdefs.h */ | #define PACKAGE_NAME "osmo-pcu" | #define PACKAGE_TARNAME "osmo-pcu" | #define PACKAGE_VERSION "1.4.0.11-7572" | #define PACKAGE_STRING "osmo-pcu 1.4.0.11-7572" | #define PACKAGE_BUGREPORT "osmocom-net-gprs@lists.osmocom.org" | #define PACKAGE_URL "" | #define PACKAGE "osmo-pcu" | #define VERSION "1.4.0.11-7572" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define STDC_HEADERS 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | | configure: exit 0