diff mbox series

[FFmpeg-devel] configure: check for sysctl.h explicitly

Message ID pull.49.ffstaging.FFmpeg.1673910968885.ffmpegagent@gmail.com
State New
Headers show
Series [FFmpeg-devel] configure: check for sysctl.h explicitly | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished

Commit Message

Aman Karmani Jan. 16, 2023, 11:16 p.m. UTC
From: Aman Karmani <aman@tmm1.net>

HAVE_SYSCTL is used to guard #include <sys/sysctl.h>, so make sure
we only define it when that header is present.

In recent glibc, the header was removed:
https://sourceware.org/pipermail/glibc-cvs/2020q2/069366.html

Signed-off-by: Aman Karmani <aman@tmm1.net>
---
    configure: check for sysctl.h explicitly
    
    HAVE_SYSCTL is used to guard #include <sys/sysctl.h>, so make sure we
    only define it when that header is present.
    
    In recent glibc, the header was removed:
    https://sourceware.org/pipermail/glibc-cvs/2020q2/069366.html
    
    Signed-off-by: Aman Karmani aman@tmm1.net

Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-49%2Ftmm1%2Fsysctl-chk-v1
Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-49/tmm1/sysctl-chk-v1
Pull-Request: https://github.com/ffstaging/FFmpeg/pull/49

 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: 01f46f18dbcdf323ceb4fdff7358cf3ca71366e6

Comments

Andreas Rheinhardt Jan. 17, 2023, 11:23 a.m. UTC | #1
Aman Karmani:
> From: Aman Karmani <aman@tmm1.net>
> 
> HAVE_SYSCTL is used to guard #include <sys/sysctl.h>, so make sure
> we only define it when that header is present.
> 
> In recent glibc, the header was removed:
> https://sourceware.org/pipermail/glibc-cvs/2020q2/069366.html
> 
> Signed-off-by: Aman Karmani <aman@tmm1.net>
> ---
>     configure: check for sysctl.h explicitly
>     
>     HAVE_SYSCTL is used to guard #include <sys/sysctl.h>, so make sure we
>     only define it when that header is present.
>     
>     In recent glibc, the header was removed:
>     https://sourceware.org/pipermail/glibc-cvs/2020q2/069366.html
>     
>     Signed-off-by: Aman Karmani aman@tmm1.net
> 
> Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-49%2Ftmm1%2Fsysctl-chk-v1
> Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-49/tmm1/sysctl-chk-v1
> Pull-Request: https://github.com/ffstaging/FFmpeg/pull/49
> 
>  configure | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index df69d39669..d2e0ec402d 100755
> --- a/configure
> +++ b/configure
> @@ -6282,7 +6282,7 @@ check_func  setrlimit
>  check_struct "sys/stat.h" "struct stat" st_mtim.tv_nsec -D_BSD_SOURCE
>  check_func  strerror_r
>  check_func  sysconf
> -check_func  sysctl
> +check_func_headers sys/sysctl.h sysctl
>  check_func  usleep
>  
>  check_func_headers conio.h kbhit
> 
> base-commit: 01f46f18dbcdf323ceb4fdff7358cf3ca71366e6

What exactly do we need from said header? You intend to include it if it
available, but we should only include it if it needed.

- Andreas
Aman Karmani Jan. 21, 2023, 1:25 a.m. UTC | #2
On Tue, Jan 17, 2023 at 3:23 AM Andreas Rheinhardt <
andreas.rheinhardt@outlook.com> wrote:

> Aman Karmani:
> > From: Aman Karmani <aman@tmm1.net>
> >
> > HAVE_SYSCTL is used to guard #include <sys/sysctl.h>, so make sure
> > we only define it when that header is present.
> >
> > In recent glibc, the header was removed:
> > https://sourceware.org/pipermail/glibc-cvs/2020q2/069366.html
> >
> > Signed-off-by: Aman Karmani <aman@tmm1.net>
> > ---
> >     configure: check for sysctl.h explicitly
> >
> >     HAVE_SYSCTL is used to guard #include <sys/sysctl.h>, so make sure we
> >     only define it when that header is present.
> >
> >     In recent glibc, the header was removed:
> >     https://sourceware.org/pipermail/glibc-cvs/2020q2/069366.html
> >
> >     Signed-off-by: Aman Karmani aman@tmm1.net
> >
> > Published-As:
> https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-49%2Ftmm1%2Fsysctl-chk-v1
> > Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg
> pr-ffstaging-49/tmm1/sysctl-chk-v1
> > Pull-Request: https://github.com/ffstaging/FFmpeg/pull/49
> >
> >  configure | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/configure b/configure
> > index df69d39669..d2e0ec402d 100755
> > --- a/configure
> > +++ b/configure
> > @@ -6282,7 +6282,7 @@ check_func  setrlimit
> >  check_struct "sys/stat.h" "struct stat" st_mtim.tv_nsec -D_BSD_SOURCE
> >  check_func  strerror_r
> >  check_func  sysconf
> > -check_func  sysctl
> > +check_func_headers sys/sysctl.h sysctl
> >  check_func  usleep
> >
> >  check_func_headers conio.h kbhit
> >
> > base-commit: 01f46f18dbcdf323ceb4fdff7358cf3ca71366e6
>
> What exactly do we need from said header? You intend to include it if it
> available, but we should only include it if it needed.


Seems like sysctl.h defines sysctl() on various BSD. See
https://www.freebsd.org/cgi/man.cgi?sysctl(3)

It is used by libavutil/cpu.c as follows:

#if HAVE_SYSCTL
#if HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#include <sys/types.h>
#include <sys/sysctl.h>
#endif


>
> - Andreas
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>
diff mbox series

Patch

diff --git a/configure b/configure
index df69d39669..d2e0ec402d 100755
--- a/configure
+++ b/configure
@@ -6282,7 +6282,7 @@  check_func  setrlimit
 check_struct "sys/stat.h" "struct stat" st_mtim.tv_nsec -D_BSD_SOURCE
 check_func  strerror_r
 check_func  sysconf
-check_func  sysctl
+check_func_headers sys/sysctl.h sysctl
 check_func  usleep
 
 check_func_headers conio.h kbhit