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;