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 */ 5 int 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