Add support for scudo svelte.

Bug: 137795072

Test: Built with scudo and scudo svelte.
Change-Id: Ib2afd5249b897b818012ee71547af1f4ee60201b
diff --git a/libc/Android.bp b/libc/Android.bp
index ae5f39e..8dcc8f6 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -127,9 +127,18 @@
     name: "libc_scudo_defaults",
 
     cflags: [
-        "-DUSE_SCUDO",
+        "-DUSE_SCUDO_SVELTE",
     ],
 
+    product_variables: {
+        malloc_not_svelte: {
+            cflags: [
+                "-UUSE_SCUDO_SVELTE",
+                "-DUSE_SCUDO",
+            ],
+        },
+    },
+
     whole_static_libs: [
         "libscudo",
     ],
diff --git a/libc/bionic/malloc_common.h b/libc/bionic/malloc_common.h
index 89dccc3..4a726db 100644
--- a/libc/bionic/malloc_common.h
+++ b/libc/bionic/malloc_common.h
@@ -60,6 +60,11 @@
 #include "scudo.h"
 #define Malloc(function)  scudo_ ## function
 
+#elif defined(USE_SCUDO_SVELTE)
+
+#include "scudo.h"
+#define Malloc(function)  scudo_svelte_ ## function
+
 #else
 
 #include "jemalloc.h"
diff --git a/libc/bionic/scudo.h b/libc/bionic/scudo.h
index a80d754..946a497 100644
--- a/libc/bionic/scudo.h
+++ b/libc/bionic/scudo.h
@@ -56,4 +56,24 @@
 void scudo_malloc_disable();
 void scudo_malloc_enable();
 
+void* scudo_svelte_aligned_alloc(size_t, size_t);
+void* scudo_svelte_calloc(size_t, size_t);
+void scudo_svelte_free(void*);
+struct mallinfo scudo_svelte_mallinfo();
+void* scudo_svelte_malloc(size_t);
+int scudo_svelte_malloc_info(int, FILE*);
+size_t scudo_svelte_malloc_usable_size(const void*);
+int scudo_svelte_mallopt(int, int);
+void* scudo_svelte_memalign(size_t, size_t);
+void* scudo_svelte_realloc(void*, size_t);
+int scudo_svelte_posix_memalign(void**, size_t, size_t);
+#if defined(HAVE_DEPRECATED_MALLOC_FUNCS)
+void* scudo_svelte_pvalloc(size_t);
+void* scudo_svelte_valloc(size_t);
+#endif
+
+int scudo_svelte_malloc_iterate(uintptr_t, size_t, void (*)(uintptr_t, size_t, void*), void*);
+void scudo_svelte_malloc_disable();
+void scudo_svelte_malloc_enable();
+
 __END_DECLS