mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 01:39:16 -04:00
Update wayland to 1.14.0
Disable posix_fallocate since ZFS does not support it. Use epoll-shim instead of kqueue directly, from myfreeweb on github. PR: 224200 Submitted by: Johannes Lundberg
This commit is contained in:
parent
21735a1156
commit
c1e6040e96
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=455878
10 changed files with 52 additions and 186 deletions
|
@ -1,25 +1,8 @@
|
||||||
# Created by: kwm@FreeBSD.org
|
# Created by: kwm@FreeBSD.org
|
||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
# NOTE
|
|
||||||
# Changes made by kwm to use kevent instead of epoll
|
|
||||||
# are still in place. However, since libinput depends
|
|
||||||
# on libepoll-shim the simplest to do was to have Wayland
|
|
||||||
# also use it. Currently build will fail if epoll-shim
|
|
||||||
# is not available but can be built without epoll-shim
|
|
||||||
# if EPOLLSHIM_LIBS is cleared (configure.ac)
|
|
||||||
#
|
|
||||||
# TODO: Add condition for this in configure
|
|
||||||
#
|
|
||||||
# If we want to build Wayland with kwm's kevent patches
|
|
||||||
# and use epoll-shim for libinput we have to change it
|
|
||||||
# so that Wayland ignore epoll headers installed by
|
|
||||||
# epoll-shim.
|
|
||||||
# Maybe best is to use epoll-shim if it is good enough
|
|
||||||
# and keep diff with upstream minimal.
|
|
||||||
|
|
||||||
PORTNAME= wayland
|
PORTNAME= wayland
|
||||||
PORTVERSION= 1.13.0
|
PORTVERSION= 1.14.0
|
||||||
CATEGORIES= graphics wayland
|
CATEGORIES= graphics wayland
|
||||||
MASTER_SITES= http://wayland.freedesktop.org/releases/
|
MASTER_SITES= http://wayland.freedesktop.org/releases/
|
||||||
|
|
||||||
|
@ -42,6 +25,7 @@ USE_GNOME= libxslt:build
|
||||||
USE_LDCONFIG= yes
|
USE_LDCONFIG= yes
|
||||||
GNU_CONFIGURE= yes
|
GNU_CONFIGURE= yes
|
||||||
CONFIGURE_ARGS= --disable-documentation
|
CONFIGURE_ARGS= --disable-documentation
|
||||||
|
CONFIGURE_ENV= ac_cv_func_posix_fallocate=no # EINVAL for many FS on 12.0
|
||||||
INSTALL_TARGET= install-strip
|
INSTALL_TARGET= install-strip
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
.include <bsd.port.mk>
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
TIMESTAMP = 1493984926
|
TIMESTAMP = 1507715269
|
||||||
SHA256 (wayland-1.13.0.tar.xz) = 69b052c031a61e89af7cc8780893d0da1e301492352aa449dee9345043e6fe51
|
SHA256 (wayland-1.14.0.tar.xz) = ed80cabc0961a759a42092e2c39aabfc1ec9a13c86c98bbe2b812f008da27ab8
|
||||||
SIZE (wayland-1.13.0.tar.xz) = 414508
|
SIZE (wayland-1.14.0.tar.xz) = 413960
|
||||||
|
|
|
@ -1,16 +1,13 @@
|
||||||
--- configure.ac.orig 2016-06-01 00:11:10 UTC
|
--- configure.ac.orig 2017-08-08 18:20:52 UTC
|
||||||
+++ configure.ac
|
+++ configure.ac
|
||||||
@@ -63,6 +63,28 @@ AC_SUBST(GCC_CFLAGS)
|
@@ -63,6 +63,25 @@ AC_SUBST(GCC_CFLAGS)
|
||||||
|
|
||||||
AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate])
|
AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate])
|
||||||
|
|
||||||
+AC_CHECK_HEADERS([sys/signalfd.h sys/timerfd.h])
|
+AC_CHECK_HEADERS([sys/signalfd.h sys/timerfd.h])
|
||||||
+
|
+
|
||||||
+# Use epoll on Linux or kqueue on BSD
|
+# Use epoll on Linux and epoll-shim (kqueue) on BSD
|
||||||
+AC_CHECK_HEADERS([sys/epoll.h sys/event.h])
|
+AC_CHECK_HEADERS([sys/epoll.h])
|
||||||
+if test "x$ac_cv_header_sys_epoll_h" != "xyes" && test "x$ac_cv_header_sys_event_h" != "xyes"; then
|
|
||||||
+ AC_MSG_ERROR([Can't find sys/epoll.h or sys/event.h. Please ensure either epoll or kqueue is available.])
|
|
||||||
+fi
|
|
||||||
+
|
+
|
||||||
+# Credential support on FreeBSD
|
+# Credential support on FreeBSD
|
||||||
+AC_CHECK_HEADERS([sys/ucred.h])
|
+AC_CHECK_HEADERS([sys/ucred.h])
|
||||||
|
@ -29,7 +26,7 @@
|
||||||
AC_ARG_ENABLE([libraries],
|
AC_ARG_ENABLE([libraries],
|
||||||
[AC_HELP_STRING([--disable-libraries],
|
[AC_HELP_STRING([--disable-libraries],
|
||||||
[Disable compilation of wayland libraries])],
|
[Disable compilation of wayland libraries])],
|
||||||
@@ -98,11 +120,12 @@ AC_SUBST([ICONDIR])
|
@@ -98,17 +117,21 @@ AC_SUBST([ICONDIR])
|
||||||
|
|
||||||
if test "x$enable_libraries" = "xyes"; then
|
if test "x$enable_libraries" = "xyes"; then
|
||||||
PKG_CHECK_MODULES(FFI, [libffi])
|
PKG_CHECK_MODULES(FFI, [libffi])
|
||||||
|
@ -44,13 +41,12 @@
|
||||||
[[#include <sys/timerfd.h>]])
|
[[#include <sys/timerfd.h>]])
|
||||||
AC_CHECK_DECL(CLOCK_MONOTONIC,[],
|
AC_CHECK_DECL(CLOCK_MONOTONIC,[],
|
||||||
[AC_MSG_ERROR("CLOCK_MONOTONIC is needed to compile wayland libraries")],
|
[AC_MSG_ERROR("CLOCK_MONOTONIC is needed to compile wayland libraries")],
|
||||||
@@ -110,6 +133,9 @@ if test "x$enable_libraries" = "xyes"; t
|
[[#include <time.h>]])
|
||||||
AC_CHECK_HEADERS([execinfo.h])
|
AC_CHECK_HEADERS([execinfo.h])
|
||||||
fi
|
fi
|
||||||
|
+
|
||||||
+EPOLLSHIM_LIBS="-lepoll-shim"
|
+EPOLLSHIM_LIBS="-lepoll-shim"
|
||||||
+AC_SUBST(EPOLLSHIM_LIBS)
|
+AC_SUBST(EPOLLSHIM_LIBS)
|
||||||
+
|
|
||||||
PKG_CHECK_MODULES(EXPAT, [expat], [],
|
PKG_CHECK_MODULES(EXPAT, [expat], [],
|
||||||
[AC_CHECK_HEADERS(expat.h, [],
|
[AC_CHECK_HEADERS(expat.h, [],
|
||||||
[AC_MSG_ERROR([Can't find expat.h. Please install expat.])])
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- src/wayland-os.c.orig 2015-07-06 19:38:51 UTC
|
--- src/wayland-os.c.orig 2017-08-08 18:20:52 UTC
|
||||||
+++ src/wayland-os.c
|
+++ src/wayland-os.c
|
||||||
@@ -25,14 +25,20 @@
|
@@ -25,6 +25,8 @@
|
||||||
|
|
||||||
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
||||||
|
|
||||||
|
@ -9,20 +9,15 @@
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <fcntl.h>
|
@@ -32,7 +34,6 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
+#ifdef HAVE_SYS_EPOLL_H
|
|
||||||
#include <sys/epoll.h>
|
#include <sys/epoll.h>
|
||||||
+#endif
|
|
||||||
+#ifdef HAVE_SYS_EVENT_H
|
|
||||||
+#include <sys/event.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
-#include "../config.h"
|
-#include "../config.h"
|
||||||
#include "wayland-os.h"
|
#include "wayland-os.h"
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@@ -62,26 +68,50 @@ wl_os_socket_cloexec(int domain, int typ
|
@@ -62,26 +63,50 @@ wl_os_socket_cloexec(int domain, int type, int protoco
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
|
@ -73,7 +68,7 @@
|
||||||
|
|
||||||
newfd = fcntl(fd, F_DUPFD, minfd);
|
newfd = fcntl(fd, F_DUPFD, minfd);
|
||||||
return set_cloexec_or_close(newfd);
|
return set_cloexec_or_close(newfd);
|
||||||
@@ -123,15 +153,18 @@ wl_os_recvmsg_cloexec(int sockfd, struct
|
@@ -123,15 +148,18 @@ wl_os_recvmsg_cloexec(int sockfd, struct msghdr *msg,
|
||||||
{
|
{
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
|
|
||||||
|
@ -92,22 +87,10 @@
|
||||||
int
|
int
|
||||||
wl_os_epoll_create_cloexec(void)
|
wl_os_epoll_create_cloexec(void)
|
||||||
{
|
{
|
||||||
@@ -148,6 +181,19 @@ wl_os_epoll_create_cloexec(void)
|
@@ -148,6 +176,7 @@ wl_os_epoll_create_cloexec(void)
|
||||||
fd = epoll_create(1);
|
fd = epoll_create(1);
|
||||||
return set_cloexec_or_close(fd);
|
return set_cloexec_or_close(fd);
|
||||||
}
|
}
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifdef HAVE_SYS_EVENT_H
|
|
||||||
+int
|
|
||||||
+wl_os_kqueue_create_cloexec(void)
|
|
||||||
+{
|
|
||||||
+ int fd;
|
|
||||||
+
|
|
||||||
+ fd = kqueue();
|
|
||||||
+
|
|
||||||
+ return set_cloexec_or_close(fd);
|
|
||||||
+}
|
|
||||||
+#endif
|
+#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- src/wayland-os.h.orig 2015-07-06 19:38:51 UTC
|
--- src/wayland-os.h.orig 2017-08-08 18:20:52 UTC
|
||||||
+++ src/wayland-os.h
|
+++ src/wayland-os.h
|
||||||
@@ -30,13 +30,25 @@ int
|
@@ -30,6 +30,9 @@ int
|
||||||
wl_os_socket_cloexec(int domain, int type, int protocol);
|
wl_os_socket_cloexec(int domain, int type, int protocol);
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -10,19 +10,3 @@
|
||||||
wl_os_dupfd_cloexec(int fd, long minfd);
|
wl_os_dupfd_cloexec(int fd, long minfd);
|
||||||
|
|
||||||
ssize_t
|
ssize_t
|
||||||
wl_os_recvmsg_cloexec(int sockfd, struct msghdr *msg, int flags);
|
|
||||||
|
|
||||||
+/* FIXME? not sure if this will work in this header like this ...
|
|
||||||
+ though seems build only header perhaps? */
|
|
||||||
+#ifdef HAVE_SYS_EPOLL_H
|
|
||||||
int
|
|
||||||
wl_os_epoll_create_cloexec(void);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifdef HAVE_SYS_EVENT_H
|
|
||||||
+int
|
|
||||||
+wl_os_kqueue_create_cloexec(void);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
wl_os_accept_cloexec(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
--- src/wayland-server.c.orig 2017-02-07 22:59:06 UTC
|
--- src/wayland-server.c.orig 2017-08-08 18:20:52 UTC
|
||||||
+++ src/wayland-server.c
|
+++ src/wayland-server.c
|
||||||
@@ -25,6 +25,8 @@
|
@@ -25,6 +25,8 @@
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
#include "wayland-util.h"
|
#include "wayland-util.h"
|
||||||
#include "wayland-private.h"
|
#include "wayland-private.h"
|
||||||
#include "wayland-server.h"
|
#include "wayland-server.h"
|
||||||
@@ -79,7 +86,13 @@ struct wl_client {
|
@@ -77,7 +84,13 @@ struct wl_client {
|
||||||
struct wl_list link;
|
struct wl_list link;
|
||||||
struct wl_map objects;
|
struct wl_map objects;
|
||||||
struct wl_priv_signal destroy_signal;
|
struct wl_priv_signal destroy_signal;
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
int error;
|
int error;
|
||||||
struct wl_priv_signal resource_created_signal;
|
struct wl_priv_signal resource_created_signal;
|
||||||
};
|
};
|
||||||
@@ -503,10 +516,20 @@ wl_client_create(struct wl_display *disp
|
@@ -501,10 +514,20 @@ wl_client_create(struct wl_display *display, int fd)
|
||||||
if (!client->source)
|
if (!client->source)
|
||||||
goto err_client;
|
goto err_client;
|
||||||
|
|
||||||
|
@ -56,13 +56,13 @@
|
||||||
|
|
||||||
client->connection = wl_connection_create(fd);
|
client->connection = wl_connection_create(fd);
|
||||||
if (client->connection == NULL)
|
if (client->connection == NULL)
|
||||||
@@ -560,12 +583,23 @@ WL_EXPORT void
|
@@ -558,12 +581,23 @@ WL_EXPORT void
|
||||||
wl_client_get_credentials(struct wl_client *client,
|
wl_client_get_credentials(struct wl_client *client,
|
||||||
pid_t *pid, uid_t *uid, gid_t *gid)
|
pid_t *pid, uid_t *uid, gid_t *gid)
|
||||||
{
|
{
|
||||||
+#ifdef HAVE_SYS_UCRED_H
|
+#ifdef HAVE_SYS_UCRED_H
|
||||||
+ /* FreeBSD */
|
+ /* FreeBSD */
|
||||||
+ if (pid)
|
if (pid)
|
||||||
+ *pid = 0; /* FIXME: not defined on FreeBSD */
|
+ *pid = 0; /* FIXME: not defined on FreeBSD */
|
||||||
+ if (uid)
|
+ if (uid)
|
||||||
+ *uid = client->xucred.cr_uid;
|
+ *uid = client->xucred.cr_uid;
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
+ *gid = client->xucred.cr_gid;
|
+ *gid = client->xucred.cr_gid;
|
||||||
+#else
|
+#else
|
||||||
+ /* Linux */
|
+ /* Linux */
|
||||||
if (pid)
|
+ if (pid)
|
||||||
*pid = client->ucred.pid;
|
*pid = client->ucred.pid;
|
||||||
if (uid)
|
if (uid)
|
||||||
*uid = client->ucred.uid;
|
*uid = client->ucred.uid;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
--- src/wayland-shm.c.orig 2016-11-18 00:32:40 UTC
|
--- src/wayland-shm.c.orig 2017-08-08 18:20:52 UTC
|
||||||
+++ src/wayland-shm.c
|
+++ src/wayland-shm.c
|
||||||
@@ -30,6 +30,8 @@
|
@@ -30,6 +30,8 @@
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
if (data == MAP_FAILED) {
|
if (data == MAP_FAILED) {
|
||||||
wl_resource_post_error(pool->resource,
|
wl_resource_post_error(pool->resource,
|
||||||
WL_SHM_ERROR_INVALID_FD,
|
WL_SHM_ERROR_INVALID_FD,
|
||||||
@@ -110,6 +124,10 @@ shm_pool_unref(struct wl_shm_pool *pool,
|
@@ -110,6 +124,10 @@ shm_pool_unref(struct wl_shm_pool *pool, bool external
|
||||||
if (pool->internal_refcount + pool->external_refcount)
|
if (pool->internal_refcount + pool->external_refcount)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
munmap(pool->data, pool->size);
|
munmap(pool->data, pool->size);
|
||||||
free(pool);
|
free(pool);
|
||||||
}
|
}
|
||||||
@@ -223,6 +241,73 @@ shm_pool_destroy(struct wl_client *clien
|
@@ -223,6 +241,73 @@ shm_pool_destroy(struct wl_client *client, struct wl_r
|
||||||
wl_resource_destroy(resource);
|
wl_resource_destroy(resource);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@
|
||||||
static void
|
static void
|
||||||
shm_pool_resize(struct wl_client *client, struct wl_resource *resource,
|
shm_pool_resize(struct wl_client *client, struct wl_resource *resource,
|
||||||
int32_t size)
|
int32_t size)
|
||||||
@@ -284,7 +369,14 @@ shm_create_pool(struct wl_client *client
|
@@ -284,7 +369,14 @@ shm_create_pool(struct wl_client *client, struct wl_re
|
||||||
"failed mmap fd %d", fd);
|
"failed mmap fd %d", fd);
|
||||||
goto err_free;
|
goto err_free;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
--- tests/event-loop-test.c.orig 2016-10-22 16:23:10 UTC
|
--- tests/event-loop-test.c.orig 2017-08-08 18:20:52 UTC
|
||||||
+++ tests/event-loop-test.c
|
+++ tests/event-loop-test.c
|
||||||
@@ -167,10 +167,10 @@ TEST(event_loop_signal)
|
@@ -167,10 +167,10 @@ TEST(event_loop_signal)
|
||||||
signal_callback, &got_it);
|
signal_callback, &got_it);
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
assert(got_it == 1);
|
assert(got_it == 1);
|
||||||
|
|
||||||
wl_event_source_remove(source);
|
wl_event_source_remove(source);
|
||||||
@@ -234,12 +234,20 @@ TEST(event_loop_timer)
|
@@ -234,11 +234,19 @@ TEST(event_loop_timer)
|
||||||
|
|
||||||
source = wl_event_loop_add_timer(loop, timer_callback, &got_it);
|
source = wl_event_loop_add_timer(loop, timer_callback, &got_it);
|
||||||
assert(source);
|
assert(source);
|
||||||
|
@ -29,12 +29,11 @@
|
||||||
+ * See: http://unix.derkeiler.com/Mailing-Lists/FreeBSD/hackers/2012-07/msg00319.html */
|
+ * See: http://unix.derkeiler.com/Mailing-Lists/FreeBSD/hackers/2012-07/msg00319.html */
|
||||||
+ assert(wl_event_loop_dispatch(loop, 50) == 0);
|
+ assert(wl_event_loop_dispatch(loop, 50) == 0);
|
||||||
assert(got_it == 1);
|
assert(got_it == 1);
|
||||||
|
+
|
||||||
+ /* Check it doesn't fire again. */
|
+ /* Check it doesn't fire again. */
|
||||||
+ got_it = 0;
|
+ got_it = 0;
|
||||||
+ assert(wl_event_loop_dispatch(loop, 20) == 0);
|
+ assert(wl_event_loop_dispatch(loop, 20) == 0);
|
||||||
+ assert(!got_it);
|
+ assert(!got_it);
|
||||||
+
|
|
||||||
wl_event_source_remove(source);
|
wl_event_source_remove(source);
|
||||||
wl_event_loop_destroy(loop);
|
wl_event_loop_destroy(loop);
|
||||||
}
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
--- tests/os-wrappers-test.c.orig 2016-10-22 16:23:10 UTC
|
--- tests/os-wrappers-test.c.orig 2017-08-08 18:20:52 UTC
|
||||||
+++ tests/os-wrappers-test.c
|
+++ tests/os-wrappers-test.c
|
||||||
@@ -26,6 +26,8 @@
|
@@ -26,6 +26,8 @@
|
||||||
|
|
||||||
|
@ -9,47 +9,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
@@ -38,7 +40,13 @@
|
@@ -73,10 +75,12 @@ socket(int domain, int type, int protocol)
|
||||||
#include <stdarg.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
+
|
|
||||||
+#ifdef HAVE_SYS_EPOLL_H
|
|
||||||
#include <sys/epoll.h>
|
|
||||||
+#elif HAVE_SYS_EVENT_H
|
|
||||||
+#include <sys/event.h>
|
|
||||||
+#include <sys/types.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#include "wayland-private.h"
|
|
||||||
#include "test-runner.h"
|
|
||||||
@@ -55,8 +63,13 @@ static int wrapped_calls_fcntl;
|
|
||||||
static ssize_t (*real_recvmsg)(int, struct msghdr *, int);
|
|
||||||
static int wrapped_calls_recvmsg;
|
|
||||||
|
|
||||||
+#ifdef HAVE_SYS_EPOLL_H
|
|
||||||
static int (*real_epoll_create1)(int);
|
|
||||||
static int wrapped_calls_epoll_create1;
|
|
||||||
+#elif HAVE_SYS_EVENT_H
|
|
||||||
+static int (*real_kqueue)(void);
|
|
||||||
+static int wrapped_calls_kqueue;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
static void
|
|
||||||
init_fallbacks(int do_fallbacks)
|
|
||||||
@@ -65,7 +78,11 @@ init_fallbacks(int do_fallbacks)
|
|
||||||
real_socket = dlsym(RTLD_NEXT, "socket");
|
|
||||||
real_fcntl = dlsym(RTLD_NEXT, "fcntl");
|
|
||||||
real_recvmsg = dlsym(RTLD_NEXT, "recvmsg");
|
|
||||||
+#ifdef HAVE_SYS_EPOLL_H
|
|
||||||
real_epoll_create1 = dlsym(RTLD_NEXT, "epoll_create1");
|
|
||||||
+#elif HAVE_SYS_EVENT_H
|
|
||||||
+ real_kqueue = dlsym(RTLD_NEXT, "kqueue");
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
__attribute__ ((visibility("default"))) int
|
|
||||||
@@ -73,10 +90,12 @@ socket(int domain, int type, int protoco
|
|
||||||
{
|
{
|
||||||
wrapped_calls_socket++;
|
wrapped_calls_socket++;
|
||||||
|
|
||||||
|
@ -62,7 +22,7 @@
|
||||||
|
|
||||||
return real_socket(domain, type, protocol);
|
return real_socket(domain, type, protocol);
|
||||||
}
|
}
|
||||||
@@ -89,10 +108,12 @@ fcntl(int fd, int cmd, ...)
|
@@ -89,10 +93,12 @@ fcntl(int fd, int cmd, ...)
|
||||||
|
|
||||||
wrapped_calls_fcntl++;
|
wrapped_calls_fcntl++;
|
||||||
|
|
||||||
|
@ -75,7 +35,7 @@
|
||||||
|
|
||||||
va_start(ap, cmd);
|
va_start(ap, cmd);
|
||||||
arg = va_arg(ap, void*);
|
arg = va_arg(ap, void*);
|
||||||
@@ -106,14 +127,17 @@ recvmsg(int sockfd, struct msghdr *msg,
|
@@ -106,10 +112,12 @@ recvmsg(int sockfd, struct msghdr *msg, int flags)
|
||||||
{
|
{
|
||||||
wrapped_calls_recvmsg++;
|
wrapped_calls_recvmsg++;
|
||||||
|
|
||||||
|
@ -88,28 +48,7 @@
|
||||||
|
|
||||||
return real_recvmsg(sockfd, msg, flags);
|
return real_recvmsg(sockfd, msg, flags);
|
||||||
}
|
}
|
||||||
|
@@ -156,12 +164,14 @@ TEST(os_wrappers_socket_cloexec)
|
||||||
+#ifdef HAVE_SYS_EPOLL_H
|
|
||||||
__attribute__ ((visibility("default"))) int
|
|
||||||
epoll_create1(int flags)
|
|
||||||
{
|
|
||||||
@@ -127,6 +151,15 @@ epoll_create1(int flags)
|
|
||||||
|
|
||||||
return real_epoll_create1(flags);
|
|
||||||
}
|
|
||||||
+#elif HAVE_SYS_EVENT_H
|
|
||||||
+__attribute__ ((visibility("default"))) int
|
|
||||||
+kqueue(void)
|
|
||||||
+{
|
|
||||||
+ wrapped_calls_kqueue++;
|
|
||||||
+
|
|
||||||
+ return real_kqueue();
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
static void
|
|
||||||
do_os_wrappers_socket_cloexec(int n)
|
|
||||||
@@ -156,12 +189,14 @@ TEST(os_wrappers_socket_cloexec)
|
|
||||||
do_os_wrappers_socket_cloexec(0);
|
do_os_wrappers_socket_cloexec(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,7 +63,7 @@
|
||||||
|
|
||||||
static void
|
static void
|
||||||
do_os_wrappers_dupfd_cloexec(int n)
|
do_os_wrappers_dupfd_cloexec(int n)
|
||||||
@@ -195,11 +230,13 @@ TEST(os_wrappers_dupfd_cloexec)
|
@@ -195,11 +205,13 @@ TEST(os_wrappers_dupfd_cloexec)
|
||||||
do_os_wrappers_dupfd_cloexec(0);
|
do_os_wrappers_dupfd_cloexec(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +77,7 @@
|
||||||
|
|
||||||
struct marshal_data {
|
struct marshal_data {
|
||||||
struct wl_connection *read_connection;
|
struct wl_connection *read_connection;
|
||||||
@@ -218,8 +255,7 @@ struct marshal_data {
|
@@ -218,8 +230,7 @@ struct marshal_data {
|
||||||
static void
|
static void
|
||||||
setup_marshal_data(struct marshal_data *data)
|
setup_marshal_data(struct marshal_data *data)
|
||||||
{
|
{
|
||||||
|
@ -148,7 +87,7 @@
|
||||||
|
|
||||||
data->read_connection = wl_connection_create(data->s[0]);
|
data->read_connection = wl_connection_create(data->s[0]);
|
||||||
assert(data->read_connection);
|
assert(data->read_connection);
|
||||||
@@ -328,11 +364,13 @@ TEST(os_wrappers_recvmsg_cloexec)
|
@@ -328,11 +339,13 @@ TEST(os_wrappers_recvmsg_cloexec)
|
||||||
do_os_wrappers_recvmsg_cloexec(0);
|
do_os_wrappers_recvmsg_cloexec(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,24 +101,3 @@
|
||||||
|
|
||||||
static void
|
static void
|
||||||
do_os_wrappers_epoll_create_cloexec(int n)
|
do_os_wrappers_epoll_create_cloexec(int n)
|
||||||
@@ -342,12 +380,20 @@ do_os_wrappers_epoll_create_cloexec(int
|
|
||||||
|
|
||||||
nr_fds = count_open_fds();
|
|
||||||
|
|
||||||
+#ifdef HAVE_SYS_EPOLL_H
|
|
||||||
fd = wl_os_epoll_create_cloexec();
|
|
||||||
+#elif HAVE_SYS_EVENT_H
|
|
||||||
+ fd = wl_os_kqueue_create_cloexec();
|
|
||||||
+#endif
|
|
||||||
assert(fd >= 0);
|
|
||||||
|
|
||||||
#ifdef EPOLL_CLOEXEC
|
|
||||||
+#ifdef HAVE_SYS_EPOLL_H
|
|
||||||
assert(wrapped_calls_epoll_create1 == n);
|
|
||||||
#else
|
|
||||||
+ assert(wrapped_calls_kqueue == n);
|
|
||||||
+#endif
|
|
||||||
+#else
|
|
||||||
printf("No epoll_create1.\n");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
--- tests/test-runner.c.orig 2016-11-18 00:32:40 UTC
|
--- tests/test-runner.c.orig 2017-08-08 18:20:52 UTC
|
||||||
+++ tests/test-runner.c
|
+++ tests/test-runner.c
|
||||||
@@ -25,6 +25,12 @@
|
@@ -25,6 +25,12 @@
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -37,18 +43,35 @@
|
@@ -37,19 +43,36 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <sys/ptrace.h>
|
#include <sys/ptrace.h>
|
||||||
|
@ -39,16 +39,17 @@
|
||||||
static void* (*sys_realloc)(void*, size_t);
|
static void* (*sys_realloc)(void*, size_t);
|
||||||
static void* (*sys_calloc)(size_t, size_t);
|
static void* (*sys_calloc)(size_t, size_t);
|
||||||
+#endif
|
+#endif
|
||||||
+
|
|
||||||
+#ifdef __FreeBSD__
|
+#ifdef __FreeBSD__
|
||||||
+/* XXX review ptrace() usage */
|
+/* XXX review ptrace() usage */
|
||||||
+#define PTRACE_ATTACH PT_ATTACH
|
+#define PTRACE_ATTACH PT_ATTACH
|
||||||
+#define PTRACE_CONT PT_CONTINUE
|
+#define PTRACE_CONT PT_CONTINUE
|
||||||
+#define PTRACE_DETACH PT_DETACH
|
+#define PTRACE_DETACH PT_DETACH
|
||||||
+#endif
|
+#endif
|
||||||
|
+
|
||||||
/* when set to 1, check if tests are not leaking memory and opened files.
|
/* when set to 1, check if tests are not leaking memory and opened files.
|
||||||
* It is turned on by default. It can be turned off by
|
* It is turned on by default. It can be turned off by
|
||||||
|
* WAYLAND_TEST_NO_LEAK_CHECK environment variable. */
|
||||||
@@ -57,7 +80,7 @@ int leak_check_enabled;
|
@@ -57,7 +80,7 @@ int leak_check_enabled;
|
||||||
|
|
||||||
/* when this var is set to 0, every call to test_set_timeout() is
|
/* when this var is set to 0, every call to test_set_timeout() is
|
||||||
|
@ -115,7 +116,7 @@
|
||||||
if (is_debugger_attached()) {
|
if (is_debugger_attached()) {
|
||||||
leak_check_enabled = 0;
|
leak_check_enabled = 0;
|
||||||
timeouts_enabled = 0;
|
timeouts_enabled = 0;
|
||||||
@@ -364,6 +393,16 @@ int main(int argc, char *argv[])
|
@@ -364,7 +393,17 @@ int main(int argc, char *argv[])
|
||||||
leak_check_enabled = !getenv("WAYLAND_TEST_NO_LEAK_CHECK");
|
leak_check_enabled = !getenv("WAYLAND_TEST_NO_LEAK_CHECK");
|
||||||
timeouts_enabled = !getenv("WAYLAND_TEST_NO_TIMEOUTS");
|
timeouts_enabled = !getenv("WAYLAND_TEST_NO_TIMEOUTS");
|
||||||
}
|
}
|
||||||
|
@ -125,13 +126,14 @@
|
||||||
+ /* XXX review later */
|
+ /* XXX review later */
|
||||||
+ timeouts_enabled = 0;
|
+ timeouts_enabled = 0;
|
||||||
+#endif
|
+#endif
|
||||||
+
|
|
||||||
+ if (isatty(fileno(stderr)))
|
+ if (isatty(fileno(stderr)))
|
||||||
+ is_atty = 1;
|
+ is_atty = 1;
|
||||||
+
|
+
|
||||||
|
+
|
||||||
if (argc == 2 && strcmp(argv[1], "--help") == 0)
|
if (argc == 2 && strcmp(argv[1], "--help") == 0)
|
||||||
usage(argv[0], EXIT_SUCCESS);
|
usage(argv[0], EXIT_SUCCESS);
|
||||||
|
|
||||||
@@ -395,7 +434,8 @@ int main(int argc, char *argv[])
|
@@ -395,7 +434,8 @@ int main(int argc, char *argv[])
|
||||||
if (pid == 0)
|
if (pid == 0)
|
||||||
run_test(t); /* never returns */
|
run_test(t); /* never returns */
|
||||||
|
|
Loading…
Add table
Reference in a new issue