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)