[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