summaryrefslogtreecommitdiff
path: root/curvetun/abiname.c
blob: 976db1507b7bc7d238fbc778546472c546b28698 (plain)
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
38
39
40
41
42
43
44
45
46
#include <stdio.h>

const char *abi(void)
{
#if defined(__amd64__) || defined(__x86_64__) || defined(__AMD64__) || defined(_M_X64) || defined(__amd64)
	return "amd64";
#elif defined(__i386__) || defined(__x86__) || defined(__X86__) || defined(_M_IX86) || defined(__i386)
	return "x86";
#elif defined(__ia64__) || defined(__IA64__) || defined(__M_IA64)
	return "ia64";
#elif defined(__SPU__)
	return "cellspu";
#elif defined(__powerpc64__) || defined(__ppc64__) || defined(__PPC64__) || defined(_ARCH_PPC64)
	return "ppc64";
#elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) || defined(_ARCH_PPC)
	return "ppc32";
#elif defined(__sparcv9__) || defined(__sparcv9)
	return "sparcv9";
#elif defined(__sparc_v8__)
	return "sparcv8";
#elif defined(__sparc__) || defined(__sparc)
	if (sizeof(long) == 4)
		return "sparcv8";
	return "sparcv9";
#elif defined(__ARM_EABI__)
	return "armeabi";
#elif defined(__arm__)
	return "arm";
#elif defined(__mips__) || defined(__mips) || defined(__MIPS__)
# if defined(_ABIO32)
	return "mipso32";
# elif defined(_ABIN32)
	return "mips32";
# else
	return "mips64";
# endif
#else
	return "default";
#endif
}

int main(void)
{
	printf("%s\n", abi());
	return 0;
}