diff --git a/src/external/libkqueue b/src/external/libkqueue index 87619c6fe..61ab68ad6 160000 --- a/src/external/libkqueue +++ b/src/external/libkqueue @@ -1 +1 @@ -Subproject commit 87619c6fed500fe35eefb5c0d200176ebff40fd6 +Subproject commit 61ab68ad6db65225a5337d5b6a19de2e1371c355 diff --git a/src/kernel/emulation/linux/unistd/close.c b/src/kernel/emulation/linux/unistd/close.c index 10ad81d86..f789def4f 100644 --- a/src/kernel/emulation/linux/unistd/close.c +++ b/src/kernel/emulation/linux/unistd/close.c @@ -3,6 +3,10 @@ #include "../errno.h" #include +__attribute__((weak)) +__attribute__((visibility("default"))) +int kqueue_close(int kq) { return -1; } + long sys_close(int fd) { return sys_close_nocancel(fd); @@ -15,6 +19,8 @@ long sys_close_nocancel(int fd) ret = LINUX_SYSCALL1(__NR_close, fd); if (ret < 0) ret = errno_linux_to_bsd(ret); + else + kqueue_close(fd); return ret; }