mirror of https://github.com/OpenIPC/firmware.git
Package: add mmap patch for libevent
parent
0c55434175
commit
a5f26973ab
|
@ -0,0 +1,41 @@
|
||||||
|
--- a/buffer.c
|
||||||
|
+++ b/buffer.c
|
||||||
|
@@ -63,6 +63,9 @@
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if defined(BROKEN_MMAP)
|
||||||
|
+#include <sys/syscall.h>
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
@@ -2977,6 +2980,12 @@
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if defined(BROKEN_MMAP)
|
||||||
|
+static void *mmap_ev(void *start, size_t len, int prot, int flags, int fd, off_t off) {
|
||||||
|
+ return (void *)syscall(SYS_mmap2, start, len, prot, flags, fd, off >> 12);
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* TODO(niels): we may want to add to automagically convert to mmap, in
|
||||||
|
* case evbuffer_remove() or evbuffer_pullup() are being used.
|
||||||
|
*/
|
||||||
|
@@ -3080,11 +3089,15 @@
|
||||||
|
offset_leftover = offset % page_size;
|
||||||
|
offset_rounded = offset - offset_leftover;
|
||||||
|
}
|
||||||
|
+#if defined(BROKEN_MMAP)
|
||||||
|
+ mapped = mmap_ev(NULL, length + offset_leftover,
|
||||||
|
+#else
|
||||||
|
#if defined(EVENT__HAVE_MMAP64)
|
||||||
|
mapped = mmap64(NULL, length + offset_leftover,
|
||||||
|
#else
|
||||||
|
mapped = mmap(NULL, length + offset_leftover,
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
PROT_READ,
|
||||||
|
#ifdef MAP_NOCACHE
|
||||||
|
MAP_NOCACHE | /* ??? */
|
|
@ -49,6 +49,10 @@ else
|
||||||
LIBEVENT_OPENIPC_CONF_OPTS += -DEVENT__DISABLE_MBEDTLS=ON
|
LIBEVENT_OPENIPC_CONF_OPTS += -DEVENT__DISABLE_MBEDTLS=ON
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
|
||||||
|
LIBEVENT_OPENIPC_CONF_OPTS += -DCMAKE_C_FLAGS="$(TARGET_CFLAGS) -DBROKEN_MMAP=1"
|
||||||
|
endif
|
||||||
|
|
||||||
LIBEVENT_OPENIPC_POST_INSTALL_TARGET_HOOKS += LIBEVENT_OPENIPC_DELETE_UNUSED
|
LIBEVENT_OPENIPC_POST_INSTALL_TARGET_HOOKS += LIBEVENT_OPENIPC_DELETE_UNUSED
|
||||||
|
|
||||||
$(eval $(cmake-package))
|
$(eval $(cmake-package))
|
||||||
|
|
Loading…
Reference in New Issue