[FFmpeg-devel] [PATCH] lavu/thread: Check HAVE_PTHREAD_SET_?NAME_NP is defined

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Tue Feb 6 12:23:42 EET 2024


post at frankplowman.com:
> From: Frank Plowman <post at frankplowman.com>
> 
> Check HAVE_PTHREAD_SETNAME_NP and HAVE_PTHREAD_SET_NAME_NP are defined
> before using them in macro conditions.  Gets rid of lots of -Wundef
> warnings present when building on MacOS since
> fd16d8c68cd7b820eda76c407b0645b7cf470efd.
> 
> Signed-off-by: Frank Plowman <post at frankplowman.com>
> ---
>  libavutil/thread.h | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/libavutil/thread.h b/libavutil/thread.h
> index 2c00c7cc35..0200b7b511 100644
> --- a/libavutil/thread.h
> +++ b/libavutil/thread.h
> @@ -26,7 +26,9 @@
>  
>  #if HAVE_PRCTL
>  #include <sys/prctl.h>
> -#elif (HAVE_PTHREAD_SETNAME_NP || HAVE_PTHREAD_SET_NAME_NP) && HAVE_PTHREAD_NP_H
> +#elif ((defined(HAVE_PTHREAD_SETNAME_NP) && HAVE_PTHREAD_SETNAME_NP) \
> +    || (defined(HAVE_PTHREAD_SET_NAME_NP) && HAVE_PTHREAD_SET_NAME_NP)) \
> +    && HAVE_PTHREAD_NP_H
>  #include <pthread_np.h>
>  #endif
>  
> @@ -219,7 +221,7 @@ static inline int ff_thread_setname(const char *name)
>  
>  #if HAVE_PRCTL
>      ret = AVERROR(prctl(PR_SET_NAME, name));
> -#elif HAVE_PTHREAD_SETNAME_NP
> +#elif defined(HAVE_PTHREAD_SETNAME_NP) && HAVE_PTHREAD_SETNAME_NP
>  #if defined(__APPLE__)
>      ret = AVERROR(pthread_setname_np(name));
>  #elif defined(__NetBSD__)
> @@ -227,7 +229,7 @@ static inline int ff_thread_setname(const char *name)
>  #else
>      ret = AVERROR(pthread_setname_np(pthread_self(), name));
>  #endif
> -#elif HAVE_PTHREAD_SET_NAME_NP
> +#elif defined(HAVE_PTHREAD_SET_NAME_NP) && HAVE_PTHREAD_SET_NAME_NP
>      pthread_set_name_np(pthread_self(), name);
>  #else
>      ret = AVERROR(ENOSYS);

You need to rerun configure. Since
fd16d8c68cd7b820eda76c407b0645b7cf470efd running configure will add
HAVE_PTHREAD_SET_NAME_NP and HAVE_PTHREAD_SETNAME_NP to your config.h file.

- Andreas

PS: There is actually a different problem with this:

In file included from ./libavutil/common.h:88,
                 from ./libavutil/avutil.h:301,
                 from ./libavutil/opt.h:31,
                 from libavdevice/sdl2.c:31:
./config.h:340: warning: "HAVE_PTHREAD_SETNAME_NP" redefined
  340 | #define HAVE_PTHREAD_SETNAME_NP 0
      |
In file included from /usr/include/SDL2/SDL_config.h:4,
                 from /usr/include/SDL2/SDL_stdinc.h:31,
                 from /usr/include/SDL2/SDL_main.h:25,
                 from /usr/include/SDL2/SDL.h:32,
                 from libavdevice/sdl2.c:26:
/usr/include/x86_64-linux-gnu/SDL2/_real_SDL_config.h:205: note: this is
the location of the previous definition
  205 | #define HAVE_PTHREAD_SETNAME_NP 1
      |


More information about the ffmpeg-devel mailing list