AK: Add support for building on Android with API version >= 30

This commit is contained in:
Andrew Kaster 2022-07-11 01:04:39 -06:00 committed by Linus Groh
parent 686c15149e
commit 3b15addbc8
Notes: sideshowbarker 2024-07-18 03:20:18 +09:00
2 changed files with 17 additions and 2 deletions

View File

@ -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)

View File

@ -9,7 +9,7 @@
#include <AK/Platform.h>
#include <AK/Types.h>
#if defined(__serenity__)
#if defined(__serenity__) || defined(AK_OS_ANDROID)
# include <stdlib.h>
#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)