Just FYI - I was able to build 14.4 with these args and successfully load 
and test in Android:

```
target_os="android"
target_cpu="arm64"
v8_target_cpu = "arm64"

clang_use_chrome_plugins=false
dcheck_always_on = false
icu_use_data_file = false
is_component_build=false
is_debug = false
strip_debug_info=true
symbol_level=0
use_clang_modules=false
use_custom_libcxx=false
use_libfuzzer=false
v8_android_log_stdout = true
v8_enable_handle_zapping=false
v8_enable_i18n_support=true
v8_enable_pointer_compression=false
v8_enable_test_features=false
v8_enable_webassembly=false
v8_monolithic=true
v8_static_library=true
v8_symbol_level=0
v8_use_external_startup_data=false

android_ndk_root="/v8build/android-ndk-r29"
android_ndk_version="r29"
use_custom_libcxx_for_host = true
android_ndk_api_level = 29

v8_enable_temporal_support = false
use_blink=false
v8_monolithic_for_shared_library=true

enable_resource_allowlist_generation=false

v8_enable_builtins_optimization = true
v8_enable_sandbox = false

chrome_pgo_phase=0
is_official_build = true
use_thin_lto = false # otherise, get bitcode linker errors in android build
```

On Friday, January 16, 2026 at 8:35:42 AM UTC-7 Dustin Breese wrote:

> I'm using a different configuration and keep running into 
> `gen/third_party/libc++/src/include/__cstddef/byte.h:13:10: fatal error: 
> '__fwd/byte.h' file not found`.
>
> ```
> target_os="android"
> target_cpu="arm64"
> v8_target_cpu="arm64"
>
> android_ndk_api_level = 27
> android_ndk_root = "/v8build/android-ndk-r27d"
> android_ndk_version = "r27d"
>
> # false = use ndk's libc++, true (default) = use custom bundled version
> use_custom_libcxx = false
>
> # this will tell compiler to use custom bundled libcc for compiling
> #use_custom_libcxx_for_host = true
>
> is_component_build=false
> v8_monolithic=true
> v8_static_library=true
> is_clang = true
>
>
> clang_use_chrome_plugins=false
> dcheck_always_on = false
> icu_use_data_file = false
> is_debug = false
> strip_debug_info=true
> symbol_level=0
> v8_symbol_level=0
>
> use_libfuzzer=false
> v8_android_log_stdout = true
> v8_enable_handle_zapping=false
> v8_enable_i18n_support=true
> v8_enable_pointer_compression=false
> v8_enable_test_features=false
> v8_enable_webassembly=false
> v8_use_external_startup_data=false
> ```
>
> ```
> ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MD -MF 
> obj/build/modules/android-arm64/std_core/module.pcm.d -D_GNU_SOURCE 
> -D__ARM_NEON__=1 -DANDROID -D__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__ 
> -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r27d_1 
> -DCR_CLANG_REVISION=\"llvmorg-22-init-8940-g4d4cb757-84\" 
> -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -DNDEBUG -DNVALGRIND 
> -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_LIBCPP_BUILDING_LIBRARY -I../.. -Igen 
> -fno-implicit-module-maps -fno-delete-null-pointer-checks 
> -fno-strict-overflow -fno-ident -fno-math-errno -fno-strict-aliasing 
> -fstack-protector -funwind-tables -fPIC -fcolor-diagnostics 
> -fmerge-all-constants -fno-sized-deallocation 
> -fcrash-diagnostics-dir=../../out/clang-crashreports -mllvm 
> -instcombine-lower-dbg-declare=0 -mllvm 
> -split-threshold-for-reg-with-hint=0 -ffp-contract=off -ffunction-sections 
> -fno-short-enums -mbranch-protection=standard 
> --target=aarch64-linux-android27 -mno-outline -Wno-builtin-macro-redefined 
> -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -ffile-compilation-dir=. 
> -no-canonical-prefixes -Xclang -fmodule-file-home-is-cwd -Xclang 
> -fmodules-cache-path=/not_exist_dummy_dir -ftrivial-auto-var-init=pattern 
> -O2 -fdata-sections -ffunction-sections -fno-unique-section-names 
> -fno-omit-frame-pointer -g0 -fsanitize=array-bounds 
> -fsanitize-trap=array-bounds -fvisibility=hidden -Wheader-hygiene 
> -Wstring-conversion -Wtautological-overlap-compare -fstrict-aliasing 
> -Wundef -fPIC -Wall -Wno-unused-variable -Wno-c++11-narrowing 
> -Wno-unused-but-set-variable -Wunguarded-availability 
> -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi 
> -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-cast-function-type 
> -Wno-thread-safety-reference-return -Wno-nontrivial-memcall 
> -Wno-uninitialized-const-pointer -Werror -Wno-exit-time-destructors 
> -std=c++20 -Wno-trigraphs -gsimple-template-names -fno-exceptions -fno-rtti 
> --sysroot=../../../android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot
>  
> -fvisibility-inlines-hidden -fbuiltin-module-map 
> -fmodule-map-file=gen/third_party/libc++/src/include/module.modulemap 
> -fmodule-map-file=gen/build/modules/android-arm64/module.modulemap 
> -Wno-invalid-offsetof -Wenum-compare-conditional 
> -Wno-nullability-completeness 
> -fmodule-map-file=gen/third_party/libc++/src/include/module.modulemap 
> -fbuiltin-module-map 
> -fmodule-map-file=gen/build/modules/android-arm64/module.modulemap 
> -fmodule-file=obj/build/modules/android-arm64/_Builtin_stddef/module.pcm 
> -fmodule-file=obj/build/modules/android-arm64/_Builtin_stdint/module.pcm 
> -fmodule-file=obj/build/modules/android-arm64/sys_stage1/module.pcm 
> -fmodule-name=std_core -x c++ -Xclang -emit-module -c 
> gen/third_party/libc++/src/include/module.modulemap -o 
> obj/build/modules/android-arm64/std_core/module.pcm
> build step: cxx_module 
> "./obj/build/modules/android-arm64/std_core/module.pcm"
> siso_rule: clang/cxx_module
> stderr:
> While building module 'std_core':
>
> In file included from <module-includes>:1:
> gen/third_party/libc++/src/include/__cstddef/byte.h:13:10: fatal error: 
> '__fwd/byte.h' file not found
>    13 | #include <__fwd/byte.h>
>       |          ^~~~~~~~~~~~~~
> 1 error generated.
> ```
>
> On Thursday, January 15, 2026 at 12:37:21 PM UTC-7 Dustin Breese wrote:
>
>> Hi, 
>>
>> I'm attempting to build V8 14.3.127.17 for Android ARM64. I'm on OSX, but 
>> using Ubuntu 24.04 docker image to perform the V8 build.
>>
>> I'm able to successfully install all build deps (install-sysroot.py), 
>> gclient sync, and even install sysroots 
>> (build/linux/sysroot_scripts/install-sysroot.py --arch=arm64)
>>
>> What I am confused about is how to properly configure the build so that 
>> the android-arm64 build can be loaded and works on Android. Should I be 
>> using use_custom_libcxx=true or false? Should I be pointing to the NDK 
>> libc++ libraries instead?
>>
>> I've spent several days trying different builds and just can't seem to 
>> get anything working or to understand what the proper approach is. I need 
>> to embed the v8 engine in my Android app and am currently on a very old V8 
>> version that DOES BUILD (11.3.42). Any pointers would be appreciated!
>>
>> I'm a bit confused on what build settings I should use. I was able to 
>> successfully build the v8 monolith with the following settings, but 
>> attempting to build and link the lib_monolith.a on Android seems to have a 
>> libc++ mismatch and fails.
>>
>> Here's the buildable args.gn:
>>
>> ```
>> target_os="android"
>> target_cpu="arm64"
>> v8_target_cpu = "arm64"
>>
>> clang_use_chrome_plugins=false
>> dcheck_always_on = false
>> icu_use_data_file = false
>> is_component_build=false
>> is_debug = false
>> strip_debug_info=true
>> symbol_level=0
>> use_libfuzzer=false
>> v8_android_log_stdout = true
>> v8_enable_handle_zapping=false
>> v8_enable_i18n_support=true
>> v8_enable_pointer_compression=false
>> v8_enable_test_features=false
>> v8_enable_webassembly=false
>> v8_monolithic=true
>> v8_static_library=true
>> v8_symbol_level=0
>> v8_use_external_startup_data=false
>>
>> # --- NDK Path Configuration ---
>> android_ndk_root = "/v8build/android-ndk-r29"
>> android_ndk_version = "r29"
>>
>> # --- Libc++ Selection ---
>> # Disables V8's bundled libc++ so it searches the NDK path instead
>> use_custom_libcxx = true
>>
>> # --- Essential Build Flags ---
>> is_clang = true
>> ```
>>
>> Switching to `use_custom_libcxx=false` fails the v8 build in Docker with:
>>
>> ```
>> In file included from <module-includes>:1:
>> gen/third_party/libc++/src/include/__cstddef/byte.h:22:1: error: unknown 
>> type name '_LIBCPP_BEGIN_UNVERSIONED_NAMESPACE_STD'
>>    22 | _LIBCPP_BEGIN_UNVERSIONED_NAMESPACE_STD
>>       | ^
>> gen/third_party/libc++/src/include/__cstddef/byte.h:57:41: error: no 
>> template named 'is_integral'; did you mean 'std::is_integral'?
>>    57 | template <class _Integer, 
>> __enable_if_t<is_integral<_Integer>::value, int> = 0>
>>       |                                         ^
>> ...
>> ```
>>
>> Thanks,
>> Dustin
>>
>>
>>

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/v8-users/707a2421-4284-4278-99c4-5166772e18aen%40googlegroups.com.

Reply via email to