diff mbox series

[FFmpeg-devel] configure: add -fno-semantic-interposition to optflags

Message ID 20230130122213.28822-1-anton@khirnov.net
State New
Headers show
Series [FFmpeg-devel] configure: add -fno-semantic-interposition to optflags | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Anton Khirnov Jan. 30, 2023, 12:22 p.m. UTC
Gcc flag -fsemantic-interposition, which is on by default with current
gcc versions, makes the compiler assume exported symbols can be
interposed by the linker, which prevents various kinds of optimization.

Since we do not support such interposition and disable it with
-Bsymbolic, explicitly disable this assumption.
---
 configure | 1 +
 1 file changed, 1 insertion(+)

Comments

Andreas Rheinhardt Jan. 31, 2023, 3:11 p.m. UTC | #1
Anton Khirnov:
> Gcc flag -fsemantic-interposition, which is on by default with current
> gcc versions, makes the compiler assume exported symbols can be
> interposed by the linker, which prevents various kinds of optimization.
> 
> Since we do not support such interposition and disable it with
> -Bsymbolic, explicitly disable this assumption.
> ---
>  configure | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/configure b/configure
> index cb895cf9ac..6f702bfb64 100755
> --- a/configure
> +++ b/configure
> @@ -7174,6 +7174,7 @@ check_optflags(){
>  check_optflags $optflags
>  check_optflags -fno-math-errno
>  check_optflags -fno-signed-zeros
> +check_optflags -fno-semantic-interposition
>  
>  if enabled lto; then
>      test "$cc_type" != "$ld_type" && die "LTO requires same compiler and linker"

This will add lots of dead HEVC functions in x86/hevcdsp_init.c; at
least it did this last time I checked: Several of these functions are
then inlined and because there are no callers outside of it, these
functions are dead code. Of course marking them as static would be
preferable, but that easier said than done with these macros.

- Andreas
diff mbox series

Patch

diff --git a/configure b/configure
index cb895cf9ac..6f702bfb64 100755
--- a/configure
+++ b/configure
@@ -7174,6 +7174,7 @@  check_optflags(){
 check_optflags $optflags
 check_optflags -fno-math-errno
 check_optflags -fno-signed-zeros
+check_optflags -fno-semantic-interposition
 
 if enabled lto; then
     test "$cc_type" != "$ld_type" && die "LTO requires same compiler and linker"