28 lines
909 B
Diff
28 lines
909 B
Diff
|
Fix conflicting prototype of posix_memalign for c++
|
||
|
http://www.openwall.com/lists/musl/2013/11/10/1
|
||
|
|
||
|
--- ./gcc/config/i386/pmm_malloc.h.orig
|
||
|
+++ ./gcc/config/i386/pmm_malloc.h
|
||
|
@@ -28,11 +28,7 @@
|
||
|
|
||
|
/* We can't depend on <stdlib.h> since the prototype of posix_memalign
|
||
|
may not be visible. */
|
||
|
-#ifndef __cplusplus
|
||
|
-extern int posix_memalign (void **, size_t, size_t);
|
||
|
-#else
|
||
|
-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
|
||
|
-#endif
|
||
|
+extern int __gcc_posix_memalign (void **, size_t, size_t) __asm__("posix_memalign");
|
||
|
|
||
|
static __inline void *
|
||
|
_mm_malloc (size_t size, size_t alignment)
|
||
|
@@ -42,7 +38,7 @@
|
||
|
return malloc (size);
|
||
|
if (alignment == 2 || (sizeof (void *) == 8 && alignment == 4))
|
||
|
alignment = sizeof (void *);
|
||
|
- if (posix_memalign (&ptr, alignment, size) == 0)
|
||
|
+ if (__gcc_posix_memalign (&ptr, alignment, size) == 0)
|
||
|
return ptr;
|
||
|
else
|
||
|
return NULL;
|