# define PLATFORM_ANDROID 1
#endif
+#if defined(TIZEN) && !defined(PLATFORM_TIZEN)
+# define PLATFORM_TIZEN 1
+#endif
+
#if defined(__SYMBIAN32__) && !defined(SYMBIAN)
# define SYMBIAN
# ifdef __WINS__
# define DYNAMIC_LOADING
# include <features.h>
# if defined(__GLIBC__) && __GLIBC__ >= 2 \
- || defined(PLATFORM_ANDROID)
+ || defined(PLATFORM_ANDROID) || defined(PLATFORM_TIZEN)
# define SEARCH_FOR_DATA_START
# else
extern char **__environ;
# endif
extern int _end[];
# define DATAEND ((ptr_t)(_end))
-# if defined(PLATFORM_ANDROID) && !defined(GC_NO_SIGSETJMP) \
- && !(GC_GNUC_PREREQ(4, 8) || GC_CLANG_PREREQ(3, 2) \
- || __ANDROID_API__ >= 18)
+# if !defined(GC_NO_SIGSETJMP) && (defined(PLATFORM_TIZEN) \
+ || (defined(PLATFORM_ANDROID) \
+ && !(GC_GNUC_PREREQ(4, 8) || GC_CLANG_PREREQ(3, 2) \
+ || __ANDROID_API__ >= 18)))
/* Older Android NDK releases lack sigsetjmp in x86 libc */
/* (setjmp is used instead to find data_start). The bug */
/* is fixed in Android NDK r8e (so, ok to use sigsetjmp */
# define DYNAMIC_LOADING
# include <features.h>
# if defined(__GLIBC__) && __GLIBC__ >= 2 \
- || defined(PLATFORM_ANDROID)
+ || defined(PLATFORM_ANDROID) || defined(PLATFORM_TIZEN)
# define SEARCH_FOR_DATA_START
# else
extern char **__environ;
# define DATAEND (__end__ != 0 ? (ptr_t)__end__ : (ptr_t)_end)
#endif
-#if (defined(SVR4) || defined(PLATFORM_ANDROID)) && !defined(GETPAGESIZE)
+#if (defined(SVR4) || defined(PLATFORM_ANDROID) || defined(PLATFORM_TIZEN)) \
+ && !defined(GETPAGESIZE)
# include <unistd.h>
# define GETPAGESIZE() (unsigned)sysconf(_SC_PAGESIZE)
#endif
#endif
#if defined(CAN_HANDLE_FORK) && !defined(CAN_CALL_ATFORK) \
- && !defined(HURD) \
+ && !defined(HURD) && !defined(PLATFORM_TIZEN) \
&& (!defined(PLATFORM_ANDROID) || __ANDROID_API__ >= 21)
/* Have working pthread_atfork(). */
# define CAN_CALL_ATFORK