]> granicus.if.org Git - gc/commitdiff
Fix gcconfig.h to define USE_GET_STACKBASE_FOR_MAIN for Android
authorIvan Maidanski <ivmai@mail.ru>
Thu, 26 Jan 2012 05:16:10 +0000 (09:16 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Thu, 26 Jan 2012 16:49:52 +0000 (20:49 +0400)
(causing pthread_attr_getstack to be used to get main stack base
even in single-threaded mode instead of GC_linux_main_stack_base)

* include/private/gcconfig.h (USE_GET_STACKBASE_FOR_MAIN): Define if
PLATFORM_ANDROID.

include/private/gcconfig.h

index cd019eb7c0a2b241656bb85384b06e85fda3a80f..0b8bc74b66708f25e27a555f0f6ed0428b416e15 100644 (file)
 # define DATAEND (ptr_t)(end)
 #endif
 
+#if defined(PLATFORM_ANDROID) && !defined(THREADS) \
+    && !defined(USE_GET_STACKBASE_FOR_MAIN)
+  /* Always use pthread_attr_getstack on Android ("-lpthread" option is  */
+  /* not needed to be specified manually) since GC_linux_main_stack_base */
+  /* causes app crash if invoked inside Dalvik VM.                       */
+# define USE_GET_STACKBASE_FOR_MAIN
+#endif
+
 #if (defined(SVR4) || defined(PLATFORM_ANDROID)) && !defined(GETPAGESIZE)
 # include <unistd.h>
 # define GETPAGESIZE()  sysconf(_SC_PAGESIZE)