about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-07-31 10:47:54 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-08-06 16:10:17 +0200
commit4f102a43fa6d36a3dcb105c424454399640df415 (patch)
tree69b4b3c6b0b9ea811f88e58d394bcfdc789a86a0 /src
parent2ac265d52951c2951281b25aa0aba3ad21b6565f (diff)
downloadbox64-4f102a43fa6d36a3dcb105c424454399640df415.tar.gz
box64-4f102a43fa6d36a3dcb105c424454399640df415.zip
Also use __libc_memalign instead of posix_memalign
Diffstat (limited to 'src')
-rw-r--r--src/custommem.c4
-rwxr-xr-xsrc/include/debug.h13
-rw-r--r--src/mallochook.c2
3 files changed, 12 insertions, 7 deletions
diff --git a/src/custommem.c b/src/custommem.c
index 7d0d82f0..25c55063 100644
--- a/src/custommem.c
+++ b/src/custommem.c
@@ -414,7 +414,7 @@ uintptr_t AddNewDynarecMap(dynablock_t* db, size_t size)
     }
     #ifndef USE_MMAP
     void *p = NULL;
-    if(posix_memalign(&p, box64_pagesize, MMAPSIZE)) {
+    if(!(p=box_memalign(box64_pagesize, MMAPSIZE))) {
         dynarec_log(LOG_INFO, "Cannot create memory map of %d byte for dynarec block #%zu\n", MMAPSIZE, i);
         --mmapsize;
         return 0;
@@ -517,7 +517,7 @@ uintptr_t AllocDynarecMap(dynablock_t* db, size_t size)
     if(size>MMAPSIZE-2*sizeof(blockmark_t)) {
         #ifndef USE_MMAP
         void *p = NULL;
-        if(posix_memalign(&p, box64_pagesize, size)) {
+        if(!(p=box_memalign(box64_pagesize, size))) {
             dynarec_log(LOG_INFO, "Cannot create dynamic map of %zu bytes\n", size);
             return 0;
         }
diff --git a/src/include/debug.h b/src/include/debug.h
index d39ac369..5f228f58 100755
--- a/src/include/debug.h
+++ b/src/include/debug.h
@@ -79,16 +79,19 @@ extern void*(*__libc_malloc)(size_t);
 extern void*(*__libc_realloc)(void*, size_t);
 extern void*(*__libc_calloc)(size_t, size_t);
 extern void (*__libc_free*)(void*);
+extern void*(*__libc_memalign)(size_t, size_t);
 #else
 extern void* __libc_malloc(size_t);
 extern void* __libc_realloc(void*, size_t);
 extern void* __libc_calloc(size_t, size_t);
-extern void __libc_free(void*);
+extern void  __libc_free(void*);
+extern void* __libc_memalign(size_t, size_t);
 #endif
-#define box_malloc  __libc_malloc
-#define box_realloc __libc_realloc
-#define box_calloc  __libc_calloc
-#define box_free    __libc_free
+#define box_malloc      __libc_malloc
+#define box_realloc     __libc_realloc
+#define box_calloc      __libc_calloc
+#define box_free        __libc_free
+#define box_memalign    __libc_memalign 
 extern char* box_strdup(const char* s);
 
 #endif //__DEBUG_H_
diff --git a/src/mallochook.c b/src/mallochook.c
index e5927b7f..c4a28499 100644
--- a/src/mallochook.c
+++ b/src/mallochook.c
@@ -12,12 +12,14 @@ void*(*__libc_malloc)(size_t) = NULL;
 void*(*__libc_realloc)(size_t, void*) = NULL;
 void*(*__libc_calloc)(size_t, size_t) = NULL;
 void (*__libc_free*)(void*) = NULL;
+void*(*__libc_memalign)(size_t, size_t) = NULL;
 
 void init_malloc_hook() {
     __libc_malloc = dlsym(RTLD_NEXT, "malloc");
     __libc_realloc = dlsym(RTLD_NEXT, "realloc");
     __libc_calloc = dlsym(RTLD_NEXT, "realloc");
     __libc_free = dlsym(RTLD_NEXT, "free");
+    __libc_memalign = dlsym(RTLD_NEXT, "memalign");
 }
 #endif