"-march=x86-64",
"-mtune=generic",
]
- } else { # 32 bit version
+ } else if (target_cpu == "x86") { # 32 bit version
cflags += [
"-m32",
"-msse2",
"/wd4201", # nameless struct/union
"/wd5030", # attribute is not recognized
]
- } else {
+ } else if (target_cpu == "x86" || target_cpu == "x64") {
cflags = [ "-msse2" ]
}
}
return InterlockedExchange64(target, value);
#else
int ret;
- __asm__ __volatile__("lock; xchg8 %0,(%1)" : "=r" (ret) :"r" (target), "0" (value) : "memory" );
+ __asm__ __volatile__("lock; xchg8 %x0,(%x1)" : "=r" (ret) :"r" (target), "0" (value) : "memory" );
return ret;
#endif
}
return InterlockedExchange((volatile long*)target, (long)value);
#else
int ret;
- __asm__ __volatile__("lock; xchgl %0,(%1)" : "=r" (ret) :"r" (target), "0" (value) : "memory" );
+ __asm__ __volatile__("lock; xchgl %x0,(%x1)" : "=r" (ret) :"r" (target), "0" (value) : "memory" );
return ret;
#endif
}
"-Wno-sign-compare",
]
}
- } else {
+ } else if (target_cpu == "x86" || target_cpu == "x64") {
cflags = [ "-msse2" ]
defines =
[ "NO_SANITIZE_FUNCTION=__attribute__((no_sanitize(\"function\")))" ]
defines += [ "EGLAPI=" ]
} else {
- cflags = [ "-Wno-sign-compare" ]
+ cflags = [
+ "-Wno-sign-compare",
+ "-Wno-unused-function",
+ ]
if (!is_clang) {
cflags += [ "-Wno-unused-but-set-variable" ]
}
"/wd4201", # nameless struct/union
"/wd4245", # conversion from int to unsigned int (llvm)
]
- } else {
+ } else if (target_cpu == "x86" || target_cpu == "x64") {
cflags = [
"-Wno-unused-local-typedef",
"-msse2",
static bool detectARM()
{
- #if defined(__arm__)
+ #if defined(__arm__) || defined(__aarch64__)
return true;
#elif defined(__i386__) || defined(__x86_64__)
return false;
assert(sizeof(void*) == 8 && elfHeader->e_machine == EM_X86_64);
#elif defined(__arm__)
assert(sizeof(void*) == 4 && elfHeader->e_machine == EM_ARM);
+ #elif defined(__aarch64__)
+ assert(sizeof(void*) == 8 && elfHeader->e_machine == EM_AARCH64);
#else
#error "Unsupported platform"
#endif
"/wd4324", # structure was padded due to alignment specifier
"/wd5030", # attribute is not recognized
]
- } else {
+ } else if (target_cpu == "x86" || target_cpu == "x64") {
cflags = [
"-msse2",
"-Wno-sign-compare",
cflags += [ "-Wno-error" ]
}
- if (is_clang) {
+ if (is_clang && (target_cpu == "x86" || target_cpu == "x64")) {
cflags += [
"-msse2",
"-Wno-header-hygiene",