diff --git a/meson.build b/meson.build index 6fcf1da5..2c979ccb 100644 --- a/meson.build +++ b/meson.build @@ -230,6 +230,16 @@ conf.set( ), description: 'Is network address and service translation available' ) +conf.set( + 'HAVE_GLIBC_IOCTL', + cc.compiles( + '''#include + int ioctl(int fd, unsigned long request, ...); + ''', + name: 'ioctl has glibc-style prototype' + ), + description: 'Is ioctl the glibc interface (rather than POSIX)' +) if cc.has_function_attribute('fallthrough') conf.set('fallthrough', '__attribute__((__fallthrough__))') diff --git a/test/ioctl/mock.c b/test/ioctl/mock.c index e917244b..5d2ac94e 100644 --- a/test/ioctl/mock.c +++ b/test/ioctl/mock.c @@ -114,7 +114,11 @@ void end_mock_cmds(void) } \ }) +#ifdef HAVE_GLIBC_IOCTL int ioctl(int fd, unsigned long request, ...) +#else +int ioctl(int fd, int request, ...) +#endif { struct mock_cmds *mock_cmds; bool result64; @@ -141,7 +145,7 @@ int ioctl(int fd, unsigned long request, ...) result64 = true; break; default: - fail("unexpected %s %lu", __func__, request); + fail("unexpected %s %lu", __func__, (unsigned long) request); } check(mock_cmds->remaining_cmds, "unexpected %s command", mock_cmds->name);