aboutsummaryrefslogtreecommitdiffstats
path: root/vespamalloc
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-06-29 16:06:31 +0200
committerGitHub <noreply@github.com>2021-06-29 16:06:31 +0200
commit2baf0e8d284b0bd187425913ec4c6f1be1511511 (patch)
treef8052a48727388c0a3170f78040a81994ce26893 /vespamalloc
parent51dbf8ce94bcc590cfe640eeee7e5afc45ec5a5b (diff)
Revert "Add support for mallinfo2 with glibc 2.33"
Diffstat (limited to 'vespamalloc')
-rw-r--r--vespamalloc/src/tests/stacktrace/stacktrace.cpp21
-rw-r--r--vespamalloc/src/tests/test1/new_test.cpp22
-rw-r--r--vespamalloc/src/vespamalloc/malloc/overload.h42
3 files changed, 19 insertions, 66 deletions
diff --git a/vespamalloc/src/tests/stacktrace/stacktrace.cpp b/vespamalloc/src/tests/stacktrace/stacktrace.cpp
index 37322994586..f30e3c20f55 100644
--- a/vespamalloc/src/tests/stacktrace/stacktrace.cpp
+++ b/vespamalloc/src/tests/stacktrace/stacktrace.cpp
@@ -17,22 +17,12 @@ void * run(void * arg)
}
void verify_that_vespamalloc_datasegment_size_exists() {
-#if __GLIBC_PREREQ(2, 33)
- struct mallinfo2 info = mallinfo2();
- printf("Malloc used %zdm of memory\n", info.arena);
- assert(info.arena >= 10 * 0x100000ul);
- assert(info.arena < 10000 * 0x100000ul);
- assert(info.fordblks == 0);
- assert(info.fsmblks == 0);
- assert(info.hblkhd == 0);
- assert(info.hblks == 0);
- assert(info.keepcost == 0);
- assert(info.ordblks == 0);
- assert(info.smblks == 0);
- assert(info.uordblks == 0);
- assert(info.usmblks == 0);
-#else
+#pragma GCC diagnostic push
+#if __GNUC_PREREQ(2, 33)
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
struct mallinfo info = mallinfo();
+#pragma GCC diagnostic push
printf("Malloc used %dm of memory\n",info.arena);
assert(info.arena >= 10);
assert(info.arena < 10000);
@@ -45,7 +35,6 @@ void verify_that_vespamalloc_datasegment_size_exists() {
assert(info.smblks == 0);
assert(info.uordblks == 0);
assert(info.usmblks == 0);
-#endif
}
int main(int argc, char *argv[])
diff --git a/vespamalloc/src/tests/test1/new_test.cpp b/vespamalloc/src/tests/test1/new_test.cpp
index ac053323255..9c291b3842e 100644
--- a/vespamalloc/src/tests/test1/new_test.cpp
+++ b/vespamalloc/src/tests/test1/new_test.cpp
@@ -95,19 +95,17 @@ TEST("verify new with alignment = 64 with single element") {
LOG(info, "&s=%p", s.get());
}
-#if __GLIBC_PREREQ(2, 26)
-TEST("verify realloarray") {
- void *arr = calloc(5,5);
- void *arr2 = reallocarray(arr, 800, 5);
- EXPECT_NOT_EQUAL(arr, arr2);
- EXPECT_NOT_EQUAL(nullptr, arr2);
- EXPECT_NOT_EQUAL(ENOMEM, errno);
-
- void *arr3 = reallocarray(arr2, 1u << 33, 1u << 33);
- EXPECT_EQUAL(nullptr, arr3);
- EXPECT_EQUAL(ENOMEM, errno);
+TEST("verify new with alignment = 64 with single element") {
+ struct alignas(64) S {
+ long a;
+ };
+ static_assert(sizeof(S) == 64);
+ static_assert(alignof(S) == 64);
+ auto s = std::make_unique<S>();
+ verify_aligned(s.get());
+ cmp(s.get(), &s->a);
+ LOG(info, "&s=%p", s.get());
}
-#endif
void verify_vespamalloc_usable_size() {
struct AllocInfo { size_t requested; size_t usable;};
diff --git a/vespamalloc/src/vespamalloc/malloc/overload.h b/vespamalloc/src/vespamalloc/malloc/overload.h
index 8815a11a84f..1ec37c37aa1 100644
--- a/vespamalloc/src/vespamalloc/malloc/overload.h
+++ b/vespamalloc/src/vespamalloc/malloc/overload.h
@@ -106,23 +106,6 @@ void operator delete[](void* ptr, std::size_t sz, std::align_val_t alignment) no
extern "C" {
-#if __GLIBC_PREREQ(2, 33)
-struct mallinfo2 mallinfo2() __THROW __attribute__((visibility ("default")));
-struct mallinfo2 mallinfo2() __THROW {
- struct mallinfo2 info;
- info.arena = vespamalloc::_GmemP->dataSegment().dataSize();
- info.ordblks = 0;
- info.smblks = 0;
- info.hblks = 0;
- info.hblkhd = 0;
- info.usmblks = 0;
- info.fsmblks = 0;
- info.uordblks = 0;
- info.fordblks = 0;
- info.keepcost = 0;
- return info;
-}
-#else
struct mallinfo mallinfo() __THROW __attribute__((visibility ("default")));
struct mallinfo mallinfo() __THROW {
struct mallinfo info;
@@ -138,7 +121,6 @@ struct mallinfo mallinfo() __THROW {
info.keepcost = 0;
return info;
}
-#endif
void * malloc(size_t sz) {
return vespamalloc::createAllocator()->malloc(sz);
@@ -154,17 +136,6 @@ void * realloc(void * ptr, size_t sz)
return vespamalloc::createAllocator()->realloc(ptr, sz);
}
-void * reallocarray(void * ptr, size_t nemb, size_t elemSize) __THROW __attribute__((visibility ("default")));
-void * reallocarray(void * ptr, size_t nemb, size_t elemSize) __THROW
-{
- size_t sz = nemb * elemSize;
- if (nemb != 0 && (sz/nemb != elemSize)) {
- errno = ENOMEM;
- return nullptr;
- }
- return vespamalloc::createAllocator()->realloc(ptr, sz);
-}
-
void* memalign(size_t align, size_t sz) __THROW __attribute__((visibility ("default")));
void* memalign(size_t align, size_t sz) __THROW
{
@@ -202,6 +173,7 @@ void *valloc(size_t size) __THROW
return memalign(sysconf(_SC_PAGESIZE),size);
}
+
void free(void * ptr) {
if (ptr) { vespamalloc::_GmemP->free(ptr); }
}
@@ -215,8 +187,7 @@ size_t malloc_usable_size (void * ptr) __THROW {
#ifdef __clang__
void* __libc_malloc(size_t sz) __THROW __attribute__((malloc, alloc_size(1))) ALIAS("malloc");
void* __libc_realloc(void* ptr, size_t sz) __THROW __attribute__((malloc, alloc_size(2))) ALIAS("realloc");
-void* __libc_reallocarray(void* ptr, size_t nemb, size_t sz) __THROW __attribute__((malloc, alloc_size(2,3))) ALIAS("reallocarray");
-void* __libc_calloc(size_t n, size_t sz) __THROW __attribute__((malloc, alloc_size(1,2))) ALIAS("calloc");
+void* __libc_calloc(size_t n, size_t sz) __THROW __attribute__((malloc, alloc_size(2))) ALIAS("calloc");
void cfree(void *) __THROW ALIAS("free");
void __libc_free(void* ptr) __THROW ALIAS("free");
#pragma clang diagnostic push
@@ -226,20 +197,15 @@ void __libc_cfree(void* ptr) __THROW ALIAS("cfree");
#else
void* __libc_malloc(size_t sz) __THROW __attribute__((leaf, malloc, alloc_size(1))) ALIAS("malloc");
void* __libc_realloc(void* ptr, size_t sz) __THROW __attribute__((leaf, malloc, alloc_size(2))) ALIAS("realloc");
-void* __libc_reallocarray(void* ptr, size_t nemb, size_t sz) __THROW __attribute__((leaf, malloc, alloc_size(2,3))) ALIAS("reallocarray");
-void* __libc_calloc(size_t n, size_t sz) __THROW __attribute__((leaf, malloc, alloc_size(1,2))) ALIAS("calloc");
+void* __libc_calloc(size_t n, size_t sz) __THROW __attribute__((leaf, malloc, alloc_size(2))) ALIAS("calloc");
void cfree(void *) __THROW __attribute__((leaf)) ALIAS("free");
void __libc_free(void* ptr) __THROW __attribute__((leaf)) ALIAS("free");
void __libc_cfree(void* ptr) __THROW __attribute__((leaf)) ALIAS("cfree");
#endif
+struct mallinfo __libc_mallinfo() __THROW ALIAS("mallinfo");
size_t __libc_malloc_usable_size(void *ptr) __THROW ALIAS("malloc_usable_size");
void* __libc_memalign(size_t align, size_t s) __THROW __attribute__((leaf, malloc, alloc_size(2))) ALIAS("memalign");
int __posix_memalign(void** r, size_t a, size_t s) __THROW __nonnull((1)) ALIAS("posix_memalign");
-#if __GLIBC_PREREQ(2, 33)
-struct mallinfo2 __libc_mallinfo2() __THROW ALIAS("mallinfo2");
-#else
-struct mallinfo __libc_mallinfo() __THROW ALIAS("mallinfo");
-#endif
#undef ALIAS
}