[FFmpeg-devel] [PATCH] configure: improve check for POSIX ioctl
Ramiro Polla
ramiro.polla at gmail.com
Thu Aug 29 20:18:14 EEST 2024
On Thu, Aug 29, 2024 at 7:10 PM James Almer <jamrial at gmail.com> wrote:
> On 8/29/2024 10:40 AM, Ramiro Polla wrote:
> > Instead of relying on system #ifdefs which may or may not be correct,
> > detect the POSIX ioctl signature at configure time.
> > ---
> > configure | 2 ++
> > libavdevice/v4l2.c | 2 +-
> > 2 files changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/configure b/configure
> > index 63f0429b02..ebbec49993 100755
> > --- a/configure
> > +++ b/configure
> > @@ -2524,6 +2524,7 @@ HAVE_LIST="
> > opencl_videotoolbox
> > perl
> > pod2man
> > + posix_ioctl
> > texi2html
> > xmllint
> > zlib_gzip
> > @@ -7158,6 +7159,7 @@ xmllint --version > /dev/null 2>&1 && enable xmllint || disable xmllint
> > check_headers linux/fb.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 sys/ioctl.h "int ioctl(int, int, ...);" && enable posix_ioctl
>
> Is this check going to fail for the targets where ioctl_f has request as
> an unsigned long int?
Yes. This is from config.log:
/tmp/ffconf.S7gHklXc/test.c: In function 'main':
/tmp/ffconf.S7gHklXc/test.c:2:22: error: conflicting types for
'ioctl'; have 'int(int, int, ...)'
2 | int main(void) { int ioctl(int, int, ...);; return 0; }
| ^~~~~
In file included from /tmp/ffconf.S7gHklXc/test.c:1:
/usr/include/x86_64-linux-gnu/sys/ioctl.h:42:12: note: previous
declaration of 'ioctl' with type 'int(int, long unsigned int, ...)'
42 | extern int ioctl (int __fd, unsigned long int __request, ...) __THROW;
| ^~~~~
More information about the ffmpeg-devel
mailing list