mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-09 08:33:51 +02:00
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
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
|
pkgname=gcc
|
||||||
_majorver=4.9
|
_majorver=4.9
|
||||||
version=${_majorver}.2
|
version=${_majorver}.2
|
||||||
revision=7
|
revision=8
|
||||||
short_desc="The GNU C Compiler"
|
short_desc="The GNU C Compiler"
|
||||||
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
||||||
homepage="http://gcc.gnu.org"
|
homepage="http://gcc.gnu.org"
|
||||||
|
|
Loading…
Add table
Reference in a new issue