Index: head/devel/ElectricFence/files/patch-efence.c =================================================================== --- head/devel/ElectricFence/files/patch-efence.c (revision 493984) +++ head/devel/ElectricFence/files/patch-efence.c (revision 493985) @@ -1,12 +1,38 @@ ---- efence.c.orig Mon Jan 13 17:24:08 2003 -+++ efence.c Mon Jan 13 17:22:50 2003 -@@ -271,7 +271,9 @@ - char * string; - Slot * slot; +--- efence.c.orig 2019-02-26 17:53:52.941236000 +0100 ++++ efence.c 2019-02-26 17:56:18.688752000 +0100 +@@ -38,6 +38,7 @@ + # include + # include + #endif ++#include -+#if 0 - EF_Print(version); -+#endif + #ifdef malloc + #undef malloc +@@ -670,6 +671,27 @@ + release(); - #ifdef USE_SEMAPHORE - if (sem_init(&EF_sem, 0, 1) >= 0) { + return address; ++} ++ ++extern C_LINKAGE int ++posix_memalign(void **memptr, size_t alignment, size_t userSize) ++{ ++ /* ++ * Per standard, posix_memalign returns EINVAL when alignment ++ * is not a power of two or power of sizeof(void*). efence ++ * doesn't check the value of alignment in memalign, but then ++ * again, memalign was never specified very well, and on some ++ * systems odd alignments could indeed have been allowed. ++ */ ++ if ((alignment & (alignment - 1)) ++ || alignment % sizeof (void *)) ++ return EINVAL; ++ ++ void *ptr = memalign (alignment, userSize); ++ if (ptr == NULL) ++ return ENOMEM; ++ *memptr = ptr; ++ return 0; + } + + /*