Merge "Fix dlext.ns_anonymous test for native bridge"
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
diff --git a/tests/signal_test.cpp b/tests/signal_test.cpp
index 3bc3135..eec56dc 100644
--- a/tests/signal_test.cpp
+++ b/tests/signal_test.cpp
@@ -24,9 +24,12 @@
 #include <thread>
 
 #include <android-base/macros.h>
+#include <android-base/threads.h>
+
 #include <gtest/gtest.h>
 
 #include "SignalUtils.h"
+#include "utils.h"
 
 using namespace std::chrono_literals;
 
@@ -174,10 +177,10 @@
   sigemptyset64(&wait_set);
   sigaddset64(&wait_set, SIGRTMIN);
 
-  pid_t pid = getpid();
-  std::thread thread([&pid]() {
+  pid_t tid = gettid();
+  std::thread thread([&tid]() {
     sleep(1);
-    kill(pid, SIGRTMIN);
+    tgkill(getpid(), tid, SIGRTMIN);
   });
 
   int received_signal;