mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-30 04:39:06 +00:00
Isn't "expected struct timeval *, but argument is of type struct timeval *" a fun error message? C considers a 'struct foo' mentioned inside a function argument to be a distinct type from 'struct foo' declared on the global level, but only if the in-function definition comes first. So we need to ensure that struct timeval is declared (either fully, or forward-declared) before we declare select() and pselect(). This was taken care of by including <sys/time.h>, but https://github.com/SerenityOS/serenity/pull/20044 made it so that <sys/time.h> itself includes <sys/select.h>. So if the user's program includes <sys/time.h> (before possibly including <sys/select.h>), then <sys/select.h>'s include of <sys/time.h> will turn into a no-op (since <sys/time.h> is already being included), yet there will not have been a struct timeval definition yet, and we'd get the fun error message. Fix this by including <Kernel/API/POSIX/sys/time.h> instead of <sys/time.h> |
||
---|---|---|
.. | ||
arch | ||
auxv.cpp | ||
auxv.h | ||
cdefs.h | ||
file.cpp | ||
file.h | ||
internals.h | ||
ioctl.h | ||
mman.cpp | ||
mman.h | ||
param.h | ||
poll.h | ||
prctl.cpp | ||
prctl.h | ||
ptrace.cpp | ||
ptrace.h | ||
resource.h | ||
select.cpp | ||
select.h | ||
socket.cpp | ||
socket.h | ||
stat.h | ||
statvfs.cpp | ||
statvfs.h | ||
sysmacros.h | ||
time.h | ||
times.h | ||
ttydefaults.h | ||
types.h | ||
uio.cpp | ||
uio.h | ||
un.h | ||
utsname.h | ||
wait.cpp | ||
wait.h |