089625f71f
Ref: http://www.openwall.com/lists/musl/2013/11/10/1. This patch is required for building cups-filters, libvisio, libcdr and probably many more with musl.
30 lines
1.1 KiB
Diff
30 lines
1.1 KiB
Diff
diff --git gcc/config/i386/pmm_malloc.h gcc/config/i386/pmm_malloc.h
|
|
index 901001b..321fcd3 100644
|
|
--- gcc/config/i386/pmm_malloc.h
|
|
+++ 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 __gcc_posix_memalign (void **, size_t, size_t)
|
|
#else
|
|
-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
|
|
+extern "C" int __gcc_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 (__gcc_posix_memalign (&ptr, alignment, size) == 0)
|
|
return ptr;
|
|
else
|
|
return NULL;
|