gcc: fix conflicting prototype of posix_memalign for C++
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.
This commit is contained in:
parent
86783f36e8
commit
089625f71f
2 changed files with 31 additions and 1 deletions
srcpkgs/gcc
30
srcpkgs/gcc/patches/musl-posix_memalign-c++.patch
Normal file
30
srcpkgs/gcc/patches/musl-posix_memalign-c++.patch
Normal file
|
@ -0,0 +1,30 @@
|
|||
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;
|
|
@ -2,7 +2,7 @@
|
|||
pkgname=gcc
|
||||
_majorver=4.9
|
||||
version=${_majorver}.2
|
||||
revision=7
|
||||
revision=8
|
||||
short_desc="The GNU C Compiler"
|
||||
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
||||
homepage="http://gcc.gnu.org"
|
||||
|
|
Loading…
Reference in a new issue