From de6ec29406df54911ea50dec47f40d6b6e4d6ef7 Mon Sep 17 00:00:00 2001 From: Deepso Date: Wed, 29 Jul 2026 01:05:17 +0530 Subject: [PATCH] fix(boring-sys): localize allocator hooks on Android --- boring-sys/build/main.rs | 5 +++++ boring-sys/patches/android-local-memory-hooks.patch | 13 +++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 boring-sys/patches/android-local-memory-hooks.patch diff --git a/boring-sys/build/main.rs b/boring-sys/build/main.rs index fb44eafda..f3ecdad36 100644 --- a/boring-sys/build/main.rs +++ b/boring-sys/build/main.rs @@ -519,6 +519,11 @@ fn ensure_patches_applied(config: &Config) -> io::Result<()> { apply_patch(config, "underscore-wildcards.patch")?; } + if config.target_os == "android" { + println!("cargo:warning=disabling weak allocator hooks on Android"); + apply_patch(config, "android-local-memory-hooks.patch")?; + } + Ok(()) } diff --git a/boring-sys/patches/android-local-memory-hooks.patch b/boring-sys/patches/android-local-memory-hooks.patch new file mode 100644 index 000000000..ee46d1d5d --- /dev/null +++ b/boring-sys/patches/android-local-memory-hooks.patch @@ -0,0 +1,13 @@ +diff --git a/src/crypto/mem.c b/src/crypto/mem.c +index e4398d1a7..71e533524 100644 +--- a/src/crypto/mem.c ++++ b/src/crypto/mem.c +@@ -94,7 +94,7 @@ static void __asan_unpoison_memory_region(const void *addr, size_t size) {} + // Windows doesn't really support weak symbols as of May 2019, and Clang on + // Windows will emit strong symbols instead. See + // https://bugs.llvm.org/show_bug.cgi?id=37598 +-#if defined(__ELF__) && defined(__GNUC__) ++#if defined(__ELF__) && defined(__GNUC__) && !defined(__ANDROID__) + #define WEAK_SYMBOL_FUNC(rettype, name, args) \ + rettype name args __attribute__((weak)); + #else