if("${ARCH}" MATCHES "(x86(_32|_64)?|amd64|x64|i[3-6]86)")
set(BASEARCH "x86")
set(BASEARCH_X86_FOUND TRUE)
- add_compile_definitions(ARCH_X86)
if("${ARCH}" MATCHES "(x86_64|amd64|x64)")
set(ARCH_BITS 64)
else()
elseif("${ARCH}" MATCHES "(aarch64|arm64(ec)?|aarch32|arm(v[0-9])?|cortex)")
set(BASEARCH "arm")
set(BASEARCH_ARM_FOUND TRUE)
- add_compile_definitions(ARCH_ARM)
if("${ARCH}" MATCHES "(aarch64|arm64(ec)?)")
set(ARCH_BITS 64)
else()
elseif("${ARCH}" MATCHES "(ppc|powerpc)(64)?(le)?")
set(BASEARCH "ppc")
set(BASEARCH_PPC_FOUND TRUE)
- add_compile_definitions(ARCH_POWER)
if("${ARCH}" MATCHES "(ppc|powerpc)64(le)?")
set(ARCH_BITS 64)
else()
elseif("${ARCH}" MATCHES "alpha")
set(BASEARCH "alpha")
set(BASEARCH_ALPHA_FOUND TRUE)
- add_compile_definitions(ARCH_ALPHA)
set(ARCH_BITS 64)
elseif("${ARCH}" MATCHES "blackfin")
set(BASEARCH "blackfin")
set(BASEARCH_BLACKFIN_FOUND TRUE)
- add_compile_definitions(ARCH_BLACKFIN)
set(ARCH_BITS 32)
elseif("${ARCH}" MATCHES "ia64")
set(BASEARCH "ia64")
set(BASEARCH_IA64_FOUND TRUE)
- add_compile_definitions(ARCH_IA64)
set(ARCH_BITS 64)
elseif("${ARCH}" MATCHES "mips(isa)?(64)?")
set(BASEARCH "mips")
set(BASEARCH_MIPS_FOUND TRUE)
- add_compile_definitions(ARCH_MIPS)
if("${ARCH}" MATCHES "mips(isa)?64")
set(ARCH_BITS 64)
else()
elseif("${ARCH}" MATCHES "m68k")
set(BASEARCH "m68k")
set(BASEARCH_M68K_FOUND TRUE)
- add_compile_definitions(ARCH_M68K)
set(ARCH_BITS 32)
elseif("${ARCH}" MATCHES "sh")
set(BASEARCH "sh")
set(BASEARCH_SH_FOUND TRUE)
- add_compile_definitions(ARCH_SH)
set(ARCH_BITS 32)
elseif("${ARCH}" MATCHES "sparc(v)?[89]?(64)?")
set(BASEARCH "sparc")
set(BASEARCH_SPARC_FOUND TRUE)
- add_compile_definitions(ARCH_SPARC)
if("${ARCH}" MATCHES "(sparc64|sparc(v)?9)")
set(ARCH_BITS 64)
else()
elseif("${ARCH}" MATCHES "s3[679]0x?")
set(BASEARCH "s360")
set(BASEARCH_S360_FOUND TRUE)
- add_compile_definitions(ARCH_S390)
if("${ARCH}" MATCHES "s3[679]0x")
set(ARCH_BITS 64)
else()
elseif("${ARCH}" MATCHES "(parisc|hppa)(64)?")
set(BASEARCH "parisc")
set(BASEARCH_PARISC_FOUND TRUE)
- add_compile_definitions(ARCH_PARISC)
if("${ARCH}" MATCHES "(parisc|hppa)64")
set(ARCH_BITS 64)
else()
elseif("${ARCH}" MATCHES "rs6000")
set(BASEARCH "rs6000")
set(BASEARCH_RS6000_FOUND TRUE)
- add_compile_definitions(ARCH_RS6000)
set(ARCH_BITS 32)
elseif("${ARCH}" MATCHES "riscv(32|64)")
set(BASEARCH "riscv")
set(BASEARCH_RISCV_FOUND TRUE)
- add_compile_definitions(ARCH_RISCV)
if("${ARCH}" MATCHES "riscv64")
set(ARCH_BITS 64)
else()
elseif("${ARCH}" MATCHES "(loong64|loongarch64)")
set(BASEARCH "loongarch")
set(BASEARCH_LOONGARCH_FOUND TRUE)
- add_compile_definitions(ARCH_LOONGARCH)
set(ARCH_BITS 64)
elseif("${ARCH}" MATCHES "wasm(32|64)")
set(BASEARCH "wasm32")
set(BASEARCH_WASM32_FOUND TRUE)
- add_compile_definitions(ARCH_WASM)
if("${ARCH}" MATCHES "wasm64")
set(ARCH_BITS 64)
else()
else()
set(BASEARCH "x86")
set(BASEARCH_X86_FOUND TRUE)
- add_compile_definitions(ARCH_X86)
set(ARCH_BITS 32)
message(STATUS "Basearch '${ARCH}' not recognized, defaulting to 'x86'.")
endif()
if (ARCH_BITS EQUAL 64)
set(ARCH_64BIT TRUE)
set(ARCH_32BIT FALSE)
- add_compile_definitions(ARCH_64BIT)
else()
set(ARCH_64BIT FALSE)
set(ARCH_32BIT TRUE)
- add_compile_definitions(ARCH_32BIT)
endif()
message(STATUS "Basearch of '${ARCH}' (${ARCH_BITS}bit) has been detected as: '${BASEARCH}'")
ARCH_STATIC_OBJS=''
ARCH_SHARED_OBJS=''
-# Set ARCH bitness defines
-if test -n "$ARCH_64BIT"; then
- CFLAGS="${CFLAGS} -DARCH_64BIT"
- SFLAGS="${SFLAGS} -DARCH_64BIT"
-elif test -n "$ARCH_32BIT"; then
- CFLAGS="${CFLAGS} -DARCH_32BIT"
- SFLAGS="${SFLAGS} -DARCH_32BIT"
-fi
# Set ARCH specific FLAGS
case "${ARCH}" in
# x86/amd64 specific optimizations
i386 | i486 | i586 | i686 | amd64 | x86_64)
ARCHDIR=arch/x86
- CFLAGS="${CFLAGS} -DARCH_X86"
- SFLAGS="${SFLAGS} -DARCH_X86"
# Enable arch-specific optimizations
if test $without_optimizations -eq 0; then
esac
ARCHDIR=arch/arm
- CFLAGS="${CFLAGS} -DARCH_ARM"
- SFLAGS="${SFLAGS} -DARCH_ARM"
cat > $test.c << EOF
int main() { return 0; }
esac
ARCHDIR=arch/power
- CFLAGS="${CFLAGS} -DARCH_POWER"
- SFLAGS="${SFLAGS} -DARCH_POWER"
if test $without_optimizations -eq 0; then
riscv64)
[ ! -z $CROSS_PREFIX ] && QEMU_ARCH=riscv64
ARCHDIR=arch/riscv
- CFLAGS="${CFLAGS} -DARCH_RISCV"
- SFLAGS="${SFLAGS} -DARCH_RISCV"
if test $without_optimizations -eq 0; then
if test $buildrvv -eq 1 -o $buildzbc -eq 1; then
s390x)
[ ! -z $CROSS_PREFIX ] && QEMU_ARCH=s390x
ARCHDIR=arch/s390
- CFLAGS="${CFLAGS} -DARCH_S390"
- SFLAGS="${SFLAGS} -DARCH_S390"
if test $without_optimizations -eq 0; then
if test $buildcrc32vx -eq 1; then
# loongarch specific optimizations
loongarch64)
ARCHDIR=arch/loongarch
- CFLAGS="${CFLAGS} -DARCH_LOONGARCH"
- SFLAGS="${SFLAGS} -DARCH_LOONGARCH"
# Enable arch-specific optimizations
if test $without_optimizations -eq 0; then