1From b8435c6523d9377f04d5e21629f3dc68b8865016 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 23 Nov 2020 15:31:45 -0800
4Subject: [PATCH] heaptrack_preload: Make noexcept attribute conditional
5
6musl does not define these functions with noexcept and hence compiler
7complains about them
8
9Upstream-Status: Pending
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 src/track/heaptrack_preload.cpp | 26 ++++++++++++++++----------
13 1 file changed, 16 insertions(+), 10 deletions(-)
14
15diff --git a/src/track/heaptrack_preload.cpp b/src/track/heaptrack_preload.cpp
16index 63110ce..ee85331 100644
17--- a/src/track/heaptrack_preload.cpp
18+++ b/src/track/heaptrack_preload.cpp
19@@ -171,11 +171,17 @@ void init()
20 }
21 }
22
23+#ifdef __GLIBC__
24+#define NOEXECPT noexcept
25+#else
26+#define NOEXECPT
27+#endif
28+
29 extern "C" {
30
31 /// TODO: memalign, pvalloc, ...?
32
33-void* malloc(size_t size) noexcept
34+void* malloc(size_t size) NOEXECPT
35 {
36     if (!hooks::malloc) {
37         hooks::init();
38@@ -186,7 +192,7 @@ void* malloc(size_t size) noexcept
39     return ptr;
40 }
41
42-void free(void* ptr) noexcept
43+void free(void* ptr) NOEXECPT
44 {
45     if (!hooks::free) {
46         hooks::init();
47@@ -204,7 +210,7 @@ void free(void* ptr) noexcept
48     hooks::free(ptr);
49 }
50
51-void* realloc(void* ptr, size_t size) noexcept
52+void* realloc(void* ptr, size_t size) NOEXECPT
53 {
54     if (!hooks::realloc) {
55         hooks::init();
56@@ -219,7 +225,7 @@ void* realloc(void* ptr, size_t size) noexcept
57     return ret;
58 }
59
60-void* calloc(size_t num, size_t size) noexcept
61+void* calloc(size_t num, size_t size) NOEXECPT
62 {
63     if (!hooks::calloc) {
64         hooks::init();
65@@ -235,7 +241,7 @@ void* calloc(size_t num, size_t size) noexcept
66 }
67
68 #if HAVE_CFREE
69-void cfree(void* ptr) noexcept
70+void cfree(void* ptr) NOEXECPT
71 {
72     if (!hooks::cfree) {
73         hooks::init();
74@@ -252,7 +258,7 @@ void cfree(void* ptr) noexcept
75 }
76 #endif
77
78-int posix_memalign(void** memptr, size_t alignment, size_t size) noexcept
79+int posix_memalign(void** memptr, size_t alignment, size_t size) NOEXECPT
80 {
81     if (!hooks::posix_memalign) {
82         hooks::init();
83@@ -268,7 +274,7 @@ int posix_memalign(void** memptr, size_t alignment, size_t size) noexcept
84 }
85
86 #if HAVE_ALIGNED_ALLOC
87-void* aligned_alloc(size_t alignment, size_t size) noexcept
88+void* aligned_alloc(size_t alignment, size_t size) NOEXECPT
89 {
90     if (!hooks::aligned_alloc) {
91         hooks::init();
92@@ -285,7 +291,7 @@ void* aligned_alloc(size_t alignment, size_t size) noexcept
93 #endif
94
95 #if HAVE_VALLOC
96-void* valloc(size_t size) noexcept
97+void* valloc(size_t size) NOEXECPT
98 {
99     if (!hooks::valloc) {
100         hooks::init();
101@@ -301,7 +307,7 @@ void* valloc(size_t size) noexcept
102 }
103 #endif
104
105-void* dlopen(const char* filename, int flag) noexcept
106+void* dlopen(const char* filename, int flag) NOEXECPT
107 {
108     if (!hooks::dlopen) {
109         hooks::init();
110@@ -316,7 +322,7 @@ void* dlopen(const char* filename, int flag) noexcept
111     return ret;
112 }
113
114-int dlclose(void* handle) noexcept
115+int dlclose(void* handle) NOEXECPT
116 {
117     if (!hooks::dlclose) {
118         hooks::init();
119