pmaports/cross/gcc4-armhf/musl-posix_memalign-c++.patch
Daniele Debernardi 7b3702e2dd Add gcc4 and gcc4-armhf packages (!216)
Successfully tested both the gcc4 compiler on x86_64 with a simple
program (fbdebug) and the gcc4-armhf cross-compiler to build a very old
u-boot port for Galaxy Nexus (a MR will follow soon) which failed to
boot with either newer version (6 and 8).

[skip ci]: already went through
2019-02-12 21:03:12 +00:00

27 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;