configure: improve check for POSIX ioctl

Instead of relying on system #ifdefs which may or may not be correct,
detect the POSIX ioctl signature at configure time.

(cherry picked from commit 00b64fca55)
Signed-off-by: Brad Smith <brad@comstyle.com>
This commit is contained in:
Ramiro Polla 2024-08-29 15:40:00 +02:00 committed by Brad Smith
parent 13f5d6eba5
commit 54034aa338
2 changed files with 3 additions and 1 deletions

2
configure vendored
View File

@ -2312,6 +2312,7 @@ HAVE_LIST="
opencl_vaapi_intel_media opencl_vaapi_intel_media
perl perl
pod2man pod2man
posix_ioctl
texi2html texi2html
" "
@ -6434,6 +6435,7 @@ rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || d
check_headers linux/fb.h check_headers linux/fb.h
check_headers linux/videodev2.h check_headers linux/videodev2.h
test_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_sanitized struct_v4l2_frmivalenum_discrete test_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_sanitized struct_v4l2_frmivalenum_discrete
test_code cc sys/ioctl.h "int ioctl(int, int, ...)" && enable posix_ioctl
# check V4L2 codecs available in the API # check V4L2 codecs available in the API
if enabled v4l2_m2m; then if enabled v4l2_m2m; then

View File

@ -95,7 +95,7 @@ struct video_data {
int (*open_f)(const char *file, int oflag, ...); int (*open_f)(const char *file, int oflag, ...);
int (*close_f)(int fd); int (*close_f)(int fd);
int (*dup_f)(int fd); int (*dup_f)(int fd);
#if defined(__sun) || defined(__BIONIC__) || defined(__musl__) /* POSIX-like */ #if HAVE_POSIX_IOCTL
int (*ioctl_f)(int fd, int request, ...); int (*ioctl_f)(int fd, int request, ...);
#else #else
int (*ioctl_f)(int fd, unsigned long int request, ...); int (*ioctl_f)(int fd, unsigned long int request, ...);