Workaround "Segmentation fault" when built with gcc 4.7 from NDK r8d
authorAndrey Kamaev <andrey.kamaev@itseez.com>
Fri, 21 Dec 2012 12:44:54 +0000 (16:44 +0400)
committerAndrey Kamaev <andrey.kamaev@itseez.com>
Fri, 21 Dec 2012 12:44:54 +0000 (16:44 +0400)
android/android.toolchain.cmake

index b3c8d83fc10c525cbf676b19052cf0e6ae7cf485..f5daf307f7c146b8fd0e32fd3293bc4880fd4511 100644 (file)
@@ -981,7 +981,13 @@ if( BUILD_WITH_ANDROID_NDK )
   set( ANDROID_EXCEPTIONS       ON )
   set( ANDROID_RTTI             ON )
   if( EXISTS "${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/${ANDROID_COMPILER_VERSION}" )
-   set( __libstl                "${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/${ANDROID_COMPILER_VERSION}" )
+   if( ARMEABI_V7A AND ANDROID_COMPILER_VERSION VERSION_EQUAL "4.7" AND ANDROID_NDK_RELEASE STREQUAL "r8d" )
+    # gnustl binary for 4.7 compiler is buggy :(
+    # TODO: look for right fix
+    set( __libstl                "${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/4.6" )
+   else()
+    set( __libstl                "${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/${ANDROID_COMPILER_VERSION}" )
+   endif()
   else()
    set( __libstl                "${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++" )
   endif()