$ readelf -s ./src/.libs/libstdc++.so.6 | grep condition
10383: 000c58d8 68 FUNC LOCAL DEFAULT 11 _ZNSt15error_conditionC1E
10818: 000c58d8 68 FUNC LOCAL DEFAULT 11 _ZNSt15error_conditionC2E
10837: 000c5944 40 FUNC LOCAL DEFAULT 11 _ZNKSt15error_condition8c
10942: 000c591c 40 FUNC LOCAL DEFAULT 11 _ZNKSt15error_condition5v
Where as with the apt-get installed 4.6 version of the toolchain shows:
$ readelf -s /usr/arm-linux-gnueabi/lib/libstdc++.so.6 | grep condition
777: 000523b1 12 FUNC GLOBAL DEFAULT 12 _ZNSt22condition_variable@@GLIBCXX_3.4.11
929: 000522f1 104 FUNC GLOBAL DEFAULT 12 _ZNSt18condition_variable@@GLIBCXX_3.4.11
1037: 000523b1 12 FUNC GLOBAL DEFAULT 12 _ZNSt22condition_variable@@GLIBCXX_3.4.11
1198: 000522f1 104 FUNC GLOBAL DEFAULT 12 _ZNSt18condition_variable@@GLIBCXX_3.4.11
1686: 00052385 14 FUNC GLOBAL DEFAULT 12 _ZNSt18condition_variable@@GLIBCXX_3.4.11
2166: 00052359 12 FUNC GLOBAL DEFAULT 12 _ZNSt18condition_variable@@GLIBCXX_3.4.11
2438: 00052359 12 FUNC GLOBAL DEFAULT 12 _ZNSt18condition_variable@@GLIBCXX_3.4.11
2685: 00052365 16 FUNC GLOBAL DEFAULT 12 _ZNSt18condition_variable@@GLIBCXX_3.4.11
3186: 00052395 26 FUNC GLOBAL DEFAULT 12 _ZNSt22condition_variable@@GLIBCXX_3.4.11
3448: 00052395 26 FUNC GLOBAL DEFAULT 12 _ZNSt22condition_variable@@GLIBCXX_3.4.11
3643: 00052375 14 FUNC GLOBAL DEFAULT 12 _ZNSt18condition_variable@@GLIBCXX_3.4.11
(Which is still missing anything to do with condition_variable_any, but given that my native 4.8 compiler doesn't contain this symbol either and my code builds and runs natively, I assume this is how it should be).
Here is my build's version information:
$ arm-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/home/mark/arm-linux-gnueabi-4.8.2/libexec/gcc/arm-linux-gnueabi/4.8.2/lto-wrapper
Target: arm-linux-gnueabi
Configured with: ../gcc-linaro-4.8-2013.10/configure --target=arm-linux-gnueabi --prefix=/home/mark/arm-linux-gnueabi-4.8.2 --with-local-prefix=/home/mark/arm-linux-gnueabi-4.8.2 --disable-nls --enable-shared --enable-multilib --disable-decimal-float --enable-languages=c,c++ --with-mpfr-include=/home/mark/gcc-4.8-arm-linux/gcc-build/../gcc-linaro-4.8-2013.10/mpfr/src --with-mpfr-lib=/home/mark/gcc-4.8-arm-linux/gcc-build/mpfr/src/.libs --enable-clocale=gnu --enable-threads=posix --enable-__cxa_atexit --disable-libstdcxx-pch --with-system-zlib --with-headers=/home/mark/arm-linux-gnueabi-4.8.2/include --with-libs=/home/mark/arm-linux-gnueabi-4.8.2/lib --enable-libstdcxx-threads --enable-libstdcxx-time
Thread model: posix
gcc version 4.8.2 20131014 (prerelease) (Linaro GCC 4.8-2013.10)
I configured libstdc++-v3 respectively as follows:
$ ../gcc-linaro-4.8-2013.10/libstdc++-v3/configure --host=arm-linux-gnueabi --prefix=/home/mark/arm-linux-gnueabi-4.8.2/ --enable-multilib --enable-shared --disable-nls --disable-libstdcxx-pch --enable-libstdcxx-threads --enable-libstdcxx-time
I assumed the relevant entries to enable C++11 threading and condition variables etc would have been --enable-libstdcxx-threads --enable-libstdcxx-time. I must be missing some other options or have done something else wrong. Any suggestions?
thanks,
Mark