Hi,  all

I have updated my test case:

Compile passed but failed while linking.

wentao@ubuntu:~/test/lamda$ cat a.cc
#include <iostream>
using namespace std;

int main()
{
        auto f = [=]() {
                cout <<"Hello world"<<endl;
        };
        f();
        return 0;
}


wentao@ubuntu:~/test/lamda$ arm-eabi-g++ --std=gnu++11 a.cc -o arm32
/home/wentao/TeeOS/tools/gcc-linaro-6.3.1-2017.05-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.3.1/../../../../arm-eabi/lib/libstdc++.a(locale.o):
 In function `get_locale_cache_mutex':
/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/snapshots/gcc.git~linaro-6.3-2017.05/libstdc++-v3/src/c++98/locale.cc:36:
 undefined reference to `__sync_synchronize'
/home/wentao/TeeOS/tools/gcc-linaro-6.3.1-2017.05-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.3.1/../../../../arm-eabi/lib/libstdc++.a(future.o):
 In function `__future_category_instance':
/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/snapshots/gcc.git~linaro-6.3-2017.05/libstdc++-v3/src/c++11/future.cc:64:
 undefined reference to `__sync_synchronize'
/home/wentao/TeeOS/tools/gcc-linaro-6.3.1-2017.05-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.3.1/../../../../arm-eabi/lib/libstdc++.a(locale_init.o):
 In function `(anonymous namespace)::get_locale_mutex()':
/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/snapshots/gcc.git~linaro-6.3-2017.05/libstdc++-v3/src/c++98/locale_init.cc:66:
 undefined reference to `__sync_synchronize'
collect2: error: ld returned 1 exit status
wentao@ubuntu:~/test/lamda$

发件人: zhangwentao (M)
发送时间: 2018年1月10日 10:22
收件人: 'linaro-toolchain@lists.linaro.org'
抄送: Huangqiang (H); Lizefan; leijitang
主题: Does linaro toolchain support c++11 ??

Hi all,

I wonder if my compiler supports C++11?  If not, where could I found the 
compiler supports c++11 (both 32bit and 64bit arm).

THANKS a lot~~~

My compiler information is as below:

wentao@ubuntu:~/test/lamda$ arm-eabi-g++ -v
Using built-in specs.
COLLECT_GCC=arm-eabi-g++
COLLECT_LTO_WRAPPER=/home/wentao/TeeOS/tools/gcc-linaro-6.3.1-2017.05-x86_64_arm-eabi/bin/../libexec/gcc/arm-eabi/6.3.1/lto-wrapper
Target: arm-eabi
Configured with: 
'/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/snapshots/gcc.git~linaro-6.3-2017.05/configure'
 SHELL=/bin/bash 
--with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu
 
--with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu
 
--with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu
 --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared 
--without-included-gettext --enable-nls --disable-sjlj-exceptions 
--enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch 
--enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long 
--with-cloog=no --with-ppl=no --with-isl=no --enable-multilib 
--with-multilib-list=aprofile --enable-threads=no --disable-multiarch 
--with-newlib 
--with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/sysroots/arm-eabi
 
--with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu/arm-eabi/libc
 --enable-checking=release --disable-bootstrap --enable-languages=c,c++,lto 
--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu 
--target=arm-eabi 
--prefix=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: single
gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)
wentao@ubuntu:~/test/lamda$

===>
And more, I wrote a “hello-world” program using c++11, it could work with host 
g++, but when I change to “arm-eabi-g++”, it does not work.
Information as below:

wentao@ubuntu:~/test/lamda$ cat a.cc
#include <iostream>
using namespace std;

typedef void(*Func)();
int main()
{
        Func f = [=]() {
                cout <<"Hello world"<<endl;
        };
        f();
        return 0;
}
wentao@ubuntu:~/test/lamda$ g++ a.cc -o host
a.cc: In function ‘int main()’:
a.cc:10:2: warning: lambda expressions only available with -std=c++11 or 
-std=gnu++11 [enabled by default]
  };
  ^
wentao@ubuntu:~/test/lamda$ ./host
Hello world
wentao@ubuntu:~/test/lamda$ arm-eabi-g++ a.cc -o arm32
a.cc: In function ‘int main()’:
a.cc:10:2: error: cannot convert ‘main()::<lambda()>’ to ‘Func {aka void 
(*)()}’ in initialization
  };
  ^
wentao@ubuntu:~/test/lamda$ arm-eabi-g++ --std=gnu++11 a.cc -o arm32        # 
if gives �Cstd=c++11 , the error is the same.
a.cc: In function ‘int main()’:
a.cc:10:2: error: cannot convert ‘main()::<lambda()>’ to ‘Func {aka void 
(*)()}’ in initialization
  };
  ^
wentao@ubuntu:~/test/lamda$
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to