1/* This simple file is used to check that compiler flags are properly 2 * set when using the NDK build system. Look at Android.mk to see how 3 * the various CHECK_XXX macros are supposed to be defined. 4 */ 5int main(void) 6{ 7#if defined(CHECK_THUMB) 8# ifndef __arm__ 9# error "This source file should be compiled with an ARM toolchain" 10# endif 11# ifndef __thumb__ 12# error "This source file should be built in thumb mode!" 13# endif 14#elif defined(CHECK_THUMB2) 15# ifndef __arm__ 16# error "This source file should be compiled with an ARM toolchain" 17# endif 18# ifndef __thumb2__ 19# error "This source file should be built in thumb2 mode!" 20# endif 21#elif defined(CHECK_ARM) 22# ifndef __arm__ 23# error "This source file should be compiled with an ARM toolchain" 24# endif 25# if defined(__thumb__) || defined(__thumb2__) 26# error "This source file should be compiled to 32-bit ARM instructions" 27# endif 28#elif defined(CHECK_X86) 29# ifndef __i386__ 30# error "This source file should be compiled with an x86 toolchain" 31# endif 32#elif defined(CHECK_MIPS) 33# ifndef __mips__ 34# error "This source file should be compiled with a MIPS toolchain" 35# endif 36#else 37# error "This unit test is broken!" 38#endif 39 40#if defined(CHECK_NEON) 41# ifndef __ARM_NEON__ 42# error "This source file should be compiled with NEON support!" 43# endif 44#else 45# ifdef __ARM_NEON__ 46# error "This source file should be compiled without NEON support!" 47# endif 48#endif 49 50#ifndef __ANDROID__ 51# error "This toolchain doesn't define the __ANDROID__ built-in macro!" 52#endif 53 return 0; 54} 55