[FFmpeg-devel] [PATCH] configure: Disable linker warnings for common symbols

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sun Feb 25 14:54:28 EET 2024


Andreas Rheinhardt:
> Common symbols are not part of ISO-C and therefore not used
> by FFmpeg at all. Yet linker warnings to ensure it stays
> that way are nevertheless wrong, because the existence of
> common symbols does not imply that there is a bug in our code.
> 
> More precisely, Clang's ASAN implementation uses a common symbol
> ___asan_globals_registered when used on Elf targets with
> the -fsanitize-address-globals-dead-stripping option;
> said option is the default since Clang 17 [1].
> This leads to 1883 warnings about ___asan_globals_registered
> when linking here.
> (Even without that option there were warnings like
> _ZN14__interception10real_vforkE being overridden.)
> 
> Said warning is also unnecessary: The proper way to ensure
> that our code is free of common symbols is to let the compiler
> enforce this. But this is already the default since GCC 10
> and Clang 11, so there is no risk of introducing our own
> common symbols.
> 
> [1]: https://reviews.llvm.org/D152604
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
> There is btw a second incompatibility between our configure script
> and Clang ASAN: Since version 16 it defaults to
> -fsanitize-address-use-odr-indicator and with this option set,
> it creates a __odr_asan_gen_FOO symbol for every object FOO
> in addition to the symbol FOO itself; configure therefore sets
> extern_prefix (used for ASM name mangling) to "__odr_asan_gen_".
> 
>  configure | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 197f762b58..108816bd1e 100755
> --- a/configure
> +++ b/configure
> @@ -7337,7 +7337,6 @@ void (^block)(void);
>  EOF
>  
>  # add some linker flags
> -check_ldflags -Wl,--warn-common
>  check_ldflags -Wl,-rpath-link=:libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil
>  enabled rpath && add_ldexeflags -Wl,-rpath,$libdir && add_ldsoflags -Wl,-rpath,$libdir
>  test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic

Will apply this patch tomorrow unless there are objections.

- Andreas



More information about the ffmpeg-devel mailing list