diff --git a/libc-test/src/functional/BUILD.gn b/libc-test/src/functional/BUILD.gn index 77bf4678de3adeab64d32c3ac919d7fb04ea5dd9..62f485d2b21b2b682fcc36215a2309d751d8219f 100644 --- a/libc-test/src/functional/BUILD.gn +++ b/libc-test/src/functional/BUILD.gn @@ -1,7 +1,7 @@ import("../../test_template.gni") import("test_src_functional.gni") -if (is_standard_system) { +if (is_standard_system && musl_iterate_and_stats_api) { functional_list += malloc_stats_list } diff --git a/musl_config.gni b/musl_config.gni index 355a4d5ab38e29b7d7dcd84abc89394c96139514..87e27b17787e61cb2834da25c59d7c02204c08a4 100644 --- a/musl_config.gni +++ b/musl_config.gni @@ -60,7 +60,7 @@ declare_args() { if (!is_standard_system) { enable_musl_log = false } - musl_iterate_and_stats_api = true + musl_iterate_and_stats_api = false musl_secure_level = 1 } diff --git a/porting/linux/user/src/internal/malloc_impl.h b/porting/linux/user/src/internal/malloc_impl.h index 0a9817a34ba6e9bfb2cb07e700d8135ee0b2e8de..af97a813c8186bb265e49990e35719b258c929ca 100644 --- a/porting/linux/user/src/internal/malloc_impl.h +++ b/porting/linux/user/src/internal/malloc_impl.h @@ -10,10 +10,12 @@ hidden void __malloc_donate(char *, char *); hidden void *__memalign(size_t, size_t); +#ifdef MUSL_ITERATE_AND_STATS_API typedef struct occupied_bin_s { struct chunk *head, *tail; volatile int lock[2]; } occupied_bin_t; +#endif struct chunk { size_t psize, csize; @@ -60,6 +62,7 @@ hidden size_t __get_total_heap_space(void); #define ITERATE_AND_STATS_OVERHEAD (0) #endif +#ifdef MUSL_ITERATE_AND_STATS_API #ifndef MALLOC_RED_ZONE #define SIZE_ALIGN (8*sizeof(size_t)) #define OVERHEAD (2*sizeof(size_t) + ITERATE_AND_STATS_OVERHEAD) @@ -67,12 +70,24 @@ hidden size_t __get_total_heap_space(void); #define SIZE_ALIGN (16*sizeof(size_t)) #define OVERHEAD (4*sizeof(size_t) + ITERATE_AND_STATS_OVERHEAD) #endif - +#else +#ifndef MALLOC_RED_ZONE +#define SIZE_ALIGN (4*sizeof(size_t)) +#define OVERHEAD (2*sizeof(size_t)) +#else +#define SIZE_ALIGN (8*sizeof(size_t)) +#define OVERHEAD (4*sizeof(size_t)) +#endif +#endif #define MMAP_THRESHOLD (0x1c00*SIZE_ALIGN) #ifndef MALLOC_RED_ZONE +#ifdef MUSL_ITERATE_AND_STATS_API #define DONTCARE OVERHEAD #else +#define DONTCARE 16 +#endif +#else #define DONTCARE OVERHEAD #define POINTER_USAGE (2*sizeof(void *)) #endif