mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2025-10-29 05:40:16 -04:00
build: fix build and provide compat for OpenBSD
- wayland-egl-abi-check: try to use llvm-nm first instead of BSD nm (incompatible options) - avoid forcing _POSIX_C_SOURCE=200809L (SOCK_CLOEXEC become available) - epoll(7) is provided by a userspace wrapper around kqueue(2) as FreeBSD - when using SO_PEERCRED, the struct to use is `struct sockpeercred` instead of `struct ucred` on OpenBSD - provide a compatibility layer for count_open_fds() using sysctl(2) as FreeBSD Signed-off-by: Sebastien Marie <semarie@online.fr>
This commit is contained in:
parent
791912c678
commit
d80bce5f1a
5 changed files with 41 additions and 3 deletions
|
|
@ -61,6 +61,33 @@ count_open_fds(void)
|
|||
assert(error == 0 && "sysctl KERN_PROC_NFDS failed.");
|
||||
return nfds;
|
||||
}
|
||||
#elif defined(__OpenBSD__)
|
||||
#include <sys/sysctl.h>
|
||||
|
||||
/*
|
||||
* On OpenBSD, get file descriptor information using sysctl()
|
||||
*/
|
||||
int
|
||||
count_open_fds(void)
|
||||
{
|
||||
int error;
|
||||
int mib[6];
|
||||
size_t size;
|
||||
|
||||
mib[0] = CTL_KERN;
|
||||
mib[1] = KERN_FILE;
|
||||
mib[2] = KERN_FILE_BYPID;
|
||||
mib[3] = getpid();
|
||||
mib[4] = sizeof(struct kinfo_file);
|
||||
mib[5] = 0;
|
||||
|
||||
/* find the size required to store all the entries */
|
||||
error = sysctl(mib, 6, NULL, &size, NULL, 0);
|
||||
assert(error != -1 && "sysctl KERN_FILE_BYPID failed.");
|
||||
|
||||
/* return the current number of entries */
|
||||
return size / sizeof(struct kinfo_file);
|
||||
}
|
||||
#else
|
||||
int
|
||||
count_open_fds(void)
|
||||
|
|
|
|||
|
|
@ -308,6 +308,13 @@ is_debugger_attached(void)
|
|||
|
||||
return rc;
|
||||
}
|
||||
#else
|
||||
static int
|
||||
is_debugger_attached(void)
|
||||
{
|
||||
/* 0=debugger can't be determined */
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue