• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  */
main(void)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