From 3b15addbc8041b20fbc727f0260fed5ad917e592 Mon Sep 17 00:00:00 2001 From: Andrew Kaster Date: Mon, 11 Jul 2022 01:04:39 -0600 Subject: [PATCH] AK: Add support for building on Android with API version >= 30 --- AK/Platform.h | 15 +++++++++++++++ AK/Random.h | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/AK/Platform.h b/AK/Platform.h index d6e6c689e1e..0c60c11ff0b 100644 --- a/AK/Platform.h +++ b/AK/Platform.h @@ -27,6 +27,21 @@ # define AK_OS_BSD_GENERIC #endif +// FIXME: Remove clang-format suppression after https://github.com/llvm/llvm-project/issues/56602 resolved +// clang-format off +#if defined(__ANDROID__) +# define STR(x) __STR(x) +# define __STR(x) #x +# if __ANDROID_API__ < 30 +# pragma message "Invalid android API " STR(__ANDROID_API__) +# error "Build configuration not tested on configured Android API version" +# endif +# undef STR +# undef __STR +# define AK_OS_ANDROID +#endif +// clang-format on + #define ARCH(arch) (defined(AK_ARCH_##arch) && AK_ARCH_##arch) #if ARCH(I386) || ARCH(X86_64) diff --git a/AK/Random.h b/AK/Random.h index 398fff64b34..fe5961c3fa1 100644 --- a/AK/Random.h +++ b/AK/Random.h @@ -9,7 +9,7 @@ #include #include -#if defined(__serenity__) +#if defined(__serenity__) || defined(AK_OS_ANDROID) # include #endif @@ -25,7 +25,7 @@ namespace AK { inline void fill_with_random([[maybe_unused]] void* buffer, [[maybe_unused]] size_t length) { -#if defined(__serenity__) +#if defined(__serenity__) || defined(AK_OS_ANDROID) arc4random_buf(buffer, length); #elif defined(OSS_FUZZ) #elif defined(__unix__) or defined(AK_OS_MACOS)