diff --git a/common/include/villas/config.h.in b/common/include/villas/config.h.in index 08e60d71d..1badb24a6 100644 --- a/common/include/villas/config.h.in +++ b/common/include/villas/config.h.in @@ -56,7 +56,7 @@ #define LOG_HEIGHT 25 /* Hard-coded cache line size */ -#if defined(__x86_64__) || defined(__i386__) || defined(__arm__) +#if defined(__x86_64__) || defined(__i386__) || defined(__arm__) || defined(__aarch64__) #define CACHELINE_SIZE 64 #else #error "Unsupported architecture" diff --git a/common/include/villas/tsc.h b/common/include/villas/tsc.h index 1d8a17da3..e462562ab 100644 --- a/common/include/villas/tsc.h +++ b/common/include/villas/tsc.h @@ -23,6 +23,10 @@ #pragma once +#if !(__x86_64__ || __i386__) + #error this header is for x86 only +#endif + #include #include @@ -40,10 +44,6 @@ #define bit_TSC_INVARIANT (1 << 8) #define bit_RDTSCP (1 << 27) -#if !(__x86_64__ || __i386__) - #error this header is for x86 only -#endif - struct tsc { uint64_t frequency; diff --git a/common/lib/CMakeLists.txt b/common/lib/CMakeLists.txt index ca60a4d7c..f2fe45695 100644 --- a/common/lib/CMakeLists.txt +++ b/common/lib/CMakeLists.txt @@ -49,13 +49,7 @@ add_library(villas-common SHARED popen.cpp ) -execute_process( - COMMAND uname -m - COMMAND tr -d '\n' - OUTPUT_VARIABLE ARCH -) - -if(ARCH STREQUAL "x86_64") +if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") target_sources(villas-common PRIVATE tsc.cpp) endif() diff --git a/common/lib/kernel/vfio.cpp b/common/lib/kernel/vfio.cpp index 1b5529bbe..564e0ff4d 100644 --- a/common/lib/kernel/vfio.cpp +++ b/common/lib/kernel/vfio.cpp @@ -24,7 +24,7 @@ #define _DEFAULT_SOURCE -#ifdef __arm__ +#if defined(__arm__) || defined(__aarch64__) #define _LARGEFILE64_SOURCE 1 #define _FILE_OFFSET_BITS 64 #endif @@ -491,7 +491,7 @@ VfioDevice::regionMap(size_t index) int flags = MAP_SHARED; -#ifndef __arm__ +#if !(defined(__arm__) || defined(__aarch64__)) flags |= MAP_SHARED; #endif diff --git a/common/lib/memory.cpp b/common/lib/memory.cpp index c2f663451..b8ddee557 100644 --- a/common/lib/memory.cpp +++ b/common/lib/memory.cpp @@ -39,7 +39,7 @@ HostRam::HostRamAllocator::allocateBlock(size_t size) size &= size_t(~0xFFF); } -#if defined(__linux__) && !defined(__arm__) +#if defined(__linux__) && !(defined(__arm__) || defined(__aarch64__)) const int mmap_flags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_32BIT; #else const int mmap_flags = MAP_PRIVATE | MAP_ANONYMOUS; diff --git a/common/tests/unit/CMakeLists.txt b/common/tests/unit/CMakeLists.txt index 20f41715d..1f8da1660 100644 --- a/common/tests/unit/CMakeLists.txt +++ b/common/tests/unit/CMakeLists.txt @@ -34,7 +34,7 @@ add_executable(unit-tests-common popen.cpp ) -if(ARCH STREQUAL "x86_64") +if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") list(APPEND TEST_SRC tsc.cpp) endif()