mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 08:16:09 +03:00
musl: allocator: Fix __THROW and mallinfo
This commit is contained in:
parent
4f3e62ea6a
commit
7be3abda58
@ -277,7 +277,12 @@ void PartitionAllocMallocInitOnce() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
|
#if defined(__MUSL__)
|
||||||
|
// Musl calls malloc() in pthread_atfork(), resulting in a deadlock.
|
||||||
|
static_cast<void>(BeforeForkInParent);
|
||||||
|
static_cast<void>(AfterForkInParent);
|
||||||
|
static_cast<void>(AfterForkInChild);
|
||||||
|
#elif PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
|
||||||
// When fork() is called, only the current thread continues to execute in the
|
// When fork() is called, only the current thread continues to execute in the
|
||||||
// child process. If the lock is held, but *not* by this thread when fork() is
|
// child process. If the lock is held, but *not* by this thread when fork() is
|
||||||
// called, we have a deadlock.
|
// called, we have a deadlock.
|
||||||
|
@ -646,7 +646,9 @@ SHIM_ALWAYS_EXPORT int mallopt(int cmd, int value) __THROW {
|
|||||||
|
|
||||||
#endif // !PA_BUILDFLAG(IS_APPLE) && !PA_BUILDFLAG(IS_ANDROID)
|
#endif // !PA_BUILDFLAG(IS_APPLE) && !PA_BUILDFLAG(IS_ANDROID)
|
||||||
|
|
||||||
#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
|
#if defined(__MUSL__)
|
||||||
|
// Musl does not support struct mallinfo.
|
||||||
|
#elif PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
|
||||||
SHIM_ALWAYS_EXPORT struct mallinfo mallinfo(void) __THROW {
|
SHIM_ALWAYS_EXPORT struct mallinfo mallinfo(void) __THROW {
|
||||||
partition_alloc::SimplePartitionStatsDumper allocator_dumper;
|
partition_alloc::SimplePartitionStatsDumper allocator_dumper;
|
||||||
Allocator()->DumpStats("malloc", true, &allocator_dumper);
|
Allocator()->DumpStats("malloc", true, &allocator_dumper);
|
||||||
|
@ -9,7 +9,9 @@
|
|||||||
|
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
|
|
||||||
#if PA_BUILDFLAG(IS_POSIX)
|
#if defined(__MUSL__)
|
||||||
|
// Musl does not provide sys/cdefs.h
|
||||||
|
#elif PA_BUILDFLAG(IS_POSIX)
|
||||||
#include <sys/cdefs.h> // for __THROW
|
#include <sys/cdefs.h> // for __THROW
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -25,6 +25,12 @@
|
|||||||
|
|
||||||
#include "partition_alloc/shim/allocator_shim_internals.h"
|
#include "partition_alloc/shim/allocator_shim_internals.h"
|
||||||
|
|
||||||
|
// Musl does not specify anything for malloc() etc.
|
||||||
|
#if defined(__MUSL__)
|
||||||
|
#undef __THROW
|
||||||
|
#define __THROW
|
||||||
|
#endif
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
// WARNING: Whenever a new function is added there (which, surprisingly enough,
|
// WARNING: Whenever a new function is added there (which, surprisingly enough,
|
||||||
|
Loading…
Reference in New Issue
Block a user