1c0ff6aa23
Later, the aports folder will probably get split up in its own repository. But right now this is simply convenient.
42 lines
1.4 KiB
Diff
42 lines
1.4 KiB
Diff
From bab47fac06af5d891caaccac99f1dc1e75bdc219 Mon Sep 17 00:00:00 2001
|
|
From: Szabolcs Nagy <nsz@port70.net>
|
|
Date: Sat, 1 Aug 2015 23:24:07 +0000
|
|
Subject: [PATCH 2/6] posix_memalign
|
|
|
|
---
|
|
gcc/config/i386/pmm_malloc.h | 9 +++++----
|
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
|
|
index a1f98d3..4f6b2dc 100644
|
|
--- a/gcc/config/i386/pmm_malloc.h
|
|
+++ b/gcc/config/i386/pmm_malloc.h
|
|
@@ -27,12 +27,13 @@
|
|
#include <stdlib.h>
|
|
|
|
/* We can't depend on <stdlib.h> since the prototype of posix_memalign
|
|
- may not be visible. */
|
|
+ may not be visible and we can't pollute the namespace either. */
|
|
#ifndef __cplusplus
|
|
-extern int posix_memalign (void **, size_t, size_t);
|
|
+extern int _mm_posix_memalign (void **, size_t, size_t)
|
|
#else
|
|
-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
|
|
+extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw ()
|
|
#endif
|
|
+__asm__("posix_memalign");
|
|
|
|
static __inline void *
|
|
_mm_malloc (size_t size, size_t alignment)
|
|
@@ -42,7 +43,7 @@ _mm_malloc (size_t size, size_t alignment)
|
|
return malloc (size);
|
|
if (alignment == 2 || (sizeof (void *) == 8 && alignment == 4))
|
|
alignment = sizeof (void *);
|
|
- if (posix_memalign (&ptr, alignment, size) == 0)
|
|
+ if (_mm_posix_memalign (&ptr, alignment, size) == 0)
|
|
return ptr;
|
|
else
|
|
return NULL;
|
|
--
|
|
2.8.1
|
|
|