mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2026-03-23 05:35:51 -04:00
build: Fix build and tests on macOS
This commit addresses several compatibility issues that prevented Wayland from building and passing its test suite on macOS Core and Compatibility changes: - Emulate Linux behavior by explicitly setting O_NONBLOCK on connections (fixes blocking sendmsg issues on macOS). - Fix compilation on platforms missing SOCK_CLOEXEC and MSG_CMSG_CLOEXEC. - Implement wl_os_socket_peercred() using LOCAL_PEERPID for macOS. - Ensure availability of struct itimerspec (required for POSIX Timers API). Test suite fixes: - Add socketpair_cloexec() wrapper to handle platforms without atomic SOCK_CLOEXEC support. - Add implementation of memrchr() for platforms that do not provide it. - Implement is_debugger_attached() for macOS to handle test timeouts. - Fix tests to handle Mach-O binary format (instead of ELF). - Update egl-symbols-check to support macOS *.dylib Mach-O libraries. Build system: - Add meson option 'xml_catalog' to allow specifying custom catalog paths. Signed-off-by: Martin Lopatář <lopin@dataplex.cz>
This commit is contained in:
parent
53509f09ba
commit
6ef7947c93
16 changed files with 179 additions and 23 deletions
|
|
@ -48,7 +48,7 @@ setup(int *s)
|
|||
{
|
||||
struct wl_connection *connection;
|
||||
|
||||
assert(socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, s) == 0);
|
||||
assert(socketpair_cloexec(AF_UNIX, SOCK_STREAM, 0, s) == 0);
|
||||
|
||||
connection = wl_connection_create(s[0], WL_BUFFER_DEFAULT_MAX_SIZE);
|
||||
assert(connection);
|
||||
|
|
@ -181,8 +181,7 @@ struct marshal_data {
|
|||
static void
|
||||
setup_marshal_data(struct marshal_data *data)
|
||||
{
|
||||
assert(socketpair(AF_UNIX,
|
||||
SOCK_STREAM | SOCK_CLOEXEC, 0, data->s) == 0);
|
||||
assert(socketpair_cloexec(AF_UNIX, SOCK_STREAM, 0, data->s) == 0);
|
||||
data->read_connection = wl_connection_create(data->s[0],
|
||||
WL_BUFFER_DEFAULT_MAX_SIZE);
|
||||
assert(data->read_connection);
|
||||
|
|
@ -885,7 +884,7 @@ TEST(request_bogus_size)
|
|||
for (bogus_size = 11; bogus_size >= 0; bogus_size--) {
|
||||
fprintf(stderr, "* bogus size %d\n", bogus_size);
|
||||
|
||||
assert(socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, s) == 0);
|
||||
assert(socketpair_cloexec(AF_UNIX, SOCK_STREAM, 0, s) == 0);
|
||||
display = wl_display_create();
|
||||
assert(display);
|
||||
client = wl_client_create(display, s[0]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue