-
Notifications
You must be signed in to change notification settings - Fork 333
/
Copy pathDetectArchitecture.c
37 lines (36 loc) · 1.16 KB
/
DetectArchitecture.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#if defined(__aarch64__)
const char *str = "ARCHITECTURE IS AArch64";
#elif defined(__arm__)
const char *str = "ARCHITECTURE IS ARM";
#elif defined(__alpha__)
const char *str = "ARCHITECTURE IS Alpha";
#elif defined(__loongarch__)
const char *str = "ARCHITECTURE IS LoongArch";
#elif defined(__mips__)
const char *str = "ARCHITECTURE IS Mips";
#elif defined(__powerpc__) || defined(__ppc__) || defined(__power__)
const char *str = "ARCHITECTURE IS PowerPC";
#elif defined(__riscv)
#if __riscv_xlen == 64
const char *str = "ARCHITECTURE IS riscv64";
#elif __riscv_xlen == 32
const char *str = "ARCHITECTURE IS riscv32";
#endif
#elif defined(__s390__)
const char *str = "ARCHITECTURE IS SystemZ";
#elif defined(__sparc__)
const char *str = "ARCHITECTURE IS Sparc";
#elif defined(__xcore__)
const char *str = "ARCHITECTURE IS XCore";
#elif defined(__i386__) || defined(__x86_64__)
const char *str = "ARCHITECTURE IS x86";
#elif defined(__hexagon__)
const char *str = "ARCHITECTURE IS Hexagon";
#elif defined(__csky__) || defined(__CSKY__)
const char *str = "ARCHITECTURE IS CSKY";
#endif
int main(int argc, char **argv) {
int require = str[argc];
(void)argv;
return require;
}